Revenue Recognition

Revenue Recognition answers a different question from the rest of the workspace. Everywhere else, Revenue tells you when money moved. Here it tells you when revenue may be recognized — spread across the periods it was earned in, under ASC 606, rather than booked when the invoice was issued.


Overview

Open Revenue → Revenue Recognition, under Operations in the sidebar. From top to bottom the page has:

  • four summary cards for the selected accounting period;
  • a period summary that rolls the deferred-revenue balance forward, channel by channel;
  • Revenue trends and a 12-month recognition forecast;
  • the Revenue recognition schedule table;
  • the Unscheduled revenue records queue;
  • Close Period and Lock Period, for the periods you are ready to finalize.

All amounts are in USD, as the header notes beside the Recognition period selector. That selector defaults to the current month’s accounting period — or, if there is none, the latest one — and scopes the summary cards, the schedule table, and the unscheduled queue. The period summary has a period selector of its own, and the trends and forecast always count from the current month. An accounting period exists for each month that has at least one schedule line, so a month without one is not offered.

The Channel filter at the top of the workspace does not narrow this page. To look at one channel, use the schedule table’s own channel filter.

The method each record is recognized by is not set here. Recognition policies live on the Revenue Settings page, which is also where the four available methods are documented.

Summary cards

CardMeaning
Recognized this periodRevenue recognized on the period’s schedule lines. The line beneath counts the schedule lines behind it. Lines stay Pending until their period is closed, so a period that is still open usually reads $0.00.
Deferred revenue balanceScheduled minus recognized across those same lines, whatever their status. Labelled Balance sheet liability.
Partially recognizedThe amount already recognized on lines that are part-way through — some, but not all, of their scheduled amount. Labelled In-flight and adjusted lines.
Unscheduled recordsA count of revenue records in the period that have no schedule line yet, with the revenue they carry beneath it as pending schedule. See Unscheduled revenue records.

The first three cards follow the schedule table’s filters as well as the period: narrow the table by search, status, channel, or method, and those cards narrow with it. Unscheduled records follows the queue’s search and reason filters the same way. A card’s value shows — when its data could not be loaded.

Deferred revenue balance is not the same figure as the period summary’s Closing balance. The card is what the period’s schedule lines have not yet recognized; Closing follows the payments received — see Period summary.

Period summary

The period summary panel — titled with the month it covers, such as Jun 2026 summary — bridges the deferred-revenue balance from the start of a month to its end. It has its own period selector (Independent of period filter above), so you can walk the bridge month by month without changing the rest of the page.

The waterfall reads left to right:

  • Opening — the deferred balance carried in from every earlier month.
  • New payment — revenue records paid out, or else collected, during the month, at their USD base amount: the invoice amount converted to USD.
  • Recognized — everything recognized on the schedule lines of the month’s accounting period.
  • Write-offs — for written-off records, the part of their amount that was never recognized, whether or not the record was ever paid.
  • Closing — Opening + New payment − Recognized − Write-offs, which becomes the next month’s Opening.

Below the waterfall, three sections break the month down by channel:

SectionWhat it listsTotal label
Recognized revenueEach channel’s Recognized amount for the month.Net recognized
Deferred revenueEach channel’s Closing balance.Ending balance
Future contracted revenueWhat is still to be recognized on pending schedule lines in later accounting periods.Ending balance

A channel with nothing to report in a section is left out of it. Select Download CSV to export the three sections — one row per listed channel in each section, plus a total row for each — in the columns Period, Section, Line item, and Amount.

The summary needs at least one accounting period. Until the first schedule line has been generated there is none, and the panel reads Failed to load the rollforward. Try refreshing the page.

Recognized vs Deferred by Channel and Period

Recognized and deferred revenue by channel is in the period summary: its Recognized revenue and Deferred revenue sections list each channel, and its own month selector steps from one accounting period to the next. For the individual schedule lines behind those totals — each with its channel, billing period, and status — use the Revenue recognition schedule.

