Revenue recognition is available on supported plans and may require activation on your account while the feature is being rolled out. If you do not see Accounting > Revenue recognition, contact support to confirm availability and access.
All revenue recognition amounts are net of tax. Tax is always posted
separately as a liability (output tax account) at the time the invoice is
issued, regardless of the recognition method applied to the revenue.
Recognition methods
The recognition method is defined in your Revenue recognition accounting rule. You can set it at the rule level and override it for specific products or customer segments using filters.Over time
Revenue is spread across the service period in proportion to time, by day. You select the Schedule, which sets how often Hyperline posts recognition entries:Example 💡
A customer pays €12,000 upfront for a 12-month SaaS subscription starting 1
January 2027. With a monthly schedule, Hyperline defers the full €12,000 at
invoice time and recognizes it month by month in proportion to the number of
days in each month: about €1,019 in January, €921 in February, and so on, for
€12,000 in total.
Point in time
All revenue is recognized at a single date. You select the Recognition date:Example 💡
A one-off implementation fee with “service end date” basis will remain
deferred until the end of the project, at which point the full amount is
recognized.
Usage-based
Revenue is recognized in line with what your customers actually consume. Use this method for metered products and credit packs. The amount you recognize each day reflects that day’s usage, not a flat allocation. When the invoice is issued, the full amount is parked in deferred revenue. Each day, Hyperline releases the share corresponding to that day’s consumption. Days with no usage recognize nothing; busy days recognize more.This covers usage billed in advance: the customer prepays (or buys a credit pack) and the amount is deferred at issue. When usage is billed in arrears (invoiced at the end of the period for what was already consumed), revenue is accrued against a contract asset instead. See usage billed in arrears.
Recognition timing
A daily job sweeps every day’s slice. It only releases revenue once the day’s usage total has been seen unchanged on two consecutive runs (that is, no late events landed between observations). This stability gate gives a ≥24 hour grace period for late-arriving usage events. In practice, day D’s revenue is recognized at the next-but-one daily run (typically two days after the consumption day). A day with zero observed usage gets an extra 7 days before being closed at zero. This way, a slow-starting customer or a delayed ingestion pipeline doesn’t permanently zero out an early slice. Two carve-outs to that gate:- Catching up on old periods. A day whose period closed more than 7 days ago is recognized on the first pass, without waiting for a second observation. The late-event window has already elapsed.
- Credit-pack drawdown has no grace period. Drawdown is recognized as soon as it is read. If a drawdown lands late, Hyperline trues the schedule up with an additional slice rather than dropping the amount.
Once a day’s revenue has been recognized, events landing for that day after recognition are not retroactively allocated. If your usage pipeline regularly produces late events older than 48 hours, reach out before relying on usage-based recognition for material amounts.
Example 💡
A customer is invoiced €600 upfront for a metered product over a 30-day
service period and consumes 1,000 units across that period. Hyperline
defers €600 at invoice time, then recognizes each day in proportion to
that day’s consumption: a day with 50 units recognizes €30, a day with
no usage recognizes nothing.
Credit packs
Credit packs follow the same usage-based engine, with the schedule anchored on the credit topup rather than a metered aggregator:- The service window is the topup’s validity period (
createdAt → expiresAt). Non-expiring topups inherit the line item’s billing period. - Each day, Hyperline reads the credits drawn down that day and releases the proportional share of the topup’s value.
- When a customer holds multiple active topups, drawdown is attributed FIFO: the oldest topup is consumed first, so its schedule recognizes ahead of newer ones.
Example 💡
A customer buys a €1,000 / 500-credit pack valid for 90 days. Over that window
they consume 400 credits. Hyperline recognizes €800 across the 90 days in
proportion to daily consumption; the remaining €200 stays deferred until
expiry.
Breakage on expiry
When a topup expires with credits unconsumed, the unrecognized remainder is recognized in a single entry on the expiry date as breakage (per ASC 606-10-55-46 through 55-49). Any pending future slices on the schedule are cancelled, and the schedule is closed.Example 💡
Continuing the example above: on day 90, the topup expires with 100 credits
unused. Hyperline posts a single recognition entry for the remaining €200 on
the expiry date and marks the schedule completed.
Flat fees and seats use over-time or point-in-time recognition. Usage-based
doesn’t apply to non-metered, non-credit products.
Usage billed in arrears
Some metered products are billed in arrears: the invoice is issued at the end of the period for usage that already happened. The revenue is therefore earned before it is invoiced. Deferring it (as for prepaid usage) would understate revenue during the period. Instead, Hyperline recognizes it as it is consumed and holds it as a contract asset (unbilled revenue) until the invoice is issued. Each day during the period, Hyperline recognizes that day’s consumption against unbilled revenue (rather than releasing it from deferred revenue). When the invoice is issued at period end, the accrued amount is reclassified from unbilled revenue to accounts receivable. It is not recognized again. If the final invoiced amount differs from what was accrued (late usage, corrections), the difference is trued up at issue. This way, unbilled revenue nets to zero and recognized revenue equals the invoiced net. Accrual runs per product and per ledger. Each daily run recognizes the usage added since the previous run, without waiting for late events.Example 💡
A customer consumes a metered product through May and is invoiced €300 (net)
on 31 May for that usage. Across May, Hyperline recognizes the €300 day by day
as it is consumed, holding it in unbilled revenue. On 31 May the invoice moves
the €300 from unbilled revenue to accounts receivable, so no revenue is
recognized a second time.
See how entries are computed → usage billed in arrears for the exact debits and credits at accrual, invoicing, and settlement.
Discount recognition
When a line item includes a discount, you control how the discount amount is treated at recognition time using the Discount method on the Revenue recognition rule:Recognition schedule statuses
Each invoice line item gets a recognition schedule. Lines covered by a contract-based subscription are the exception: they bill the contract’s schedule and show no schedule of their own on the invoice. The schedule can have the following statuses:Revenue waterfall
Go to Accounting > Revenue recognition. The tab shows a single matrix called the revenue waterfall. For each booking month (the month invoices were issued, or the month its term started for a contract-based schedule), it shows how the booked revenue unwinds into recognized revenue across the following months. It also shows how much is still deferred.
Filter the matrix by year, All customers, All products, or search by invoice number, customer name or ID, or subscription ID.
All waterfall amounts are net of tax and expressed in the ledger’s functional currency.
Drill into a cell
To see what makes up a figure, double-click any non-zero cell, or select it and click Explore in the floating bar that appears. The drill-down lists the line items behind that cell:
Select a line item to open its full recognition schedule in a sidebar.
Recognition schedules
The sidebar is where a single line item’s schedule lives. It shows:- The customer, subscription, invoice, and product the schedule belongs to
- An Overview with the recognized amount against the booked amount, and a progress bar
- The amounts excluding and including tax
- The recognition method in plain words (e.g.
Over time - Monthly) - The service period
- The Slices table: one row per recognition slice, with its
PeriodandAmount, each taggedRecognized,Pending,Reversed, orCancelled
Adjust revenue recognition
Sometimes the schedule Hyperline computed no longer reflects reality: the obligation was satisfied earlier than planned, delivery was renegotiated, or the service period was set up wrong. Click Adjust revenue recognition in the Slices section of a schedule to reshape what is left, without touching what has already been recognized.This action requires the Make accounting adjustments permission. See Permissions.
The two moves
An adjustment combines two moves in a single operation. You can use either or both:- Recognize now: select Total amount or Partial amount to release that part of the deferred balance today. Hyperline posts one entry in the current open period, debiting deferred revenue and crediting revenue.
- Spread the remaining: click Update recognition schedule and set the start and end dates of the new Recognition period.
- The booked total stays the same. An adjustment moves revenue in time but never creates or destroys any.
- Already-recognized amounts are never touched.
- A quarterly or yearly schedule keeps its periodicity when re-spread. It is not silently converted to monthly.
Preview before applying
The editor previews the result before you commit. Each resulting slice is listed with its new amount, and where an amount changed, the old one is struck through next to it. Slices covering the already-recognized span are tagged Settled, and any amount you chose to recognize immediately is tagged Now.Reason
A Reason is mandatory because it makes the adjustment auditable:Audit trail
Hyperline records every adjustment on the schedule under Manual adjustments: who made it, when, how much was recognized early, the new recognition window, the reason, and a link to the journal entry that was posted. Each slice the adjustment produced also carries a Manual badge in the Slices table, so an automated slice is never mistaken for a hand-made one. The recognized summary export carries the sameauto / manual distinction.
When a schedule can be adjusted
The Adjust revenue recognition button is available when all of the following hold:- The schedule is Pending or In progress. A Completed or Cancelled schedule has nothing left to move
- It still has a remaining deferred balance
- It is not a point-in-time schedule. There is no spread to reshape
- It does not use deferred discount recognition
- It is not a contract-based schedule. The action is not offered there, since the contract manages the schedule. Update the subscription instead
Export
The Export dropdown on the Revenue recognition tab produces two XLSX reports. Export waterfall exports the matrix as displayed for the selected year:
Export recognized summary exports recognized revenue only, cut three ways:
Every amount in the recognized summary carries an
Origin column marking it auto (posted by the recognition engine) or manual (produced by an adjustment).
Exports run in the background. The file downloads automatically once it’s ready, and you can also find it under Reports > Exports.

