Automated revenue recognition software for SaaS
Revenue recognition software turns every invoice into a schedule of earned and deferred revenue, month by month, and posts the journal entries to your ledger. Bunny does it from the same subscriptions and invoices that bill your customers, so the schedule is never out of step with the contract.
Bunny is SaaS billing, CPQ and RevOps for B2B SaaS. Revenue recognition comes with the Advanced Billing add-on: daily ratable schedules per invoice line, journal entries for QuickBooks Online and Xero, and an export your auditors can work from.
An annual subscription, then a mid-term upgrade
A customer signs a $36,500 annual subscription for 2026, invoiced in advance on January 1. On April 1 they add seats, and the prorated upgrade is invoiced at $8,250 for April 1 to December 31.
Each invoice line is spread by day across its own service period: $100 a day for the subscription, $30 a day for the upgrade. Revenue moves from deferred to earned at the end of every month, so nobody rebuilds the schedule when the contract changes.
| Month | Days | Subscription line | Upgrade line | Revenue earned | Deferred revenue at month end |
|---|---|---|---|---|---|
| January 2026 | 31 | $3,100 | — | $3,100 | $33,400 |
| February | 28 | $2,800 | — | $2,800 | $30,600 |
| March | 31 | $3,100 | — | $3,100 | $27,500 |
| April | 30 | $3,000 | $900 | $3,900 | $31,850 |
| May | 31 | $3,100 | $930 | $4,030 | $27,820 |
| June | 30 | $3,000 | $900 | $3,900 | $23,920 |
| July–December | 184 | $18,400 | $5,520 | $23,920 | $0 |
The journal entry each month debits deferred revenue and credits earned revenue for the amount in the orange column. In Bunny those entries are posted to QuickBooks Online or Xero for you. Want to run your own numbers? Use the revenue recognition calculator.
Revenue recognition that runs itself
Most teams recognise revenue in a spreadsheet that someone exports from billing every month. Bunny skips the export. Every issued invoice creates its revenue schedule the moment it’s issued.
| Charge | How it’s recognised |
|---|---|
| Recurring | Spread by day over the service period, booked monthly |
| Discounts and adjustments | Spread over their own period, alongside the charge |
| One-time fees | Immediately, or over a number of months you set on the charge |
| Usage | In the month it’s invoiced |
| Credit notes | Reverse revenue line by line, over the credited period |
What finance gets
ASC 606 revenue recognition software, step by step
ASC 606 (introduced by ASU 2014-09) and its international twin IFRS 15 set out five steps for recognising revenue from customer contracts. For a subscription business, most of the work is data: knowing exactly what was sold, at what price, over which period. That data is already in your billing system — if it’s the right one.
-
Identify the contract
In Bunny the contract is the accepted quote. It becomes the subscription directly, so there’s no gap between what was signed and what’s billed.
-
Identify the performance obligations
Each charge on the price list — platform, seats, usage, onboarding — is its own line with its own accounting code, so each performance obligation reports separately.
-
Determine the transaction price
The price on the quote, including negotiated discounts, flows through to every invoice line. Nothing is rekeyed.
-
Allocate the price
Discounts are set line by line on the quote, so a bundle discount can be split across its charges in proportion to their standalone selling prices. Each line then carries its allocated price into the revenue schedule.
-
Recognise revenue as it’s earned
This is the part Bunny automates end to end: daily ratable schedules, monthly journal entries, and automatic updates when a customer upgrades, downgrades or receives a credit.
The RevOps expert your team never had.
- Type "send upgrade quotes to all starter plan accounts" — done in seconds
- Know which renewals need you this month, while there is still time to do something about it
- Find every overdue invoice in one question, instead of one account at a time
No credit card required. Cancel anytime.