Revenue Recognition

Automate deferred revenue schedules and stay compliant with ASC 606 and IFRS 15.

What Is Revenue Recognition?

Revenue recognition determines when your business records income on the books. Under accrual accounting, revenue is recognized when it is earned, not necessarily when cash is received. If a customer pays upfront for a 12-month subscription, you cannot book the full amount as revenue on day one. Instead, you recognize it gradually over the service period.

ASC 606 (US GAAP) and IFRS 15 (international) are the governing standards. Both follow a five-step model: identify the contract, identify performance obligations, determine the transaction price, allocate the price, and recognize revenue as obligations are satisfied.

BizBooks Pro handles the scheduling and posting automatically so you do not need to manage this process in spreadsheets or calculate entries by hand.

Who needs this? Any business that collects payment before delivering goods or services: SaaS companies, consulting firms, subscription boxes, annual maintenance contracts, construction projects, and more.

Setting Up a Revenue Contract

To begin recognizing revenue automatically, create a revenue contract in BizBooks Pro:

  1. Navigate to Revenue Recognition in the sidebar
  2. Click New Contract
  3. Fill in the contract details:
    • Contract Name: A descriptive label (e.g., "Acme Corp Annual License 2026")
    • Customer: Select from your customer list
    • Total Contract Value: The full amount of the agreement
    • Start Date: When the service or delivery period begins
    • End Date: When the service or delivery period ends
    • Recognition Method: Straight-line, milestone, or percentage-of-completion
    • Recognition Frequency: Weekly, monthly, quarterly, or annual
    • Revenue Account: The income account to credit (e.g., 4000 - Revenue)
    • Deferred Revenue Account: The liability account to debit (e.g., 2400 - Deferred Revenue)
  4. Click Save Contract

Once saved, BizBooks Pro generates the full recognition schedule based on your settings. You can review every future entry before any posting occurs.

Recognition Methods Explained

Straight-Line

Divides the total contract value evenly across the service period. Best for subscriptions, licenses, and any contract where value is delivered uniformly over time.

Example: A $12,000 annual SaaS license starting January 1. BizBooks Pro creates 12 monthly entries of $1,000 each, debiting Deferred Revenue and crediting Revenue.

Milestone-Based

Revenue is recognized when specific deliverables or milestones are completed. You define the milestones and their values when creating the contract, then mark each milestone as complete when the work is done.

Example: A $50,000 website build with three milestones: Design ($15,000), Development ($25,000), Launch ($10,000). Revenue is recognized as each phase is delivered and marked complete.

Percentage-of-Completion

Revenue is recognized in proportion to the work completed. You periodically update the completion percentage, and BizBooks Pro calculates and posts the appropriate amount.

Example: A $200,000 construction contract. After month one, the project is 20% complete. BizBooks Pro recognizes $40,000 in revenue. After month two, the project reaches 45%, and an additional $50,000 is recognized.

MethodBest ForHow It Works
Straight-LineSubscriptions, licenses, retainersEqual amounts each period
MilestoneProject work, consulting, deliverablesRecognized when milestone is marked complete
% of CompletionConstruction, long-term contractsProportional to work completed

Posting & Journal Entries

When a recognition entry is due, BizBooks Pro creates a journal entry with the following structure:

AccountDebitCredit
Deferred Revenue (liability)$1,000
Revenue (income)$1,000

This moves revenue from the balance sheet (deferred) to the income statement (earned). Each posted entry includes:

Viewing Posting History

Open any contract and click the Posting History tab to see every journal entry that has been created. Each row shows the date, amount, journal reference, and status. You can click through to the full journal entry for details.

Tip: Entries can be posted automatically on schedule or manually reviewed and approved before posting. Choose the workflow that fits your team in the contract settings.

Revenue Dashboard

The Revenue Recognition dashboard gives you a complete picture of your deferred and recognized revenue. Key metrics include:

The dashboard also shows upcoming recognition entries so you can see what will be posted in the next period. This is useful for forecasting and month-end preparation.

Working with Milestones

For milestone-based contracts, you manage deliverables directly within the contract view.

Creating Milestones

  1. Open a milestone-based contract
  2. Click Add Milestone
  3. Enter the milestone name, description, and revenue amount
  4. Optionally set an expected completion date
  5. Click Save

The total of all milestones must equal the contract value. BizBooks Pro shows a balance indicator so you can see if the milestones are fully allocated.

Marking Milestones Complete

  1. Open the contract
  2. Find the milestone in the list
  3. Click Mark Complete
  4. Confirm the completion date

When a milestone is marked complete, BizBooks Pro immediately generates the corresponding journal entry to recognize that portion of revenue.

Note: Milestones cannot be uncompleted after the journal entry has been posted. If you need to reverse a milestone, create a reversing journal entry instead.

Getting Started Checklist

Follow these steps to begin using revenue recognition in BizBooks Pro:

  1. Set up a Deferred Revenue account in your Chart of Accounts (liability type, e.g., account 2400). This is where unearned revenue sits on your balance sheet.
  2. Confirm your Revenue account exists (income type, e.g., account 4000). This is where earned revenue appears on your income statement.
  3. Create your first contract by going to Revenue Recognition and clicking New Contract. Start with a simple straight-line contract to see how the schedule generates.
  4. Review the generated schedule to make sure the amounts and dates look correct before any entries are posted.
  5. Post your first entry either manually or by letting the automatic posting run on schedule.
  6. Check the Revenue Dashboard to see your deferred and recognized balances update in real time.
  7. Run a Balance Sheet report to verify the Deferred Revenue liability appears correctly.
