Recognition modes
Every contract runs in one of two recognition modes, set on the contract itself. The mode controls how DualEntry turns a recognition schedule into general ledger activity.- Individual. The default mode. DualEntry posts one journal entry per performance obligation per period as revenue is recognized. This is the legacy behavior, and existing contracts keep it with no change.
- Subledger. DualEntry writes recognized amounts as subledger lines that do not touch the general ledger until you post them in a batch.
Recognition mode controls only how revenue reaches the general ledger. It does not change ASC 606 allocation or the recognition strategy you assign per obligation. See ASC 606 in DualEntry for the underlying model.
Subledger lines
A subledger line is a single period’s recognized revenue for one performance obligation, recorded outside the general ledger. Each line carries a period date, an amount, a status, and, once posted, a link to the batch that posted it. Lines have two statuses:- Draft. The line has been computed from the recognition schedule but has not been posted to the general ledger. Draft lines have no GL impact and are not reflected in recognized revenue reports.
- Posted. The line has been posted to the general ledger as part of a batch. Posted lines are immutable.
Schedule refresh and catch-up lines
DualEntry regenerates a subledger contract’s draft lines from the current schedule whenever the contract changes. The refresh deletes all draft lines and rebuilds the complete schedule from the contract’s obligations, usage records, and parameters, so draft lines always reflect the latest terms. Posted lines are never touched by a refresh. Because posted periods are fixed, any difference between what was already posted and what the current schedule says should have been recognized is resolved with a catch-up line. DualEntry places the catch-up on the first open period rather than editing a closed one. Time-based and usage-based obligations both flow through the same calculator and catch-up mechanism. A late usage submission for a posted period produces a catch-up on the next open period instead of a retroactive change. This design keeps the subledger idempotent: rerunning the refresh on an unchanged contract produces the same lines, and every correction is visible as its own line.Immutability and reversals
Posted revenue is never modified in place. This invariant applies to both recognition modes and is what makes the subledger safe to post in batches. When an event would otherwise change an already posted period, DualEntry records an offsetting entry instead of editing the original. For the individual path, terminating a contract that prorates an already posted period creates a reversal entry. The reversal is a new revenue recognition, marked as a reversal, dated at the termination effective date, with swapped debit and credit directions for the over-recognized amount. The net general ledger impact matches the prorated result, but the original posted entry stays intact for audit purposes. See Change Orders, Terminations, and Renewals for the full termination flow. For subledger contracts, archiving a contract that already has posted lines does not delete GL activity. Instead, DualEntry creates a draft reversal line per obligation, dated at the last posted period, so you can post the reversal in a batch to zero out the GL impact. Unarchiving the contract regenerates the full schedule through the normal refresh.Guards on posted periods
For subledger contracts, DualEntry blocks contract modifications that would affect a period whose revenue is already finalized. You cannot create or archive a change order or termination for a date that has posted subledger lines after it, because that period was already approved and posted. The same guard applies to lines claimed by a pending batch, meaning a line whose batch has been created but not yet approved. To apply a modification that affects such a period, first reject or archive the pending batch to release its lines back to draft. Then make the change and post a fresh batch. These guards apply only to subledger contracts; individual contracts are unaffected.Next steps
- Post a Revenue Recognition Batch walks through previewing and posting subledger lines to the general ledger, including the approval workflow.
- ASC 606 in DualEntry covers the five-step recognition model that produces the amounts on each line.
- Reporting shows where posted revenue appears in the waterfall and deferred revenue schedules.
