Bookings vs Revenue

Woosung Chun
Woosung Chun
CFO, DualEntry
Woosung Chun
Woosung Chun
CFO, DualEntry

Woosung Chun is the CFO of DualEntry with experience in corporate finance, accounting, strategy, and acquisitions. He previously grew from scratch and led the M&A and Finance teams at Benitago, where he completed more than 12 acquisitions in 2 years. He graduated with a BS from NYU Stern. At DualEntry, Woosung writes about AI in accounting, revenue recognition, foreign currency accounting, hedge accounting, and ERP modernization for finance teams navigating complex, multi-entity environments.

Learn about our editorial policies.
Last updated
August 24, 2026
Reviewed by
Do San (Justin) Myung
Do San (Justin) Myung
Do San (Justin) Myung
Expert Accountant & Former Consulting CFO | DualEntry

Justin (Do San Myung) is Expert Accountant at DualEntry with 20+ years of hands-on experience managing general ledgers, financial close processes, and ERP implementations for mid-market and enterprise companies. As a former Consulting CFO and Controller, he has personally overseen month-end closes, SOX compliance programs, and multi-entity consolidations across technology, manufacturing, and services industries. Justin specializes in transforming manual accounting workflows into automated, AI-driven processes.

Learn about our editorial policies.
Bookings vs Revenue: Why They Never Match
Contents
More

Subscribe to the
DualEntry Newsletter

Get Fresh Al finance insights, reports and more delivered straight to your inbox

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Summarize this article

Bookings vs revenue: at a glance

Bookings measure the total value of signed customer contracts before any delivery or payment. Revenue is recognized under ASC 606, as each performance obligation is satisfied. [1] The same contract therefore produces different numbers in your CRM system, your billing system, and your income statement. Bookings tell your board what sales committed this quarter, while revenue tells your auditors what you earned.

Take a $120K annual contract signed in January, billed quarterly, with service starting on February 1st. One month into service, that single contract is producing four different correct numbers: a $120K booking, a $30K first invoice, $10K of monthly recognized revenue, and a $110K RPO balance — of which only $20K sits in deferred revenue. All four are right. The trouble starts when someone treats one of them as “the” number, or when two teams pull different ones into the same conversation.

To untangle the confusion, this guide covers what each metric measures and the journal entries that move a contract from one to the next. We’ll also look at the governance layer that finance teams often forget to document.

Bookings vs billings vs revenue vs ARR: an overview

Metric What it measures When it's recorded GAAP? Lives in Who relies on it
Booking The total committed contract value at point of signing The date the contract's signed No — an operating metric, not a non-GAAP financial measure CRM/board reporting Sales, leadership, board members, investors
Billings The amount invoiced to the customer The invoice date (per the billing schedule) No — but "calculated billings" (revenue + change in deferred revenue) starts from a GAAP figure, so it is presented as a non-GAAP financial measure Billing system → GL (AR; deferred revenue) Finance, collections, and treasury teams
Recognized revenue The value earned by satisfying performance obligations As a service is delivered (per ASC 606) Yes General ledger → income statement Auditors, the SEC, lenders, board members
ARR The annualized value of active recurring contracts It's a point-in-time snapshot No CRM/FP&A model Investors and FP&A teams

What are bookings?

What are bookings?

Bookings aren’t defined by GAAP — they’re an internal operating metric, owned by sales rather than accounting. They capture committed contract value at the moment a customer signs, and they live in CRM, never touching the general ledger.

Worth flagging early, because it trips people up later: “not GAAP” does not make bookings a “non-GAAP financial measure” in the SEC’s sense. That term is narrower than it sounds — it means a measure derived by adjusting a GAAP figure. Bookings is built from contract data that never touches the financial statements, which puts it in a different regulatory box entirely.[2], [3], [4] More on that below.

Finance teams tend to track several flavors at once:

  • New bookings: Contract value from customers who weren’t customers before
  • Expansion bookings: Incremental committed value from existing customers (seats, tiers, modules…)
  • Renewal bookings: Contract value from customers re-committing at the end of a term
  • Total bookings: All the above, combined

Whether renewals belong in your headline bookings number is up to you: it’s a policy choice, not an accounting rule. Two companies with identical sales performance can report very different bookings numbers, simply because they define the term differently.

