Most businesses that take recurring or contract payments end up with the same three-layer stack: Stripe to move the money, a subscription-billing platform on top to decide what to charge, and a spreadsheet on top of that to work out what the accountant can actually recognise as revenue this month. Each layer is sensible on its own. Together they are expensive, fragile, and still leave the hardest part to a person with a formula.
This piece is about collapsing that stack into one system built around your contracts, and about when that is worth doing.
What Stripe does and does not do
Stripe is excellent at the payment layer: cards, direct debits, retries, receipts, payouts. It also has subscription features that work well when your pricing is simple, meaning a few fixed plans, monthly or annual, with the same rules for everyone.
Where it strains is everything that makes your business your business. Contracts with minimum terms and early-exit fees. Charges that depend on usage, mileage, headcount or time. Pro-rata adjustments when something changes mid-period. Deposits held and released. Discounts that apply for three months then stop. Invoices that have to match a contract a salesperson negotiated by hand. You can bend Stripe's subscription model to some of this, but each bend is a workaround you now have to remember.
Why the billing platform rarely fixes it
Subscription-billing platforms exist to fill that gap, and for a software company with standard SaaS pricing they do. For an operations business with real-world contracts, the fit is usually partial: the platform handles seventy per cent of your cases cleanly and the other thirty per cent become manual credit notes, overrides, and a monthly fee that climbs with your revenue whether or not the tool is earning it.
The honest test is to count how many invoices last month needed a human to correct them after the platform produced them. If the answer is more than a handful, the platform is not running your billing. Your team is, with the platform as an expensive first draft.
Revenue recognition is the part everyone leaves to the spreadsheet
Billing is what you charge. Revenue recognition is what you have earned, which is a different number whenever a payment covers a period of time. A twelve-month contract paid up front is twelve months of revenue, not one. A deposit is a liability until the thing it secures has happened. An early-exit fee is recognised when the exit happens, not when the contract was signed.
Getting this right matters for three reasons. Your management accounts are wrong without it, which means decisions are being made on wrong numbers. Your accountant will have to rebuild it at year end, which you pay for. And if you ever raise money, sell the business or take on a lender, deferred revenue is one of the first things anyone looks at.
Almost every business we have seen does this in a spreadsheet that one person maintains. It works until it doesn't.
What a purpose-built system looks like
The system we build for this is not a replacement for Stripe. It sits on top of it and owns the logic. In practice it does four things.
It holds the contract as the source of truth: the term, the price, the rules for changes, exits and extras, exactly as agreed. It generates every invoice from that contract, so an invoice can only be wrong if the contract is wrong, and it pushes the charge to Stripe to collect. It records what each payment is *for*, period by period, so revenue recognition happens automatically as each day passes rather than in a month-end scramble. And it produces the month-end pack your accountant actually wants: recognised revenue, deferred revenue, accrued income and debtors, as a report you export rather than a spreadsheet you build.
When it is worth building
Not always. If your pricing is simple and your invoices rarely need correcting, use Stripe's own billing and keep the money. Build when at least two of these are true: your contracts have rules a standard plan cannot express; your team corrects invoices by hand every month; your revenue recognition lives in a spreadsheet that one person owns; or your billing platform fee has become a line item you notice.
We have built exactly this for a vehicle-hire business running hundreds of fixed-term contracts, replacing a subscription-billing platform and a month-end spreadsheet with one system integrated with Stripe. If that sounds like your situation, the free mapping session is where we work out whether it is worth doing for you.