Step 4 — Review¶
Purpose¶
The Review step displays a full breakdown of the battery swap so the attendant can verify all details before proceeding to payment or completing the transaction.
What's Shown¶
The review screen presents a complete summary:
| Field | Description | Example |
|---|---|---|
| Old battery ID | The returned battery's identifier | BAT-2024-00451 |
| Old battery energy | Remaining energy in the returned battery | 0.38 kWh |
| New battery ID | The replacement battery's identifier | BAT-2024-00789 |
| New battery energy | Energy stored in the new battery | 2.85 kWh |
| Energy difference | Net energy gained by the customer (kWh) | 2.47 kWh |
| Gross cost | Energy difference × rate per kWh | CFA 494.00 |
| Quota credit | Energy quota deducted from cost | - 0.50 kWh (CFA 100.00) |
| Net amount due | Final amount the customer must pay | CFA 394.00 |
Quota Covers Full Cost¶
If the customer's energy quota remaining is equal to or greater than the energy difference, the net amount due is zero. In this case:
- The attendant can complete the swap directly without collecting payment.
- The flow skips Step 5 (Payment) and proceeds straight to Step 6 (Done).
UI Behavior¶
- All values are displayed in a read-only summary format.
- Key figures (energy difference, net amount due) are prominently highlighted.
- A status line indicates readiness:
- "Ready to collect payment" — if amount due > 0
- "Quota covers full cost — ready to complete" — if amount due = 0
Suggested Validations¶
- All previous steps must be complete (customer identified, both batteries read).
- Gross cost should equal
floor(energy_difference, 2) × rate_per_kWh. - Quota credit should not exceed the gross cost.
- Net amount due should equal
gross_cost - quota_credit(minimum 0).
Actions¶
- Collect Payment proceeds to Step 5 — Payment (if amount due > 0)
- Complete Swap proceeds to Step 6 — Done (if quota covers full cost)
- Back returns to Step 3 — New Battery Assignment