Need help? Revenue recognition can be complex depending on your business model. If you are unsure which method to use or how to structure your contracts, consult with your accountant or bookkeeper before setting up contracts in BizBooks Pro.

Multi-Obligation Contracts

The basic recognition contract above treats a deal as a single revenue stream. That works for a vanilla annual subscription, but real ASC 606 contracts often bundle several distinct deliverables: software, support, onboarding, training. Each of those is a separate performance obligation, and each earns revenue on its own clock.

Click 📑 Obligations on any contract card to open the multi-obligation editor. Inside, you can:

Once obligations exist, the recognition cron posts entries against each obligation individually. The journal entry's description names the obligation, the obligation's running recognized total updates after every posting, and an obligation auto-marks complete once recognition reaches its allocated amount.

Backward compatibility: Any contract you created before this upgrade is auto-migrated on the first server start after deploy. BizBooks Pro creates one synthetic obligation per legacy contract that mirrors its existing schedule. Your books behave exactly as before — the new multi-obligation features simply become available when you want them.

Standalone Selling Price (SSP)

To allocate the price of a bundled contract across its obligations, ASC 606 needs to know what each obligation would sell for on its own. That number is the standalone selling price. BizBooks Pro keeps an SSP per item with full effective-dated history.

Open the Products view and click SSP on any product row. The SSP modal exposes:

You can also set a default recognition method on the item. New obligations created from that item inherit the method automatically — useful when most of your software products are ratable and most of your service products are milestone-based.

Transaction-Price Allocation

With obligations defined and SSPs in the library, the allocation engine splits the contract's transaction price across the obligations. Open the obligations modal, set the transaction price and pick an allocation method in the header band, then click Allocate.

Allocation methods

After running, the obligations table reloads with the freshly allocated amounts. Each obligation's recognition schedule is regenerated against the new amount, so subsequent recognition entries reflect the allocation.

Mid-Term Modifications

Customers expand, downgrade, extend, or cancel mid-stream. ASC 606 prescribes three different treatments for modifications, and applying the wrong one is a classic source of misstatement. BizBooks Pro recommends the right treatment for each modification, requires explicit accountant approval before applying it, and keeps a full snapshot of the contract before and after.

From the obligations modal, click 📝 Modifications:

  1. Click New Modification and choose a type — add_obligation, reduce_obligation, extend_term, price_change, or cancel
  2. The form shows different fields per type (the wizard adapts)
  3. BizBooks Pro auto-recommends one of three treatments based on the modification type and how much of the contract has already been recognized:
    • Separate contract — the change is treated as a brand-new contract; the original keeps recognizing as before
    • Cumulative catch-up — the modified terms are applied as if they had been in effect from inception, with a catch-up entry posted in the current period
    • Prospective — the change applies only to remaining performance
  4. Save the modification — it lands as DRAFT
  5. An accountant clicks Approve; this is mandatory before any change can be posted
  6. Click Apply to mutate the contract / obligations and post any catch-up adjustment

Every modification stores a before_snapshot and an after_snapshot in JSON, the system's recommendation, the human's chosen treatment, and the names and timestamps of the approver and applier — exactly what an auditor needs to retrace how a contract evolved.

Override behavior: If the accountant disagrees with the recommended treatment, they can override it. The modal flags the override clearly so the override decision itself is visible in the audit trail.

Variable Consideration & Constraint

Plenty of contracts have moving parts: refund estimates, rebates, performance bonuses, volume discounts. ASC 606 calls these variable consideration and requires that you estimate the variable amount and apply a constraint — only the portion you're highly confident in flows through to recognized revenue.

Open 🎲 Variable Consid. from the obligations modal:

If you skip the constraint %, BizBooks Pro applies the company-level default at Settings → Revenue Recognition → Default Variable Consideration Constraint %. Sophisticated users override per obligation; teams that want a consistent floor lean on the company default.

Invoice ↔ Contract Linking

Cash collected and revenue recognized rarely move on the same calendar. Customers prepay annual deals, get billed quarterly, sign milestone-based contracts. To compute contract assets (recognized exceeds billed) and contract liabilities (billed exceeds recognized), BizBooks Pro lets you bind invoice lines to specific obligations.

From the obligations modal, click 🔗 Invoice Links:

This reconciliation feeds straight into the contract asset / liability rollforward disclosure report.

Four Audit Disclosure Reports

Open 📑 Disclosures from the Revenue Recognition view to access the four reports auditors expect to see in any ASC 606 / IFRS 15 footnote. Pick a period start and end, choose Monthly / Quarterly / Annual grouping, and run.

1. Revenue Waterfall

Recognized + future scheduled revenue, bucketed by period and shown with a running cumulative total. The standard "what's been booked, what's coming" view.

2. Remaining Performance Obligations (RPO)

The un-recognized portion of every active obligation, groupable by recognition method, expected period, or contract. Each grouping serves a different question auditors typically ask.

3. Contract Asset / Contract Liability Rollforward

Beginning and ending CA / CL balances computed from billed-vs-recognized snapshots at each period boundary, with the net change for the period.

4. Deferred Revenue Rollforward

Beginning balance (allocated minus recognized at period start) + additions (new pending entries created in the period) − releases (entries recognized in the period) = ending balance. Reconciles to the deferred revenue line on your Balance Sheet.

All four reports include a Print button for clean PDF output and can be re-run on demand for any period.

Marketing language: BizBooks Pro "supports ASC 606 / IFRS 15 with multi-obligation contracts, SSP allocation, contract modifications, and required disclosures." Until your CPA or audit firm validates a specific deployment, avoid claiming "audit-certified" — the framework is in place, the formal sign-off is engagement-specific.