Contract length raises another common question: TCV (total contract value) or ACV (annual contract value)? A three-year deal at $100K a year is $300K of TCV and $100K of ACV. Both numbers are defensible, but only one is comparable quarter to quarter (and then only if you use the same one consistently). If you switch to TCV in a quarter with an unusual multi-year deal, your growth rate will reflect contract length rather than real demand.

Sales pipeline isn’t bookings, either. Commitment requires a signature — a verbal “yes” doesn’t count. And a booking with no billing schedule attached is still just a forecast as far as cash is concerned. It counts toward contracted backlog, but nothing hits the ledger until you deliver or payment comes due. [1]

What is revenue?

What is revenue?

Revenue is contract value earned by satisfying performance obligations, governed by ASC 606’s five-step model. [1] Unlike bookings and billings, revenue appears on your income statement and in your audits.

A reminder of ASC 606’s five steps:

  1. Identify the contract with the customer
  2. Identify the performance obligations (the goods or services promised)
  3. Determine the transaction price
  4. Allocate the price across the obligations
  5. Recognize revenue as each obligation is satisfied

For a deep dive, check out our guide to ASC 606 revenue recognition.

Timing depends on how the obligation is satisfied. A SaaS subscription is satisfied continuously over the term, so it’s recognized over time, month by month. A perpetual license is different: software is what ASC 606 calls functional intellectual property, so once you’ve delivered a copy and the customer’s usage period has begun, control has transferred and the amount allocated to that license is recognized at a point in time. [5]

Two caveats on that, because both catch people out. The clock starts with delivery and the start of the license period, not with signature — revenue can’t be recognized before both have happened. And if you’re obliged to ship updates that substantively change the software and the customer has to take them, recognition reverts to over time (ASC 606-10-55-58C; 606-10-55-62). [5]

Because of this, taking shortcuts — saying “we’ll recognize it when they pay” — doesn’t work under accrual accounting. Cash timing and delivery timing are independent. A customer who prepays 12 months in January hasn’t actually given you 12 months of revenue in January, so recording it that way will overstate the income statement and understate the deferred revenue liability — and both get caught quickly in VC diligence or an audit.

The bookings-to-revenue waterfall

A booking becomes revenue by passing through invoicing and deferred revenue. Each step is a separate event with its own audit trail. The booking itself creates no journal entry: under ASC 606’s presentation guidance, a contract asset or contract liability arises only once one party performs or consideration becomes due, so a signed but unbilled and undelivered contract produces nothing in the ledger.[1] Upfront billings create deferred revenue — a contract liability, in ASC 606’s language — on the balance sheet. Deferred revenue converts into recognized revenue as the service is delivered month by month.

12-month waterfall: one $120K contract across four ledgers

This example is for a contract signed on January 15th. Service runs from February 1st to January 31st. The contract’s billed quarterly, in advance.

Month Bookings Billings Deferred revenue (period end) Recognized revenue (cumulative)
Jan $120,000 $0 $0 $0
Feb - $30,000 $20,000 $10,000
Mar - - $10,000 $20,000
Apr - - $0 $30,000
May - $30,000 $20,000 $40,000
Jun - - $10,000 $50,000
Jul - - $0 $60,000
Aug - $30,000 $20,000 $70,000
Sep - - $10,000 $80,000
Oct - - $0 $90,000
Nov - $30,000 $20,000 $100,000
Dec - - $10,000 $110,000
Full year $120,000 total $120,000 total $10,000 closing balance $110,000 total

One note on that last row: the deferred revenue figure is the closing balance at December 31, not the sum of the column. Deferred revenue is a balance that rises and falls all year — adding it up doesn’t mean anything.

The three journal entries: booking, billing, recognition

Event Entry
Booking (Jan 15) No journal entry. This is a CRM event.
Billing (Feb 1, and each quarter after) Dr Accounts Receivable $30,000 / Cr Deferred Revenue $30,000
Recognition (monthly, Feb onward) Dr Deferred Revenue $10,000 / Cr Revenue $10,000

In January, sales reports a $120K booking and the general ledger reports nothing (no invoice = no delivery = no entry). Although both numbers are right, there’s a big gap between them: we see $120,000 in the board deck and $0 on the income statement.

