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. It can be set at the rule level and overridden for specific products or customer segments using filters.Over time
Revenue is spread evenly across the service period using a straight-line allocation. You configure the granularity at which Hyperline posts recognition entries:Example 💡
A customer pays €12,000 upfront for a 12-month SaaS subscription starting 1
January. With monthly granularity, Hyperline defers the full €12,000 at
invoice time and recognises €1,000 each month from January to December.
Point in time
All revenue is recognised at a single date. You configure the recognition date basis: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
recognised.
Usage-based
Revenue is recognised in line with what your customers actually consume. Use this method for metered products and credit packs — the amount you recognise 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 recognise nothing; busy days recognise 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 and only releases revenue once the day’s usage total has been seen unchanged on two consecutive runs — i.e. 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 recognised 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, so 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 recognised 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 recognised 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 recognised, 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 recognises each day in proportion to
that day’s consumption — a day with 50 units recognises €30, a day with
no usage recognises 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 recognises 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 recognises €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 unrecognised remainder is recognised 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, so the revenue is earned before it is invoiced. Deferring it (as for prepaid usage) would understate revenue during the period, so Hyperline recognises 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 recognises 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 recognised again. If the final invoiced amount differs from what was accrued (late usage, corrections), the difference is trued up at issue so unbilled revenue nets to zero and recognised revenue equals the invoiced net. Accrual runs per product and per ledger, and uses the same daily stability gate as prepaid usage — a day’s revenue is released once its usage total has been seen unchanged on two consecutive runs, giving a ≥24 hour grace period 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 recognises 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 — no revenue is
recognised 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 recognition mode on the Revenue recognition rule:Recognition schedule statuses
Each invoice line item gets a recognition schedule. The schedule can have the following statuses:Revenue waterfall
Go to Accounting > Revenue recognition. The tab is a single matrix — the revenue waterfall — showing, for each booking month (the month invoices were issued), how the booked revenue unwinds into recognised revenue across the following months, and how much is still deferred.
Filter the matrix by year, All customers, All products, or free-text search.
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 recognised 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 remaining 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 remaining recognition on a schedule to reshape what is left, without touching what has already been recognised.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 — release part or all of the remaining deferred balance immediately. Hyperline posts one entry in the current open period, debiting deferred revenue and crediting revenue.
- Spread the remaining — re-plan whatever is still deferred over a new From → To window.
- The booked total stays the same — an adjustment moves revenue in time, it never creates or destroys any.
- Already-recognised 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-recognised span are tagged Settled, and any amount you chose to recognise immediately is tagged Now.Reason
A Reason is mandatory — it is what makes the adjustment auditable:Audit trail
Every adjustment is recorded on the schedule under Manual adjustments: who made it, when, how much was recognised 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 remaining recognition button is available when all of the following hold:- The schedule is
pendingorin_progress— acompletedorcancelledschedule 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
Export
The Export dropdown on the Revenue recognition tab produces two XLSX reports. Export waterfall — the matrix as displayed, for the selected year:
Export recognized summary — recognised 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 asynchronously. You will be notified in-app once the file is ready, and it will be available from Exports in the main navigation.

