Money movement and financial logic
Subscription billing and revenue testing
Subscription billing and revenue testing checks the logic that repeats on every invoice: plan changes and proration, usage metering, dunning and card retry schedules, invoice tax, cancellation and renewal notices, and the revenue recognition export. Billing, banking, and tax software teams receive a proration scenario suite, metering accuracy checks, a dunning test report, and a revenue output reconciliation.
What subscription billing testing covers
A billing defect repeats on every renewal of every affected subscriber. We compute expected invoices, credits, retries, and revenue entries independently of the billing engine and compare them with its output.
Plan changes and proration
Worked example on a day basis, for a monthly period from 1 July to 1 August (31 days): a customer on a 31.00 USD plan upgrades to 62.00 USD at 00:00 UTC on 21 July. The 11 unused days give a credit of 11.00 USD and a charge of 22.00 USD, so 11.00 USD is due. A downgrade back to 31.00 USD at 00:00 UTC on 26 July then credits 12.00 USD for the 6 remaining days and charges 6.00 USD, a net credit of 6.00 USD.
The suite also covers seat changes, trial conversion, monthly to annual switches, changes at the exact period boundary, and changes whose customer-local date differs from the UTC date. Rounding modes and divisors are tested with financial calculation testing; the prorated billing testing guide lists the test data.
Article 219 of the VAT Directive treats any document that amends and refers specifically and unambiguously to the initial invoice as an invoice, and Article 90(1) reduces the taxable amount where the price is reduced after the supply, under conditions that Member States determine. We test that each proration credit note references its original invoice and reverses tax at the rate the client's tax specification assigns.
Usage metering
The checks replay a synthetic corpus with a known total per customer and period, for example 10,000 events in one monthly period, of which 200 repeat an idempotency key already sent. The expected billed quantity for that period is 9,800. The corpus also includes events timestamped before period close and delivered after it, events near midnight in non-UTC time zones, aggregation rules (sum, maximum, last value) and meter resets on a mid-period plan change.
Under the practical expedient in paragraph B16 of IFRS 15, an entity whose right to consideration corresponds directly with the value of its performance completed to date may recognise revenue in the amount it has a right to invoice. For such an entity, a metering error moves straight into reported revenue.
Dunning and card retry schedules
Retry branches follow the Visa Category 1 and Category 2 reattempt rules set out on the billing segment page, and a merchant must not reattempt with the same account number after response code 14.
We map every response code the processor returns to a branch and count retries across the 30-day window, including retries customers start in the portal. We also test that an updated payment method stops the old schedule, that the dunning email matches the invoice state, and that the final action (cancel, pause, or mark unpaid) follows the policy. The dunning testing guide gives the schedule cases.
Cancellation and renewal notices
The cancellation and notice rules we test against, including 15 U.S.C. 8403, California Business and Professions Code 17602, and the status of the FTC Negative Option Rule after the Eighth Circuit vacated its October 2024 amendments on 8 July 2025, are listed on the billing segment page.
We test that cancellation stops scheduled renewals and pending dunning retries, and that each notice job selects the right subscribers on the right date.
Revenue recognition handoff
Under IFRS 15 paragraph 106, a contract is presented as a contract liability when the customer pays, or payment is due, before the entity transfers the service. On a 1,200.00 USD annual plan invoiced and paid on 1 January and recognised monthly on a straight-line basis, the export shows 100.00 USD of revenue and a 1,100.00 USD contract liability at 31 January. Paragraph 21 sets how a contract modification that paragraph 20 does not treat as a separate contract is accounted for. The reconciliation ties each invoice line, credit note, and refund to its service period and to the recognised and deferred amounts. Ledger postings are covered by ledger and reconciliation testing.
Related
Segments
Standards
Guides
Deliverables
Plan change and proration scenario suite
Automated scenarios for upgrades, downgrades, seat changes, trial conversions, and repeated changes in one period, each with the expected invoice lines, credit notes, and tax, run in the client's CI pipeline.
Usage metering accuracy checks
Checks that compare a generated event corpus with known totals against the billed quantity per customer, meter, and period, including duplicate, late, and out-of-order events.
Dunning and retry schedule test report
A report of each failed-payment path tested, with the decline category, the retry or stop decision, the customer message sent, and the final subscription and invoice state, for product and payment operations leads.
Revenue recognition output reconciliation
A per-period reconciliation of invoices, credit notes, and refunds against the recognised and deferred revenue export, with each unexplained difference listed for the finance lead and the auditor.
How billing tests fit your release process
Pull requests. Proration and tax scenarios run as integration tests against the billing engine with a controlled clock. A mismatch fails the build and prints the expected and actual invoice lines.
Nightly runs. The metering corpus is replayed into a staging environment, and dunning schedules run over simulated 30-day windows with the processor sandbox's decline test values. Results feed the dunning and retry schedule test report.
Configuration releases. Plan catalogues, price books, tax rates, and dunning policies often change without a code deploy. Each such change triggers the pre-release suite, because a new price or retry interval applies to every renewal after it goes live. A rate or plan catalogue change runs the proration suite and the invoice tax scenarios for every plan it touches, and a dunning policy change runs the retry schedule suite.
Renewal-date clock tests. In staging, test clocks advance subscriptions past trial end, renewal, and the annual reminder date, so a notice or charge that fires one day early or late shows up before release.
Before month-end close. The revenue recognition output reconciliation runs on the staging export for the period, and your finance lead reviews each difference before the ledger closes.
Test data. All runs use synthetic customers and processor sandbox tokens, so no cardholder data or account data enters the test environments.
Audit evidence. Suite runs are linked to change tickets and stored with their results. When processing integrity is in scope of a SOC 2 examination, the reconciliation records support criterion PI1.3 on system processing and PI1.4 on complete, accurate, and timely output, as described on the SOC 2 page.
Handover. Suites, the event corpus, and expected values live in your repository, and your engineers can run them without us. Your finance lead owns the revenue policy and signs off expected values. Your product lead owns the dunning and notice policy that the tests encode.
Sample deliverable
Sample, synthetic data
| Case ID | Calculation and rule | Inputs | Reference value | System value | Result |
|---|---|---|---|---|---|
| CALC-01 | Mid-cycle plan upgrade proration; plan terms prorate the old and new plan prices by whole days remaining in the billing period | Old plan 30.00 per 30-day period; new plan 90.00 per 30-day period; upgrade effective at 00:00 on day 11, leaving 20 days | 40.00 | 40.00 | Pass: the system charges 60.00 for the new plan and credits 20.00 for the old plan, matching the reference |
| CALC-02 | APR on a closed-end loan with an origination fee; actuarial method under 12 CFR 1026, appendix J; the APR shall be considered accurate if it is not more than 1/8 of 1 percentage point above or below the reference under 12 CFR 1026.22(a)(2) | Principal 10,000.00; origination fee 300.00 withheld from proceeds; note rate 9.00%; 36 monthly payments of 318.00; amount financed 9,700.00 under 12 CFR 1026.18(b)(3) | 11.09% | 9.00% | Fail: the system solves the APR against the 10,000.00 principal instead of the 9,700.00 amount financed, 2.09 percentage points below the reference; critical; blocks release |
| CALC-03 | APR on a closed-end loan with an origination fee; actuarial method under 12 CFR 1026, appendix J; the APR shall be considered accurate if it is not more than 1/8 of 1 percentage point above or below the reference under 12 CFR 1026.22(a)(2) | Principal 5,000.00; origination fee 100.00 withheld from proceeds; note rate 12.00%; 24 monthly payments of 235.37; amount financed 4,900.00 | 14.05% | 14.00% | Pass: the system APR is 0.05 percentage points below the reference, inside the 1/8 of 1 percentage point tolerance |
| CALC-04 | Federal income tax withholding on a supplemental wage payment at the flat rate; IRS Publication 15 (2026), section 7: if income tax was withheld from regular wages in the current or immediately preceding calendar year, the employer can withhold a flat 22% on supplemental wages identified separately | Bonus 5,000.00 paid separately from regular wages; income tax withheld from regular wages in 2026; supplemental wages before the payment 20,000.00; employer elects the flat rate | 1,100.00 | 1,100.00 | Pass: the system withholds 22% of 5,000.00, matching the reference |
| CALC-05 | Federal income tax withholding on a supplemental wage payment that crosses 1,000,000.00 in the calendar year; IRS Publication 15 (2026), section 7: the excess over 1 million is subject to withholding at 37%, without regard to the employee's Form W-4 | Bonus 50,000.00 paid separately from regular wages; supplemental wages paid in 2026 before the payment 980,000.00; employer elects the flat rate for the amount up to 1 million | 15,500.00 | 11,000.00 | Fail: the system applies 22% to all 50,000.00 instead of 22% to 20,000.00 and 37% to 30,000.00, so 4,500.00 is under-withheld; critical; blocks release |
| CALC-06 | Stock option vesting with a one-year cliff; grant agreement vests 25% at the first anniversary, then 1/48 of the grant monthly on the commencement day, or on the last day of a month without that day | Grant of 48,000 options; vesting commencement 2025-01-31; cliff date 2026-01-31; vested balance requested as of 2026-02-28 | 13,000 options | 12,000 options | Fail: the system skips the February vesting event because February has no 31st day, so 1,000 vested options cannot be exercised; high; blocks release |
| CALC-07 | Per diem allowance for meals and incidental expenses under the high-low method; IRS Notice 2025-54, section 5, paragraph 1: 86.00 per day for a high-cost locality; Rev. Proc. 2019-48, section 6.04(1): the payor may allocate three-fourths of the rate to each partial day of travel | Travel to Boston/Cambridge, a high-cost locality from October 1 to September 30 under Notice 2025-54, section 5, paragraph 2; departure 2026-08-10; return 2026-08-12; lodging reimbursed on receipts; payor policy uses the three-fourths method | 215.00 | 258.00 | Fail: the system pays 86.00 for the departure and return days instead of 64.50 each, so the allowance is 43.00 above the reference; high; blocks release |
| CALC-08 | Taxable interest on a return rounded to whole dollars; Form 1040 instructions (tax year 2025): if you have to add two or more amounts to figure the amount on a line, include cents when adding and round off only the total | Three interest statements of 120.40, 80.40, and 45.40 for line 2b; return set to whole-dollar rounding | 246 | 245 | Fail: the system rounds each statement before adding, so line 2b is 1 below the reference; medium; release allowed with the defect scheduled for the next release |
Amounts use XTS, the ISO 4217 code reserved for testing, with rule thresholds stated in US dollars applied at one XTS per dollar. Loans, employees, grants, trips, and returns are generated test records, and every reference value was computed outside the system under test.
Questions
What is usage based billing?
What is revenue recognition?
What is a soft decline?
Scope your billing and revenue testing
Send your plan catalogue, pricing models, dunning policy, tax setup, and a revenue export, and we return a test scope with the deliverables above.
Scope your testing