# 3. Bulk License Pricing — Test Cases

User Type: **Super Administrator**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: bulk_license_pricing.md — every feature, sub-feature, and rule covered

---

## Test Execution Policy
- Zero tolerance: any deviation from documented behavior = FAILED = bug
- Every bug is immediately logged/reported (Bug ID, feature, sub-feature,
  expected vs actual, severity) and fixed 100% before the group passes
- Feature group passes only at 100% test pass rate

## Coverage Matrix
| Feature | Sub-feature / Rule | Test IDs |
|---------|--------------------|----------|
| 3.1 Tiered Pricing by License Volume | Volume tier: the tier per volume (the count range, the price per license) | TC-SA-12-03-001 |
| 3.1 Tiered Pricing by License Volume | Tier scope: the price is per license (the price per license in the tier) | TC-SA-12-03-002 |
| 3.1 Tiered Pricing by License Volume | Tier pricing: the pricing (the price per license decreases with the tier) | TC-SA-12-03-003 |
| 3.1 Tiered Pricing by License Volume | Price definition: the price defined by the Super Admin (the count range, the price per license) | TC-SA-12-03-001 |
| 3.1 Tiered Pricing by License Volume | Price application: the price applied (the license count determines the tier, the price is the tier's price) | TC-SA-12-03-004 |
| 3.1 Tiered Pricing by License Volume | Price record: the price recorded (the institute, the count, the tier, the price) | TC-SA-12-03-005 |
| 3.1 Tiered Pricing by License Volume | Audit logging of the price definition and the changes | TC-SA-12-03-006 |
| 3.1 Tiered Pricing by License Volume | Rule: the volume tier is per volume (the count range, the price per license); the price is explicit per tier | TC-SA-12-03-001 |
| 3.1 Tiered Pricing by License Volume | Rule: the tier scope is the price per license (the price per license in the tier); the scope is the license | TC-SA-12-03-002 |
| 3.1 Tiered Pricing by License Volume | Rule: the tier pricing is the volume reward (the price per license decreases with the tier); the pricing is the incentive | TC-SA-12-03-003 |
| 3.1 Tiered Pricing by License Volume | Rule: a price change (a tier's price updated) is recorded (the new price, the time); it is auditable | TC-SA-12-03-007 |
| 3.1 Tiered Pricing by License Volume | Rule: the volume tiers are visible (the count ranges, the prices per license); the bulk pricing is managed | TC-SA-12-03-008 |
| 3.1 Tiered Pricing by License Volume | Rule: price definition and changes are audit-logged with the tier, price, and timestamp | TC-SA-12-03-006 |
| 3.2 Custom Enterprise Pricing | Custom price: the price per enterprise (the enterprise, the count, the price, the terms) | TC-SA-12-03-009 |
| 3.2 Custom Enterprise Pricing | Enterprise scope: the price is for the enterprise (the count, the terms) | TC-SA-12-03-010 |
| 3.2 Custom Enterprise Pricing | Custom terms: the terms (the payment, the duration, the support) | TC-SA-12-03-011 |
| 3.2 Custom Enterprise Pricing | Price definition: the price defined by the Super Admin (the enterprise, the count, the price, the terms) | TC-SA-12-03-009 |
| 3.2 Custom Enterprise Pricing | Price application: the price applied (the enterprise's purchase is the custom price) | TC-SA-12-03-012 |
| 3.2 Custom Enterprise Pricing | Price record: the price recorded (the enterprise, the count, the price, the terms) | TC-SA-12-03-013 |
| 3.2 Custom Enterprise Pricing | Audit logging of the price definition and the changes | TC-SA-12-03-014 |
| 3.2 Custom Enterprise Pricing | Rule: the custom price is per enterprise (the enterprise, the count, the price, the terms); the price is explicit per enterprise | TC-SA-12-03-009 |
| 3.2 Custom Enterprise Pricing | Rule: the enterprise scope is the count and the terms; the scope is the enterprise | TC-SA-12-03-010 |
| 3.2 Custom Enterprise Pricing | Rule: the custom terms are the deal (the payment, the duration, the support); the terms are the structure | TC-SA-12-03-011 |
| 3.2 Custom Enterprise Pricing | Rule: a price change (a custom price updated) is recorded (the new price, the new terms, the time); it is auditable | TC-SA-12-03-015 |
| 3.2 Custom Enterprise Pricing | Rule: the custom prices are visible (the enterprises, the counts, the prices, the terms); the enterprise pricing is managed | TC-SA-12-03-016 |
| 3.2 Custom Enterprise Pricing | Rule: price definition and changes are audit-logged with the enterprise, price, and timestamp | TC-SA-12-03-014 |
| 3.3 Discount Eligibility for Bulk Purchases | Discount eligibility: the eligibility per count (the count, the discount) | TC-SA-12-03-017 |
| 3.3 Discount Eligibility for Bulk Purchases | Discount scope: the discount is for the bulk purchase (the volume discount) | TC-SA-12-03-018 |
| 3.3 Discount Eligibility for Bulk Purchases | Discount definition: the discount defined by the Super Admin (the count, the discount) | TC-SA-12-03-017 |
| 3.3 Discount Eligibility for Bulk Purchases | Discount application: the discount applied (the bulk purchase gets the discount) | TC-SA-12-03-019 |
| 3.3 Discount Eligibility for Bulk Purchases | Discount record: the discount recorded (the institute, the count, the discount) | TC-SA-12-03-020 |
| 3.3 Discount Eligibility for Bulk Purchases | Discount change: the discount changed (the count, the discount updated) | TC-SA-12-03-021 |
| 3.3 Discount Eligibility for Bulk Purchases | Audit logging of the discount definition and the changes | TC-SA-12-03-022 |
| 3.3 Discount Eligibility for Bulk Purchases | Rule: the discount eligibility is per count (the count, the discount); the discount is explicit per count | TC-SA-12-03-017 |
| 3.3 Discount Eligibility for Bulk Purchases | Rule: the discount scope is the bulk purchase (the volume discount); the scope is the bulk | TC-SA-12-03-018 |
| 3.3 Discount Eligibility for Bulk Purchases | Rule: the discount tiers are explicit (the count tiers, the discount per tier); the tiers are the structure | TC-SA-12-03-023 |
| 3.3 Discount Eligibility for Bulk Purchases | Rule: a discount change (a count's discount updated) is recorded (the new discount, the time); it is auditable | TC-SA-12-03-021 |
| 3.3 Discount Eligibility for Bulk Purchases | Rule: the discount eligibility is visible (the counts, the discounts); the bulk discount is managed | TC-SA-12-03-024 |
| 3.3 Discount Eligibility for Bulk Purchases | Rule: discount definition and changes are audit-logged with the count, discount, and timestamp | TC-SA-12-03-022 |

## 3.1 Tiered Pricing by License Volume

### TC-SA-12-03-001 — Price definition: the price defined by the Super Admin (the count range, the price per license); the price is explicit per tier
**Type:** Positive
**Covers:** 3.1 → Volume tier: the tier per volume (the count range, the price per license); Price definition: the price defined by the Super Admin (the count range, the price per license); Rule: the volume tier is per volume; the price is explicit per tier
**Preconditions:** The Super Admin opens the bulk license pricing.
**Steps:**
1. Define the volume tiers: the count ranges (the 10-50, the 51-200, the 201-500, the 500+) and the price per license per tier.
2. Save the tiers.
3. Verify the volume tiers are live and the price is explicit per tier.
**Expected Result:** The volume tiers are defined (the count range, the price per license) — the price is explicit per tier.
**Priority:** Critical

### TC-SA-12-03-002 — Tier scope: the price is per license (the price per license in the tier); the scope is the license
**Type:** Positive
**Covers:** 3.1 → Tier scope: the price is per license (the price per license in the tier); Rule: the tier scope is the price per license (the price per license in the tier); the scope is the license
**Preconditions:** The volume tiers are defined.
**Steps:**
1. Open the tier scope for a tier.
2. Verify the price is per license (the price per license in the tier).
3. Verify the scope is the license.
**Expected Result:** The tier scope is the price per license — the scope is the license.
**Priority:** High

### TC-SA-12-03-003 — Tier pricing: the pricing (the price per license decreases with the tier); the pricing is the incentive
**Type:** Negative
**Covers:** 3.1 → Tier pricing: the pricing (the price per license decreases with the tier); Rule: the tier pricing is the volume reward (the price per license decreases with the tier); the pricing is the incentive
**Preconditions:** The volume tiers are defined with pricing.
**Steps:**
1. Compare the price per license across the tiers (the 10-50 vs. the 51-200 vs. the 201-500 vs. the 500+).
2. Verify the price per license decreases with the tier.
3. Verify the pricing is the volume reward.
**Expected Result:** The price per license decreases with the tier — the pricing is the incentive.
**Priority:** Critical

### TC-SA-12-03-004 — Price application: the price applied (the license count determines the tier, the price is the tier's price)
**Type:** Positive
**Covers:** 3.1 → Price application: the price applied (the license count determines the tier, the price is the tier's price)
**Preconditions:** The volume tiers are live and an institute requests bulk licenses (e.g., 150).
**Steps:**
1. As the institute, request 150 bulk licenses.
2. Verify the count determines the tier (the 51-200).
3. Verify the price per license is the tier's price.
**Expected Result:** The price is applied — the license count determines the tier and the price is the tier's price.
**Priority:** Critical

### TC-SA-12-03-005 — Price record: the price recorded (the institute, the count, the tier, the price); the record is the proof
**Type:** Positive
**Covers:** 3.1 → Price record: the price recorded (the institute, the count, the tier, the price)
**Preconditions:** A bulk license purchase has occurred.
**Steps:**
1. Open the price record.
2. Verify it shows the institute, the count, the tier, and the price.
**Expected Result:** The price is recorded — the institute, the count, the tier, and the price are shown.
**Priority:** High

### TC-SA-12-03-006 — Price definition and changes are audit-logged with the tier, price, and timestamp
**Type:** Positive
**Covers:** 3.1 → Audit logging of the price definition and the changes; Rule: price definition and changes are audit-logged with the tier, price, and timestamp
**Preconditions:** Volume tier definition and change events have occurred.
**Steps:**
1. Open the audit trail and filter by "volume tier".
2. Verify entries show the tier, the price, and the timestamp.
**Expected Result:** The price definition and changes are audit-logged with the tier, price, and timestamp.
**Priority:** Critical

### TC-SA-12-03-007 — A price change (a tier's price updated) is recorded (the new price, the time); it is auditable
**Type:** Positive
**Covers:** 3.1 → Rule: a price change (a tier's price updated) is recorded (the new price, the time); it is auditable
**Preconditions:** The volume tiers are live.
**Steps:**
1. Change a tier's price (the new price, the time).
2. Verify the price is updated.
3. Verify the change is recorded and auditable.
**Expected Result:** The price change is recorded (the new price, the time) — it is auditable.
**Priority:** High

### TC-SA-12-03-008 — The volume tiers are visible (the count ranges, the prices per license); the bulk pricing is managed
**Type:** Positive
**Covers:** 3.1 → Rule: the volume tiers are visible (the count ranges, the prices per license); the bulk pricing is managed
**Preconditions:** The volume tiers are defined.
**Steps:**
1. Open the volume tiers view.
2. Verify the count ranges and the prices per license are visible.
3. Verify the bulk pricing is managed.
**Expected Result:** The volume tiers are visible — the count ranges and the prices per license are shown.
**Priority:** Medium

## 3.2 Custom Enterprise Pricing

### TC-SA-12-03-009 — Price definition: the price defined by the Super Admin (the enterprise, the count, the price, the terms); the price is explicit per enterprise
**Type:** Positive
**Covers:** 3.2 → Custom price: the price per enterprise (the enterprise, the count, the price, the terms); Price definition: the price defined by the Super Admin (the enterprise, the count, the price, the terms); Rule: the custom price is per enterprise; the price is explicit per enterprise
**Preconditions:** An enterprise requests bulk licenses (e.g., 1000).
**Steps:**
1. Define the custom price: the enterprise, the count, the price, and the terms.
2. Save the price.
3. Verify the custom price is live and explicit per enterprise.
**Expected Result:** The custom price is defined (the enterprise, the count, the price, the terms) — the price is explicit per enterprise.
**Priority:** Critical

### TC-SA-12-03-010 — Enterprise scope: the price is for the enterprise (the count, the terms); the scope is the enterprise
**Type:** Positive
**Covers:** 3.2 → Enterprise scope: the price is for the enterprise (the count, the terms); Rule: the enterprise scope is the count and the terms; the scope is the enterprise
**Preconditions:** A custom price is defined.
**Steps:**
1. Open the enterprise scope for the price.
2. Verify the price is for the enterprise (the count, the terms).
3. Verify the scope is the enterprise.
**Expected Result:** The enterprise scope is the count and the terms — the scope is the enterprise.
**Priority:** High

### TC-SA-12-03-011 — Custom terms: the terms (the payment, the duration, the support); the terms are the structure
**Type:** Positive
**Covers:** 3.2 → Custom terms: the terms (the payment, the duration, the support); Rule: the custom terms are the deal (the payment, the duration, the support); the terms are the structure
**Preconditions:** A custom price is defined.
**Steps:**
1. Open the custom terms.
2. Verify it shows the payment, the duration, and the support.
3. Verify the terms are the deal.
**Expected Result:** The custom terms are the payment, the duration, and the support — the terms are the structure.
**Priority:** High

### TC-SA-12-03-012 — Price application: the price applied (the enterprise's purchase is the custom price)
**Type:** Positive
**Covers:** 3.2 → Price application: the price applied (the enterprise's purchase is the custom price)
**Preconditions:** A custom price is live.
**Steps:**
1. As the enterprise, buy the bulk licenses (the count, the custom price).
2. Verify the price charged is the custom price (the custom price applied, the terms met).
**Expected Result:** The price is applied — the enterprise's purchase is the custom price.
**Priority:** Critical

### TC-SA-12-03-013 — Price record: the price recorded (the enterprise, the count, the price, the terms); the record is the proof
**Type:** Positive
**Covers:** 3.2 → Price record: the price recorded (the enterprise, the count, the price, the terms)
**Preconditions:** A custom enterprise purchase has occurred.
**Steps:**
1. Open the price record.
2. Verify it shows the enterprise, the count, the price, and the terms.
**Expected Result:** The price is recorded — the enterprise, the count, the price, and the terms are shown.
**Priority:** High

### TC-SA-12-03-014 — Price definition and changes are audit-logged with the enterprise, price, and timestamp
**Type:** Positive
**Covers:** 3.2 → Audit logging of the price definition and the changes; Rule: price definition and changes are audit-logged with the enterprise, price, and timestamp
**Preconditions:** Custom enterprise price definition and change events have occurred.
**Steps:**
1. Open the audit trail and filter by "custom enterprise price".
2. Verify entries show the enterprise, the price, and the timestamp.
**Expected Result:** The price definition and changes are audit-logged with the enterprise, price, and timestamp.
**Priority:** Critical

### TC-SA-12-03-015 — A price change (a custom price updated) is recorded (the new price, the new terms, the time); it is auditable
**Type:** Positive
**Covers:** 3.2 → Rule: a price change (a custom price updated) is recorded (the new price, the new terms, the time); it is auditable
**Preconditions:** A custom price is live.
**Steps:**
1. Change the custom price (the new price, the new terms, the time).
2. Verify the price is updated.
3. Verify the change is recorded and auditable.
**Expected Result:** The price change is recorded (the new price, the new terms, the time) — it is auditable.
**Priority:** High

### TC-SA-12-03-016 — The custom prices are visible (the enterprises, the counts, the prices, the terms); the enterprise pricing is managed
**Type:** Positive
**Covers:** 3.2 → Rule: the custom prices are visible (the enterprises, the counts, the prices, the terms); the enterprise pricing is managed
**Preconditions:** Multiple custom prices are defined.
**Steps:**
1. Open the custom prices view.
2. Verify the enterprises, the counts, the prices, and the terms are visible.
3. Verify the enterprise pricing is managed.
**Expected Result:** The custom prices are visible — the enterprises, the counts, the prices, and the terms are shown.
**Priority:** Medium

## 3.3 Discount Eligibility for Bulk Purchases

### TC-SA-12-03-017 — Discount definition: the discount defined by the Super Admin (the count, the discount); the discount is explicit per count
**Type:** Positive
**Covers:** 3.3 → Discount eligibility: the eligibility per count (the count, the discount); Discount definition: the discount defined by the Super Admin (the count, the discount); Rule: the discount eligibility is per count; the discount is explicit per count
**Preconditions:** The Super Admin opens the bulk license pricing.
**Steps:**
1. Define the discount eligibility: the count (the license count) and the discount (the volume discount).
2. Save the discount.
3. Verify the discount eligibility is live and explicit per count.
**Expected Result:** The discount eligibility is defined (the count, the discount) — the discount is explicit per count.
**Priority:** Critical

### TC-SA-12-03-018 — Discount scope: the discount is for the bulk purchase (the volume discount); the scope is the bulk
**Type:** Positive
**Covers:** 3.3 → Discount scope: the discount is for the bulk purchase (the volume discount); Rule: the discount scope is the bulk purchase (the volume discount); the scope is the bulk
**Preconditions:** The discount eligibility is defined.
**Steps:**
1. Open the discount scope.
2. Verify the discount is for the bulk purchase (the volume discount).
3. Verify the scope is the bulk.
**Expected Result:** The discount scope is the bulk purchase — the scope is the bulk.
**Priority:** High

### TC-SA-12-03-019 — Discount application: the discount applied (the bulk purchase gets the discount)
**Type:** Positive
**Covers:** 3.3 → Discount application: the discount applied (the bulk purchase gets the discount)
**Preconditions:** The discount eligibility is live and an institute makes a bulk purchase (e.g., 300).
**Steps:**
1. As the institute, make the bulk purchase (the count, e.g., 300).
2. Verify the discount is applied (the count determines the discount, the discount is given).
**Expected Result:** The discount is applied — the bulk purchase gets the discount per the count.
**Priority:** Critical

### TC-SA-12-03-020 — Discount record: the discount recorded (the institute, the count, the discount); the record is the proof
**Type:** Positive
**Covers:** 3.3 → Discount record: the discount recorded (the institute, the count, the discount)
**Preconditions:** A bulk purchase with a discount has occurred.
**Steps:**
1. Open the discount record.
2. Verify it shows the institute, the count, and the discount.
**Expected Result:** The discount is recorded — the institute, the count, and the discount are shown.
**Priority:** High

### TC-SA-12-03-021 — Discount change: the discount changed (the count, the discount updated); the change is recorded and auditable
**Type:** Positive
**Covers:** 3.3 → Discount change: the discount changed (the count, the discount updated); Rule: a discount change (a count's discount updated) is recorded (the new discount, the time); it is auditable
**Preconditions:** The discount eligibility is live.
**Steps:**
1. Change a count's discount (the new discount, the time).
2. Verify the discount is updated.
3. Verify the change is recorded and auditable.
**Expected Result:** The discount change is recorded (the new discount, the time) — it is auditable.
**Priority:** High

### TC-SA-12-03-022 — Discount definition and changes are audit-logged with the count, discount, and timestamp
**Type:** Positive
**Covers:** 3.3 → Audit logging of the discount definition and the changes; Rule: discount definition and changes are audit-logged with the count, discount, and timestamp
**Preconditions:** Discount definition and change events have occurred.
**Steps:**
1. Open the audit trail and filter by "bulk discount".
2. Verify entries show the count, the discount, and the timestamp.
**Expected Result:** The discount definition and changes are audit-logged with the count, discount, and timestamp.
**Priority:** Critical

### TC-SA-12-03-023 — The discount tiers are explicit (the count tiers, the discount per tier); the tiers are the structure
**Type:** Positive
**Covers:** 3.3 → Rule: the discount tiers are explicit (the count tiers, the discount per tier); the tiers are the structure
**Preconditions:** The discount eligibility is defined with tiers.
**Steps:**
1. Open the discount tiers.
2. Verify the count tiers and the discount per tier are explicit.
3. Verify the tiers are the structure.
**Expected Result:** The discount tiers are explicit — the count tiers and the discount per tier are the structure.
**Priority:** High

### TC-SA-12-03-024 — The discount eligibility is visible (the counts, the discounts); the bulk discount is managed
**Type:** Positive
**Covers:** 3.3 → Rule: the discount eligibility is visible (the counts, the discounts); the bulk discount is managed
**Preconditions:** The discount eligibility is defined.
**Steps:**
1. Open the discount eligibility view.
2. Verify the counts and the discounts are visible.
3. Verify the bulk discount is managed.
**Expected Result:** The discount eligibility is visible — the counts and the discounts are shown.
**Priority:** Medium