Revenue trends charts one series at a time over the Last 3 months, Last 6 months, Last 12 months (the default), or Last 24 months — the current month and the months before it. Switch series with the buttons above the chart.

ViewEach month showsTotal beneath the chart
RecognizedRevenue recognized on that month’s schedule lines.Cumulative recognized — the sum across the range.
DeferredThe deferred balance at month end — the same Closing balance the period summary computes.Closing deferred balance — the last month’s balance.
BookedRevenue invoiced that month: each revenue record’s USD base amount, by invoice date — before refunds, and including voided or written-off records.New bookings — the sum across the range.

Booked is not the Overview’s Bookings. Bookings on the Overview is contract value from entitlement terms; Booked here is invoiced revenue from revenue records, so the two will not match.

The 12-month recognition forecast charts what is still to be recognized on Pending schedule lines in the current month and each of the next eleven, with the Forecast total beneath. Alongside, up to six upcoming accounting periods are listed with their amount and a status chip: Pending for the first period listed when it is open, Forecast for later open periods, and otherwise the period’s own status.

Revenue recognition schedule

The Revenue recognition schedule table lists the schedule lines behind the cards, one row per line: Revenue record, Channel, Method, Billing period, Scheduled, Recognized, and Status. Select a column heading to sort by it; the table starts sorted by billing period, oldest first.

Narrow it with:

  • Search — matches the revenue record ID or the channel. It does not search customer or buyer names.
  • Status — Pending, Recognized, Adjustment, or Cancelled.
  • Channel — AWS, Azure, GCP, or Stripe.
  • Method — Straight-Line, Point-in-Time, Usage based, or Milestone.

Every filter also narrows the first three summary cards.

Unscheduled revenue records

The Unscheduled revenue records queue lists revenue records that have no recognition schedule line yet — records whose recognition status is empty or Unrecognized and whose invoice date falls in the selected period. The chip at its top reads N records · $X at risk: the count, and the amount those records carry — each record’s USD base amount, before refunds.

Work the queue with:

  • Search — record ID, channel, buyer ID, product ID, or the channel’s own record ID.
  • Reason — why a record has no schedule yet (see the table below).
  • Sort — Amt (high to low), the default, Amt (low to high), Date (newest first), or Date (oldest first).

Each row shows the Revenue record, Channel, Buyer (the buyer ID), Amt, and Date (the invoice date). The reason is a filter rather than a column: pick a reason to see the records it applies to.

ReasonWhat it means
Missing service datesA straight-line record has no service start or end date — on the record or on its entitlement.
Invalid service datesA straight-line record’s service end date is before its start date.
Missing trigger dateA point-in-time record has no trigger date, service start date, or invoice date.
Missing measurement windowA usage-based record has no dates to measure over — no service or entitlement period, and no invoice date.
Invalid measurement windowA usage-based record’s measurement window ends before it starts.
Missing milestone inputsA milestone record lacks a trigger date, an external trigger reference, or milestone amounts. An unscheduled milestone record currently shows this reason even when its milestone amounts are set.
Unsupported methodThe policy that applies names a method Fours cannot schedule.
Policy resolution failedNo recognition method could be resolved for the record.
Schedule pendingThe inputs look complete; the schedule has not been generated yet.
Service date lookup failedStill offered as a filter, but no record is currently given this reason: if Fours cannot look up service dates, the queue does not load.

The accounting period lifecycle

An accounting period moves through three states, and it only moves forward:

StatusWhat it means
OPENThe default. Schedules for the period can still be generated and changed, and their lines stay Pending.
SOFT_CLOSEDClose Period has run the recognition workflow for that period and recognized its pending schedule lines. An Admin can close it again, with a reason, to re-run the workflow. This is the state a period must be in before it can be locked.
LOCKEDThe period is final. Nothing can reopen it, and a further close or lock attempt is rejected.

