Skip to content

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.

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

calculation reference matrixCalculation reference matrix: proration, APR, supplemental withholding, vesting, per diem, and tax line rounding
Calculation reference matrix: proration, APR, supplemental withholding, vesting, per diem, and tax line rounding
Case IDCalculation and ruleInputsReference valueSystem valueResult
CALC-01Mid-cycle plan upgrade proration; plan terms prorate the old and new plan prices by whole days remaining in the billing periodOld 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 days40.0040.00Pass: the system charges 60.00 for the new plan and credits 20.00 for the old plan, matching the reference
CALC-02APR 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-03APR 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.0014.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-04Federal 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 separatelyBonus 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 rate1,100.001,100.00Pass: the system withholds 22% of 5,000.00, matching the reference
CALC-05Federal 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-4Bonus 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 million15,500.0011,000.00Fail: 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-06Stock 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 dayGrant of 48,000 options; vesting commencement 2025-01-31; cliff date 2026-01-31; vested balance requested as of 2026-02-2813,000 options12,000 optionsFail: 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-07Per 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 travelTravel 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 method215.00258.00Fail: 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-08Taxable 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 totalThree interest statements of 120.40, 80.40, and 45.40 for line 2b; return set to whole-dollar rounding246245Fail: 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?

Usage based billing charges a customer for measured consumption in a billing period, such as API calls, transactions, or storage, instead of or on top of a fixed plan price. The billing system aggregates metered events per customer and period, prices the quantity against unit or tiered rates, and adds the result to the invoice.

What is revenue recognition?

Revenue recognition is the accounting rule that decides when and in what amount a company reports revenue. Under IFRS 15 and ASC 606, revenue is recognised when or as the company transfers the promised goods or services, so a subscription paid a year in advance is recognised over the year, and the unearned part is held as a contract liability.

What is a soft decline?

A soft decline is a card authorisation decline that the issuer may approve on a later attempt, for example after the cardholder adds funds. In Visa rules updated effective 17 April 2021, the closest group is Category 2, Issuer cannot approve at this time, which allows a merchant up to 15 reattempts in 30 days. A Category 1 decline, Issuer will never approve, must not be reattempted.

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