# 2. Professional Pricing — Test Cases

User Type: **Super Administrator**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: professional_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 |
|---------|--------------------|----------|
| 2.1 Course-Wise Pricing | Course-wise price: the price per course (the course, the price, the access duration) | TC-SA-12-02-001 |
| 2.1 Course-Wise Pricing | Course scope: the price is for the course (the access to the course's content) | TC-SA-12-02-002 |
| 2.1 Course-Wise Pricing | Price definition: the price defined by the Super Admin (the course, the price, the duration) | TC-SA-12-02-001 |
| 2.1 Course-Wise Pricing | Price application: the price applied (the course's purchase is the course's price) | TC-SA-12-02-003 |
| 2.1 Course-Wise Pricing | Price record: the price recorded (the course, the price, the time) | TC-SA-12-02-004 |
| 2.1 Course-Wise Pricing | Price change: the price changed (the course's price updated) | TC-SA-12-02-005 |
| 2.1 Course-Wise Pricing | Audit logging of the price definition and the changes | TC-SA-12-02-006 |
| 2.1 Course-Wise Pricing | Rule: the course-wise price is per course (the course, the price, the access duration); the price is explicit per course | TC-SA-12-02-001 |
| 2.1 Course-Wise Pricing | Rule: the course scope is the access to the course's content; the scope is the course | TC-SA-12-02-002 |
| 2.1 Course-Wise Pricing | Rule: a price change (a course's price updated) is recorded (the new price, the time); it is auditable | TC-SA-12-02-005 |
| 2.1 Course-Wise Pricing | Rule: the course-wise prices are visible (the courses, the prices, the durations); the professional pricing is managed | TC-SA-12-02-007 |
| 2.1 Course-Wise Pricing | Rule: the price application is the course's purchase is the course's price; the application is the price | TC-SA-12-02-003 |
| 2.1 Course-Wise Pricing | Rule: price definition and changes are audit-logged with the course, price, and timestamp | TC-SA-12-02-006 |
| 2.2 Bundle Pricing for Related Courses | Bundle price: the price per bundle (the bundle, the discount, the access duration) | TC-SA-12-02-008 |
| 2.2 Bundle Pricing for Related Courses | Bundle scope: the price is for the bundle (the access to the bundle's courses) | TC-SA-12-02-009 |
| 2.2 Bundle Pricing for Related Courses | Bundle discount: the discount (the bundle is cheaper than the individual courses) | TC-SA-12-02-010 |
| 2.2 Bundle Pricing for Related Courses | Price definition: the price defined by the Super Admin (the bundle, the discount, the duration) | TC-SA-12-02-008 |
| 2.2 Bundle Pricing for Related Courses | Price application: the price applied (the bundle's purchase is the bundle's price) | TC-SA-12-02-011 |
| 2.2 Bundle Pricing for Related Courses | Price record: the price recorded (the bundle, the price, the time) | TC-SA-12-02-012 |
| 2.2 Bundle Pricing for Related Courses | Audit logging of the price definition and the changes | TC-SA-12-02-013 |
| 2.2 Bundle Pricing for Related Courses | Rule: the bundle price is per bundle (the bundle, the discount, the access duration); the price is explicit per bundle | TC-SA-12-02-008 |
| 2.2 Bundle Pricing for Related Courses | Rule: the bundle scope is the access to the bundle's courses; the scope is the bundle | TC-SA-12-02-009 |
| 2.2 Bundle Pricing for Related Courses | Rule: the bundle discount is the incentive (the bundle is cheaper than the individual courses); the discount is the value | TC-SA-12-02-010 |
| 2.2 Bundle Pricing for Related Courses | Rule: a price change (a bundle's price updated) is recorded (the new price, the new discount, the time); it is auditable | TC-SA-12-02-014 |
| 2.2 Bundle Pricing for Related Courses | Rule: the bundle prices are visible (the bundles, the prices, the discounts, the durations); the bundle pricing is managed | TC-SA-12-02-015 |
| 2.2 Bundle Pricing for Related Courses | Rule: price definition and changes are audit-logged with the bundle, price, and timestamp | TC-SA-12-02-013 |
| 2.3 Skill Path Pricing | Skill path price: the price per skill path (the skill path, the price, the access duration) | TC-SA-12-02-016 |
| 2.3 Skill Path Pricing | Skill path scope: the price is for the skill path (the access to the skill path's courses) | TC-SA-12-02-017 |
| 2.3 Skill Path Pricing | Skill path value: the value (the skill path is cheaper than the individual courses) | TC-SA-12-02-018 |
| 2.3 Skill Path Pricing | Price definition: the price defined by the Super Admin (the skill path, the price, the duration) | TC-SA-12-02-016 |
| 2.3 Skill Path Pricing | Price application: the price applied (the skill path's purchase is the skill path's price) | TC-SA-12-02-019 |
| 2.3 Skill Path Pricing | Price record: the price recorded (the skill path, the price, the time) | TC-SA-12-02-020 |
| 2.3 Skill Path Pricing | Audit logging of the price definition and the changes | TC-SA-12-02-021 |
| 2.3 Skill Path Pricing | Rule: the skill path price is per skill path (the skill path, the price, the access duration); the price is explicit per skill path | TC-SA-12-02-016 |
| 2.3 Skill Path Pricing | Rule: the skill path scope is the access to the skill path's courses; the scope is the skill path | TC-SA-12-02-017 |
| 2.3 Skill Path Pricing | Rule: the skill path value is the incentive (the skill path is cheaper than the individual courses); the value is the deal | TC-SA-12-02-018 |
| 2.3 Skill Path Pricing | Rule: a price change (a skill path's price updated) is recorded (the new price, the time); it is auditable | TC-SA-12-02-022 |
| 2.3 Skill Path Pricing | Rule: the skill path prices are visible (the skill paths, the prices, the durations); the skill path pricing is managed | TC-SA-12-02-023 |
| 2.3 Skill Path Pricing | Rule: price definition and changes are audit-logged with the skill path, price, and timestamp | TC-SA-12-02-021 |
| 2.4 Lifetime Access Pricing | Lifetime price: the price per course (the course, the one-time price) | TC-SA-12-02-024 |
| 2.4 Lifetime Access Pricing | Lifetime scope: the price is for the lifetime access (the access to the course for life) | TC-SA-12-02-025 |
| 2.4 Lifetime Access Pricing | Lifetime premium: the premium (the lifetime is a premium to the subscription) | TC-SA-12-02-026 |
| 2.4 Lifetime Access Pricing | Price definition: the price defined by the Super Admin (the course, the one-time price) | TC-SA-12-02-024 |
| 2.4 Lifetime Access Pricing | Price application: the price applied (the lifetime purchase is the lifetime price) | TC-SA-12-02-027 |
| 2.4 Lifetime Access Pricing | Price record: the price recorded (the course, the price, the time) | TC-SA-12-02-028 |
| 2.4 Lifetime Access Pricing | Audit logging of the price definition and the changes | TC-SA-12-02-029 |
| 2.4 Lifetime Access Pricing | Rule: the lifetime price is per course (the course, the one-time price); the price is explicit per lifetime access | TC-SA-12-02-024 |
| 2.4 Lifetime Access Pricing | Rule: the lifetime scope is the access to the course for life; the scope is the lifetime | TC-SA-12-02-025 |
| 2.4 Lifetime Access Pricing | Rule: the lifetime premium is the value (the lifetime is a premium to the subscription); the premium is the deal | TC-SA-12-02-026 |
| 2.4 Lifetime Access Pricing | Rule: a price change (a lifetime price updated) is recorded (the new price, the time); it is auditable | TC-SA-12-02-030 |
| 2.4 Lifetime Access Pricing | Rule: the lifetime prices are visible (the courses, the prices); the lifetime pricing is managed | TC-SA-12-02-031 |
| 2.4 Lifetime Access Pricing | Rule: price definition and changes are audit-logged with the course, price, and timestamp | TC-SA-12-02-029 |

## 2.1 Course-Wise Pricing

### TC-SA-12-02-001 — Price definition: the price defined by the Super Admin (the course, the price, the duration); the price is explicit per course
**Type:** Positive
**Covers:** 2.1 → Course-wise price: the price per course (the course, the price, the access duration); Price definition: the price defined by the Super Admin (the course, the price, the duration); Rule: the course-wise price is per course; the price is explicit per course
**Preconditions:** The Super Admin opens the professional pricing.
**Steps:**
1. Define the course-wise price: the course (the one the price is for), the price, and the access duration.
2. Save the price.
3. Verify the course-wise price is live and explicit per course.
**Expected Result:** The course-wise price is defined (the course, the price, the access duration) — the price is explicit per course.
**Priority:** Critical

### TC-SA-12-02-002 — Course scope: the price is for the course (the access to the course's content); the scope is the course
**Type:** Positive
**Covers:** 2.1 → Course scope: the price is for the course (the access to the course's content); Rule: the course scope is the access to the course's content; the scope is the course
**Preconditions:** A course-wise price is defined.
**Steps:**
1. Open the course scope for the price.
2. Verify the price is for the course (the access to the course's content).
3. Verify the scope is the course.
**Expected Result:** The course scope is the access to the course's content — the scope is the course.
**Priority:** High

### TC-SA-12-02-003 — Price application: the price applied (the course's purchase is the course's price); the application is the price
**Type:** Positive
**Covers:** 2.1 → Price application: the price applied (the course's purchase is the course's price); Rule: the price application is the course's purchase is the course's price; the application is the price
**Preconditions:** A course-wise price is live.
**Steps:**
1. As a learner, buy the course.
2. Verify the price charged is the course's price (the course-wise price applied).
**Expected Result:** The price is applied — the course's purchase is the course's price.
**Priority:** Critical

### TC-SA-12-02-004 — Price record: the price recorded (the course, the price, the time); the record is the proof
**Type:** Positive
**Covers:** 2.1 → Price record: the price recorded (the course, the price, the time)
**Preconditions:** A course-wise price has been applied to a purchase.
**Steps:**
1. Open the price record.
2. Verify it shows the course, the price, and the time.
**Expected Result:** The price is recorded — the course, the price, and the time are shown.
**Priority:** High

### TC-SA-12-02-005 — Price change: the price changed (the course's price updated); the change is recorded and auditable
**Type:** Positive
**Covers:** 2.1 → Price change: the price changed (the course's price updated); Rule: a price change (a course's price updated) is recorded (the new price, the time); it is auditable
**Preconditions:** A course-wise price is live.
**Steps:**
1. Change the course'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 is changed (the course's price updated) — the change is recorded and auditable.
**Priority:** High

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

### TC-SA-12-02-007 — The course-wise prices are visible (the courses, the prices, the durations); the professional pricing is managed
**Type:** Positive
**Covers:** 2.1 → Rule: the course-wise prices are visible (the courses, the prices, the durations); the professional pricing is managed
**Preconditions:** Multiple course-wise prices are defined.
**Steps:**
1. Open the course-wise prices view.
2. Verify the courses, the prices, and the durations are visible.
3. Verify the professional pricing is managed.
**Expected Result:** The course-wise prices are visible — the courses, the prices, and the durations are shown.
**Priority:** Medium

## 2.2 Bundle Pricing for Related Courses

### TC-SA-12-02-008 — Price definition: the price defined by the Super Admin (the bundle, the discount, the duration); the price is explicit per bundle
**Type:** Positive
**Covers:** 2.2 → Bundle price: the price per bundle (the bundle, the discount, the access duration); Price definition: the price defined by the Super Admin (the bundle, the discount, the duration); Rule: the bundle price is per bundle; the price is explicit per bundle
**Preconditions:** The Super Admin opens the professional pricing.
**Steps:**
1. Define the bundle price: the bundle (the related courses in the bundle), the discount, and the access duration.
2. Save the price.
3. Verify the bundle price is live and explicit per bundle.
**Expected Result:** The bundle price is defined (the bundle, the discount, the access duration) — the price is explicit per bundle.
**Priority:** Critical

### TC-SA-12-02-009 — Bundle scope: the price is for the bundle (the access to the bundle's courses); the scope is the bundle
**Type:** Positive
**Covers:** 2.2 → Bundle scope: the price is for the bundle (the access to the bundle's courses); Rule: the bundle scope is the access to the bundle's courses; the scope is the bundle
**Preconditions:** A bundle price is defined.
**Steps:**
1. Open the bundle scope for the price.
2. Verify the price is for the bundle (the access to the bundle's courses).
3. Verify the scope is the bundle.
**Expected Result:** The bundle scope is the access to the bundle's courses — the scope is the bundle.
**Priority:** High

### TC-SA-12-02-010 — Bundle discount: the discount (the bundle is cheaper than the individual courses); the discount is the value
**Type:** Negative
**Covers:** 2.2 → Bundle discount: the discount (the bundle is cheaper than the individual courses); Rule: the bundle discount is the incentive (the bundle is cheaper than the individual courses); the discount is the value
**Preconditions:** A bundle price is defined with a discount.
**Steps:**
1. Compare the bundle price to the sum of the individual courses' prices.
2. Verify the bundle is cheaper than the individual courses.
3. Verify the discount is the value.
**Expected Result:** The bundle discount is applied — the bundle is cheaper than the individual courses.
**Priority:** Critical

### TC-SA-12-02-011 — Price application: the price applied (the bundle's purchase is the bundle's price)
**Type:** Positive
**Covers:** 2.2 → Price application: the price applied (the bundle's purchase is the bundle's price)
**Preconditions:** A bundle price is live.
**Steps:**
1. As a learner, buy the bundle.
2. Verify the price charged is the bundle's price (the bundle price applied, the discount given).
**Expected Result:** The price is applied — the bundle's purchase is the bundle's price.
**Priority:** Critical

### TC-SA-12-02-012 — Price record: the price recorded (the bundle, the price, the time); the record is the proof
**Type:** Positive
**Covers:** 2.2 → Price record: the price recorded (the bundle, the price, the time)
**Preconditions:** A bundle price has been applied to a purchase.
**Steps:**
1. Open the price record.
2. Verify it shows the bundle, the price, and the time.
**Expected Result:** The price is recorded — the bundle, the price, and the time are shown.
**Priority:** High

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

### TC-SA-12-02-014 — A price change (a bundle's price updated) is recorded (the new price, the new discount, the time); it is auditable
**Type:** Positive
**Covers:** 2.2 → Rule: a price change (a bundle's price updated) is recorded (the new price, the new discount, the time); it is auditable
**Preconditions:** A bundle price is live.
**Steps:**
1. Change the bundle's price (the new price, the new discount, 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 discount, the time) — it is auditable.
**Priority:** High

### TC-SA-12-02-015 — The bundle prices are visible (the bundles, the prices, the discounts, the durations); the bundle pricing is managed
**Type:** Positive
**Covers:** 2.2 → Rule: the bundle prices are visible (the bundles, the prices, the discounts, the durations); the bundle pricing is managed
**Preconditions:** Multiple bundle prices are defined.
**Steps:**
1. Open the bundle prices view.
2. Verify the bundles, the prices, the discounts, and the durations are visible.
3. Verify the bundle pricing is managed.
**Expected Result:** The bundle prices are visible — the bundles, the prices, the discounts, and the durations are shown.
**Priority:** Medium

## 2.3 Skill Path Pricing

### TC-SA-12-02-016 — Price definition: the price defined by the Super Admin (the skill path, the price, the duration); the price is explicit per skill path
**Type:** Positive
**Covers:** 2.3 → Skill path price: the price per skill path (the skill path, the price, the access duration); Price definition: the price defined by the Super Admin (the skill path, the price, the duration); Rule: the skill path price is per skill path; the price is explicit per skill path
**Preconditions:** The Super Admin opens the professional pricing.
**Steps:**
1. Define the skill path price: the skill path (the one the price is for), the price, and the access duration.
2. Save the price.
3. Verify the skill path price is live and explicit per skill path.
**Expected Result:** The skill path price is defined (the skill path, the price, the access duration) — the price is explicit per skill path.
**Priority:** Critical

### TC-SA-12-02-017 — Skill path scope: the price is for the skill path (the access to the skill path's courses); the scope is the skill path
**Type:** Positive
**Covers:** 2.3 → Skill path scope: the price is for the skill path (the access to the skill path's courses); Rule: the skill path scope is the access to the skill path's courses; the scope is the skill path
**Preconditions:** A skill path price is defined.
**Steps:**
1. Open the skill path scope for the price.
2. Verify the price is for the skill path (the access to the skill path's courses).
3. Verify the scope is the skill path.
**Expected Result:** The skill path scope is the access to the skill path's courses — the scope is the skill path.
**Priority:** High

### TC-SA-12-02-018 — Skill path value: the value (the skill path is cheaper than the individual courses); the value is the deal
**Type:** Negative
**Covers:** 2.3 → Skill path value: the value (the skill path is cheaper than the individual courses); Rule: the skill path value is the incentive (the skill path is cheaper than the individual courses); the value is the deal
**Preconditions:** A skill path price is defined.
**Steps:**
1. Compare the skill path price to the sum of the individual courses' prices in the skill path.
2. Verify the skill path is cheaper than the individual courses.
3. Verify the value is the deal.
**Expected Result:** The skill path value is applied — the skill path is cheaper than the individual courses.
**Priority:** Critical

### TC-SA-12-02-019 — Price application: the price applied (the skill path's purchase is the skill path's price)
**Type:** Positive
**Covers:** 2.3 → Price application: the price applied (the skill path's purchase is the skill path's price)
**Preconditions:** A skill path price is live.
**Steps:**
1. As a learner, buy the skill path.
2. Verify the price charged is the skill path's price (the skill path price applied, the value given).
**Expected Result:** The price is applied — the skill path's purchase is the skill path's price.
**Priority:** Critical

### TC-SA-12-02-020 — Price record: the price recorded (the skill path, the price, the time); the record is the proof
**Type:** Positive
**Covers:** 2.3 → Price record: the price recorded (the skill path, the price, the time)
**Preconditions:** A skill path price has been applied to a purchase.
**Steps:**
1. Open the price record.
2. Verify it shows the skill path, the price, and the time.
**Expected Result:** The price is recorded — the skill path, the price, and the time are shown.
**Priority:** High

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

### TC-SA-12-02-022 — A price change (a skill path's price updated) is recorded (the new price, the time); it is auditable
**Type:** Positive
**Covers:** 2.3 → Rule: a price change (a skill path's price updated) is recorded (the new price, the time); it is auditable
**Preconditions:** A skill path price is live.
**Steps:**
1. Change the skill path'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-02-023 — The skill path prices are visible (the skill paths, the prices, the durations); the skill path pricing is managed
**Type:** Positive
**Covers:** 2.3 → Rule: the skill path prices are visible (the skill paths, the prices, the durations); the skill path pricing is managed
**Preconditions:** Multiple skill path prices are defined.
**Steps:**
1. Open the skill path prices view.
2. Verify the skill paths, the prices, and the durations are visible.
3. Verify the skill path pricing is managed.
**Expected Result:** The skill path prices are visible — the skill paths, the prices, and the durations are shown.
**Priority:** Medium

## 2.4 Lifetime Access Pricing

### TC-SA-12-02-024 — Price definition: the price defined by the Super Admin (the course, the one-time price); the price is explicit per lifetime access
**Type:** Positive
**Covers:** 2.4 → Lifetime price: the price per course (the course, the one-time price); Price definition: the price defined by the Super Admin (the course, the one-time price); Rule: the lifetime price is per course; the price is explicit per lifetime access
**Preconditions:** The Super Admin opens the professional pricing.
**Steps:**
1. Define the lifetime price: the course (the one the price is for) and the one-time price.
2. Save the price.
3. Verify the lifetime price is live and explicit per lifetime access.
**Expected Result:** The lifetime price is defined (the course, the one-time price) — the price is explicit per lifetime access.
**Priority:** Critical

### TC-SA-12-02-025 — Lifetime scope: the price is for the lifetime access (the access to the course for life); the scope is the lifetime
**Type:** Positive
**Covers:** 2.4 → Lifetime scope: the price is for the lifetime access (the access to the course for life); Rule: the lifetime scope is the access to the course for life; the scope is the lifetime
**Preconditions:** A lifetime price is defined.
**Steps:**
1. Open the lifetime scope for the price.
2. Verify the price is for the lifetime access (the access to the course for life).
3. Verify the scope is the lifetime.
**Expected Result:** The lifetime scope is the access to the course for life — the scope is the lifetime.
**Priority:** High

### TC-SA-12-02-026 — Lifetime premium: the premium (the lifetime is a premium to the subscription); the premium is the deal
**Type:** Negative
**Covers:** 2.4 → Lifetime premium: the premium (the lifetime is a premium to the subscription); Rule: the lifetime premium is the value (the lifetime is a premium to the subscription); the premium is the deal
**Preconditions:** A lifetime price is defined and a subscription price exists for the same course.
**Steps:**
1. Compare the lifetime price to the subscription price for the same course.
2. Verify the lifetime is a premium to the subscription (the lifetime price is higher than the equivalent subscription cost).
3. Verify the premium is the deal.
**Expected Result:** The lifetime premium is applied — the lifetime is a premium to the subscription.
**Priority:** High

### TC-SA-12-02-027 — Price application: the price applied (the lifetime purchase is the lifetime price)
**Type:** Positive
**Covers:** 2.4 → Price application: the price applied (the lifetime purchase is the lifetime price)
**Preconditions:** A lifetime price is live.
**Steps:**
1. As a learner, buy the lifetime access.
2. Verify the price charged is the lifetime price (the lifetime price applied, the premium paid).
3. Verify the access is granted for life (no expiry).
**Expected Result:** The price is applied — the lifetime purchase is the lifetime price; the access is for life.
**Priority:** Critical

### TC-SA-12-02-028 — Price record: the price recorded (the course, the price, the time); the record is the proof
**Type:** Positive
**Covers:** 2.4 → Price record: the price recorded (the course, the price, the time)
**Preconditions:** A lifetime price has been applied to a purchase.
**Steps:**
1. Open the price record.
2. Verify it shows the course, the price, and the time.
**Expected Result:** The price is recorded — the course, the price, and the time are shown.
**Priority:** High

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

### TC-SA-12-02-030 — A price change (a lifetime price updated) is recorded (the new price, the time); it is auditable
**Type:** Positive
**Covers:** 2.4 → Rule: a price change (a lifetime price updated) is recorded (the new price, the time); it is auditable
**Preconditions:** A lifetime price is live.
**Steps:**
1. Change the lifetime 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-02-031 — The lifetime prices are visible (the courses, the prices); the lifetime pricing is managed
**Type:** Positive
**Covers:** 2.4 → Rule: the lifetime prices are visible (the courses, the prices); the lifetime pricing is managed
**Preconditions:** Multiple lifetime prices are defined.
**Steps:**
1. Open the lifetime prices view.
2. Verify the courses and the prices are visible.
3. Verify the lifetime pricing is managed.
**Expected Result:** The lifetime prices are visible — the courses and the prices are shown.
**Priority:** Medium