In February, the first invoice arrives. It creates a $30,000 receivable and a $30,000 deferred revenue liability. Still no revenue. Then service begins, and the first $10,000 is earned: deferred revenue moves to revenue. Deferred revenue closes February at $20,000.

In March, there’s no booking and no invoice. Another $10,000 is recognized, bringing deferred revenue down to $10,000.

The same pattern repeats for the rest of the year: $10,000 of revenue is recognized every month, deferred revenue rises with each new invoice and falls as revenue is recognized, and bookings don’t move for the rest of the year.

By December 31, the customer has been invoiced the full $120,000 and you’ve earned $110,000 of it. The remaining $10,000 stays in deferred revenue until it’s recognized in January.

What happens if the customer leaves halfway through

What happens if the customer leaves halfway through

Now say the customer leaves at the halfway mark. Before touching the numbers, be precise about what actually happened — this is where the shortcuts start.

If they simply stopped logging in, nothing changes. A SaaS subscription is a stand-ready obligation: you’re still holding the service available, so you keep recognizing revenue over the contract term regardless of usage. [6] Non-use is a retention problem, not an accounting event.

If the contract is actually terminated, the picture moves. Bookings still don’t change — the $120,000 January booking already happened, so it stays on the books. Revenue stops at the termination date, because the parties’ enforceable rights and obligations have ended. [1] Say they terminate at the end of June, five months into service: you’ve recognized $50,000, and the uninvoiced remainder of the term drops out of your RPO.

That leaves the $10,000 you’ve already invoiced but not yet earned. It goes one of two ways. If it’s refundable, you refund it. If the contract makes it non-refundable and your obligation is extinguished, it gets recognized as revenue — in proportion to the pattern of rights exercised where you expect to be entitled to it, otherwise once the likelihood of the customer using its remaining rights becomes remote (ASC 606-10-55-46 to 55-49).[1] What you cannot do is write it off. A contract liability doesn’t simply disappear, and “we wrote off the deferred balance” is the kind of entry an auditor reverses.

RPO: the audited version of bookings

RPO: the audited version of bookings

RPO is the ASC 606 disclosure of contracted revenue you haven’t recognized yet (ASC 606-10-50-13) — the transaction price sitting against performance obligations you still owe. [1] It’s a footnote in the audited annual financials, not a slide in the board deck. It’s also how the market reads “bookings” once a company reports publicly: the same commitment, but reviewed by auditors and filed with the SEC.

Two carve-outs worth knowing before you assume it applies to you. Private companies can elect out of the RPO disclosures entirely (ASC 606-10-50-16). [1] And any company can skip performance obligations under contracts with an original expected duration of a year or less — though if you use that expedient, or the related ones for variable consideration, you have to say so (ASC 606-10-50-14 through 50-15). [1], [8] Between them, those exemptions cover a lot of annual-contract SaaS.

Public SaaS companies report RPO because ASC 606 requires it, and most also break out cRPO (current RPO, the portion expected to convert to revenue in the next 12 months).[1], [9] Bookings can still show up in public communications, but as a management-defined metric outside the financial statements — a materially weaker perch: no standard definition, no auditor opinion, and an SEC expectation that you spell out exactly how you calculate it.

Internal bookings roughly become RPO additions, but the two won’t tie out exactly, and it’s worth knowing why. RPO runs only as far as the parties have present enforceable rights and obligations (ASC 606-10-25-3), so anything a customer can walk away from without a substantive termination penalty sits outside it. [1], [7] Where the penalty is substantive, the enforceable term — and therefore RPO — extends across the whole penalty period. Add your own bookings convention on top (TCV may span years RPO doesn’t) and the disclosure exemptions above, and you have three separate reasons the two numbers differ. Note that billing timing isn’t one of them: RPO covers billed and unbilled alike,[9] so invoicing earlier or later only shifts the split between deferred revenue and unbilled RPO.

That said, bookings discipline is still important if you plan to go public. In our experience, if your CRM bookings can’t be reconciled to your contract records now, you’ll be rebuilding that history — on a tight deadline, needless to say — during S-1 prep. The gap between tracking bookings and being able to disclose RPO is both a definitions problem and a data problem, and neither is a quick fix.

RPO and deferred revenue overlap, and CFOs blur them constantly. Deferred revenue is billed-but-unearned only. RPO is broader, including contracted value you haven’t billed yet. In the $120K example above, February’s RPO is $110,000 (everything still to be delivered), while deferred revenue is $20,000 (only what’s been invoiced).