Closing needs revenue write access, and locking — or closing a SOFT_CLOSED period again — also needs the Admin role. In the Insulin Revenue app, the Close Period card appears only if your role has revenue write access; the console shows it to every role and rejects the action for a role without it.

Close a period

  1. Enter the period — either a month such as 2026-06, or a period ID.
  2. Add a reason — optional for an OPEN period, required to close a SOFT_CLOSED period again.
  3. Select Close Period.

Closing starts the recognition workflow for that period: every pending schedule line in it is recognized at its scheduled amount, and the period moves to SOFT_CLOSED.

Lock a period

  1. Enter the period.
  2. Enter a reason — locking will not proceed without one.
  3. Select Lock Period.

KPI calculation formulas

All amounts are in USD: recognition schedules are generated in USD, and the page reports in USD only — except that a record with no USD base amount counts at its own-currency amount in New payment, Booked, and the pending-schedule figure. Every formula is the same for each channel that generates schedule lines — AWS, Azure, GCP, and Stripe; see Period summary for GCP cash and for channels on the Net reporting basis.

KPIFormulaCalculation details
Recognized this periodΣ recognized amountOver the schedule lines in the selected period that match the table’s search, status, channel, and method filters — every status counts unless you filter one. The line beneath is the number of those lines.
Deferred revenue balanceΣ scheduled amount − Σ recognized amountOver the same lines, including Cancelled and Adjustment lines unless you filter them out. Derived, not stored.
Partially recognizedΣ recognized amount where 0 < recognized < scheduledOver the same lines.
Unscheduled recordscount(records with no schedule line)Records whose recognition status is empty or Unrecognized and whose invoice date is in the selected period, narrowed by the queue’s search and reason filters.
Pending schedule · at riskΣ USD base amount of those recordsThe card’s $X pending schedule line and the queue’s $X at risk chip. A record with no USD base amount counts its invoice amount. Refunds are not subtracted, and voided or written-off records count at full value.
OpeningΣ (New payment − Recognized − Write-offs) over every earlier monthThe previous month’s Closing, carried forward.
New paymentΣ USD base amount of records whose payout date — or, without one, collected date — falls in the monthThe USD base amount is the invoice amount converted to USD, whatever the record’s reporting basis — so for a Net record it is more than its schedules recognize (see Period summary). A record with no USD base amount counts its invoice amount if it is in USD, otherwise its payout or collected amount in its own currency.
Recognized (period summary)Σ recognized amount of the schedule lines in the month's accounting periodEvery status counts. Each line counts toward its record’s channel.
Write-offsΣ max(0, the record's amount − everything recognized on its schedule lines) over written-off recordsThe amount is the one New payment uses, counted whether or not the record was ever paid. Placed in the month the record was last updated, or failing that its invoice month.
ClosingOpening + New payment − Recognized − Write-offsComputed per channel, then summed. The per-channel values are the Deferred revenue section.
Future contracted revenueΣ max(0, scheduled − recognized) over Pending lines in later accounting periodsLater means accounting periods that start after the selected month.
Recognized trendΣ recognized amount per monthTotal = the sum across the range (Cumulative recognized).
Deferred trendClosing balance at each month endTotal = the last month’s balance (Closing deferred balance).
Booked trendΣ USD base amount of records per invoice monthTotal = the sum across the range (New bookings). A record with no USD base amount counts its invoice amount; refunds are not subtracted, and voided or written-off records count. Invoiced revenue — not the contract value the Overview’s Bookings counts.
12-month recognition forecastΣ max(0, scheduled − recognized) over Pending lines, per monthThe current month and the next eleven. Forecast total is the sum; each listed upcoming period shows its month’s amount.

Freshness

Recognition schedules are generated as each channel’s revenue syncs in. A separate recognition recovery job runs hourly, at 17 minutes past the hour, and re-runs schedule generation for any sync that committed its records but ran out of retries before its schedules were built — so a missed generation repairs itself rather than leaving a permanent hole in the schedule.

Spotted something wrong or out of date on this page? Tell us and we'll correct it.