SEATS / ADJUSTMENTS / CASH
Subscription changes: inspect a prorated downgrade
Separate a seat adjustment from the money already collected and the refund actually requested.
Cash and account credit
Inspected event history
Current snapshot
Offline fictional accounting policy. No provider pricing, invoice API or payment processing. Inspection seconds are not billing days. Round the net adjustment once, ties away from zero.
Separate a downgrade from a cash refund
This offline subscription experiment starts with four seats at a fictional monthly price of 1001 minor units per seat. One teaching currency unit, CU, contains 100 minor units. The original invoice is therefore 4004 minor units. The period lasts exactly thirty days. A quantity change creates a separate adjustment without erasing that original invoice. Eight decisions reveal the original charge, collection, change date, adjustment, revised obligation, credit, refund request and final ledger. There is no payment processor, customer account, bank transfer or provider price in this experiment.
Change seat quantity and effective day
Seats after change offers zero, two, four or six seats. Zero removes the seat allocation for the remaining period; it is not a provider cancellation API. Change day offers the start, day one, midpoint or end of the thirty-day period. The net adjustment is (new seats minus four) multiplied by 1001 and by the remaining fraction of the period. Round this single net amount to the nearest minor unit, with ties away from zero. Four seats produces no adjustment. Day thirty also produces no adjustment because no service time remains. Day zero replaces the entire period charge. The fixture does not separately round an unused-service credit and a new-service debit.
Run exact downgrade and upgrade experiments
Start with zero seats on day fifteen and the original invoice paid. The adjustment is negative 2002, leaving a revised obligation of 2002 and an account credit of 2002. No refund occurs by default. Select a 1000 refund request: the final credit becomes 1002 and net cash becomes 3004. Select 5000 instead: the request is rejected in full, leaving cash at 4004 and credit at 2002. Now set six seats and no refund. The midpoint adjustment is positive 1001, producing a revised obligation of 5005 and an additional amount due of 1001. Nothing automatically collects that amount.
Distinguish cash, receivables and credits
Original invoice payment switches between fully paid and entirely unpaid; partial payment is outside this fixture. Repeat the midpoint zero-seat downgrade with unpaid selected. The adjustment reduces the receivable from 4004 to 2002, but creates no available refund credit because no cash was collected. A 1000 request must fail. This is an explicit fictional policy: reducing an unpaid obligation differs from crediting a paid account. It does not reproduce any provider billing mode. A request is accepted only when it fits both collected cash and available account credit. At the end, net cash plus amount due minus remaining credit equals the revised obligation. The original invoice and adjustment remain separate and inspectable.
Use the inspection controls
Play reveals a sixty-second teaching sequence and changes to Pause. Pause freezes the current view. Next event advances to the next seven-and-a-half-second decision boundary. Restart rewinds while keeping the selected inputs and speed. Time seeks and pauses; Speed offers quarter, half, normal or double playback. Changing any scenario input returns to the beginning without automatically playing. Hiding the tab pauses playback. Later financial results stay unknown until their event is inspected. These seconds pace explanations, not payment latency or elapsed billing days. Export events JSON saves the full precomputed fixture separately from the inspected prefix.
Compare evidence and understand the limits
Capture baseline stores the current view and choices. Replace baseline updates that comparison and Clear baseline removes it. Notebook observations persist in this browser and Export notes saves them. Expand experiment and Exit full screen adjust the view. The event list supports keyboard scrolling and every amount is also printed as text. Compare one input at a time and reconcile the final identity before drawing conclusions. This fixture excludes metered usage, taxes, discounts, real calendars, multiple changes, billing anchors, invoice voiding, disputes, retries, partial payments and legal requirements. Actual systems may calculate by the second and round different line items; negative adjustments need not cause automatic refunds. The related billing and cost articles provide broader implementation context.