Define your bookings policy now — before due diligence writes it for you

Take a composite we’ve seen more than once. A founder tells the board they’ve booked $9M. The data room shows $330K a month in recognized revenue — under $4M annualized. Nobody’s lying: the $9M is total contract value across multi-year deals, a chunk of it hasn’t gone live yet, and the board heard a number no one had ever defined. A written bookings policy removes the definitional ambiguity behind most disputes like this, in board reporting, audits, and due diligence alike.

The 7 policy decisions every CFO needs to lock in

Policy question Conservative treatment Aggressive treatment Our recommendation
TCV or first-year ACV? Book first-year ACV; disclose TCV separately Book full TCV, including out-years Report ACV as the headline; show TCV as a secondary line. Growth rates stay comparable across quarters.
Ramp deals Book the committed year-one value only Book the year-three run rate as if it were live today Book committed value by year. A ramp booked at exit-year run rate is a forecast wearing a contract's clothes.
Usage-based pricing: minimums vs overage Book the contractual minimum only Book minimum plus forecast overage Book the minimum. Overage is revenue when it happens, never a commitment.
One-time services Exclude from bookings, or track in a separate line Fold implementation and training fees into headline bookings Split them out. Services inflate bookings without adding recurring revenue, and most buyers will unbundle them anyway.
Renewals in "new bookings" New and expansion only; renewals reported separately All contract value in one number Report gross bookings and new bookings. A single blended number tells your board nothing about sales capacity.
Start-date rule Book at signature; track go-live separately Book at go-live, or at verbal commitment Book at signature. Signature is the auditable event, and the signature-to-go-live gap is a metric worth watching on its own.
Cancellation clawback Reverse the booking in the period the cancellation occurs Leave the original booking untouched, permanently Never restate the original period. Disclose cancellations as a separate contra-bookings line so trend data stays intact.

Consistency beats cleverness here. Choose your definitions once, apply them every quarter, and disclose any changes.

Note also that these points don’t always stay internal. Once you’re a registrant, bookings is treated as a key performance indicator rather than a non-GAAP financial measure [4] — the SEC’s 2020 MD&A guidance expects you to define the metric clearly, explain why it’s useful to investors, say how management actually uses it, and disclose the assumptions behind it. [10] The definitional discipline you build now is the disclosure you’ll owe later.

One boundary worth marking, because it’s where the two regimes meet: bookings escapes the non-GAAP rules only because it starts outside the financial statements. The moment a metric starts from a GAAP number, it crosses over. “Calculated billings” — revenue plus the change in deferred revenue — does exactly that, which is why public SaaS companies present it as a non-GAAP measure and reconcile it to revenue. [2], [3], [11] The same logic catches an “RPO including cancellable amounts” figure: it adds back amounts the GAAP-required RPO disclosure excludes, which is exactly what Regulation G’s definition of a non-GAAP financial measure describes. [2], [3] (TCV, by contrast, sits in the same box as bookings — it is contract data that never touches the financial statements.)

What bookings-revenue divergence tells you

What bookings-revenue divergence tells you

Don’t panic if you see a widening gap between bookings and recognized revenue — it’s simply a sign that something needs a second look. Depending on which intermediate metric stalls, it usually points to implementation, billing, collections, or churn.

Explaining the gap

Issue Likely cause First place to look
Bookings up; revenue flat Implementation backlog — signed deals aren't going live Signature-to-go-live time by deal; professional services capacity
Billings up, DSO rising Collections problem, not a revenue problem AR aging; invoice disputes; payment terms by segment
New bookings up, renewal bookings down Churn risk masked by new-logo growth Renewal rate by cohort; net-dollar retention; support ticket volume in the last 90 days
Revenue up, bookings flat Pipeline drying up — you're recognizing past wins Pipeline coverage; new-logo bookings trend over the last three quarters

Book-to-bill is a useful first check, borrowed from hardware: divide bookings by billings for the same period. Sustained above 1.0, you’re signing faster than you’re invoicing and your billable backlog is growing. Persistently below 1.0, you’re using up that backlog faster than you’re replacing it.

The catch is that it only works if you measure both sides the same way. Book TCV against quarterly billings and the ratio sits above 1.0 no matter what demand does — run the $120K contract above and Q1 comes out at $120,000 ÷ $30,000 = 4.0. Compare like with like (ACV bookings against annualized billings), then read the trend rather than the level.

One variable that’s widely under-monitored at enterprise scale is time-to-live — specifically, the lag between signature and the start of service. A $120K contract that goes live 90 days late doesn’t reduce bookings at all. It moves $30,000 of revenue into next year — or loses it outright, if the contract’s end date doesn’t move with its start date — even though the board still sees the deal as a win.

Why the tie-out is the biggest problem — and how software can help

Bookings live in the CRM. Billings live in the billing tool. Revenue lives in the GL. Three systems, three owners — and one board asking why the numbers disagree. Definitions cause the arguments; reconciliation causes the hours.

Everyone who’s worked in finance knows the routine. Export the CRM bookings report, export the billing schedule, pull the revenue subledger… and then spend days figuring out why they don’t line up. The discrepancies almost always come down to the same things: contract amendments that updated the CRM but not the billing schedule, mid-term upgrades that need reallocation across performance obligations, and co-term deals where two contracts were merged into one end date but the ledger wasn’t updated.

That middle one is worth naming properly, because it’s a rule and not just an annoyance. A mid-term upgrade is a contract modification under ASC 606, and the standard dictates whether you treat it as a separate contract, a termination and new contract, or a cumulative catch-up adjustment (ASC 606-10-25-10 through 25-13). [1] Get that judgment wrong in the CRM and the ledger inherits it.

These data-lineage problems happen again and again, every close, because the contract exists in three places, each with a different version of the truth.

Fixing it starts with one contract record driving everything downstream. The CRM booking, billing schedule, deferred-revenue amortization, and RPO disclosure, all pulled from the same source and updated automatically in case of contract modifications. DualEntry automates the bookings-to-revenue tie-out by unifying contract, billing, and GL data in one AI-native ERP.

Closing thoughts

The meaning of “bookings” gets argued about at the seed stage and gets written down by Series B. By the time you’re public, RPO and an auditor do that job for you. Regardless of your stage, handling reconciliation manually — three systems, one contract, and someone deciding by hand whether the numbers agree — is what can slow you down the most.

Schedule a demo to see how DualEntry automates revenue recognition, taking the tie-out off your finance team’s plate for good.

Bookings vs Revenue FAQs

Are bookings the same as ARR?

No. Bookings capture total contract value at signature, including multi-year and one-time components. ARR, meanwhile, annualizes only the recurring portion. A $300K three-year deal represents $300K in TCV bookings but only $100K in ARR.

Do bookings appear on the income statement?

No, never. Bookings are an operational metric tracked in CRM systems and through board reporting. Only recognized revenue — GAAP revenue, earned under ASC 606 — appears on the income statement.

Is deferred revenue the same as bookings?

No. Deferred revenue is cash or receivables already billed for services not yet delivered — a contract liability, in ASC 606's language, and a balance-sheet item. Bookings include contracted value that may not even be billed yet.

What is a good book-to-bill ratio?

There isn't a published SaaS benchmark. Book-to-bill comes from hardware — semiconductor equipment and electronics manufacturing — where orders and shipments are measured the same way. SEMI stopped publishing its North American semiconductor equipment book-to-bill report in 2017, and the live published ratio now comes from the Global Electronics Association (formerly IPC), which divides three months of booked orders by three months of billed sales across its survey sample.[12],[13] Its usefulness in SaaS depends entirely on measuring both sides consistently: if you book TCV and bill quarterly, the ratio sits well above 1.0 by construction and tells you nothing. Compare ACV bookings against annualized billings, then read the trend rather than the level.

When does a booking become revenue?

Only when performance obligations are satisfied: the service is delivered or the subscription period elapses. A booking signed in January for a February go-live produces zero January revenue.

What is RPO in SaaS?

Remaining performance obligations (RPO) refer to the ASC 606 disclosure of contracted revenue not yet recognized. It's the audited, public-company analogue of internal bookings reporting — though private companies can elect out of the disclosure, and any company can skip obligations under contracts running a year or less.[1]


References

See the full power of DualEntry in 30 minutes

Go live in 24 hours

By clicking "Schedule Demo" you agree to the use of your data in accordance with DualEntry's Privacy Notice, including for marketing purposes.