When to use the milestone method
Use the milestone method when revenue should follow the completion of specific deliverables rather than a fixed schedule. Under ASC 606, an obligation satisfied at discrete points recognizes revenue as each point is reached, and the milestone strategy models exactly that. Common examples include:- Professional services and software delivery, where each phase (discovery, build, launch) carries its own value.
- Construction and engineering, where inspections and stage completions gate revenue.
- Pharmaceuticals and biotechnology, where clinical trial stages and regulatory approvals trigger payment.
Set up milestones on an obligation
You define milestones when you create the contract, on any performance obligation that uses the milestone strategy. Add the obligation, set its strategy to milestone, then add one or more milestone rows. Each milestone captures:- Name - a short label for the deliverable.
- Description - optional detail describing what completion requires.
- Planned date - the expected completion date. This is a projection and does not trigger recognition.
- Amount - the revenue attributable to the milestone, entered in one of three modes.
- Fixed - a specific dollar amount (for example, $10,000).
- Percentage - a share of the obligation total (for example, 25%), which DualEntry converts to a dollar amount.
- Computed - a quantity multiplied by a rate, which DualEntry evaluates to a dollar amount.
How milestone amounts allocate
The milestones on an obligation share out that obligation’s total value, which is its rate multiplied by quantity. DualEntry resolves every milestone amount, whether fixed, percentage, or computed, into a dollar figure and checks the total against the obligation. The sum of a milestone obligation’s amounts cannot exceed the obligation total. DualEntry rejects an over-allocated obligation at save. A partial schedule that sums to less than the obligation total is allowed, so you can author milestones incrementally as the arrangement’s stages become clear. To raise the obligation’s ceiling after activation, use a change order rather than editing amounts past the current total. A change order adjusts the obligation rate or quantity, re-links the milestones, and reallocates so the amounts fit the revised total.Recognize revenue by completing a milestone
Completion is the only trigger for milestone revenue. When the deliverable is met, mark the milestone complete: set its status to completed, enter the completion date, and optionally enter a completion amount. Completing the milestone posts recognition into the correct open period. The completion amount overwrites the planned amount when you provide it. Omit it to recognize the planned value. This lets you record the actual value delivered when it differs from the original projection, for example when a computed milestone resolves to a different figure at completion. DualEntry posts the recognition through the contract’s revenue subledger or as an individual recognition entry, depending on how the contract is configured. Milestone revenue flows to the ledger the same way as other strategies. A completed milestone is final: its recognition stands, and the milestone cannot be edited, re-dated, or re-completed afterward.Track recognized and deferred balances
The contract’s drawdown view summarizes how much of a milestone obligation has been recognized and how much remains deferred. It shows recognized revenue to date against the running deferred balance, plus the status of each milestone, so you can see progress at a glance. The running deferred balance is billed-to-date minus recognized-to-date. Depending on billing timing, an obligation may carry deferred revenue (billed ahead of recognition) or a contract asset (recognized ahead of billing). These balances roll into the standard revenue reports. For the full set of schedules, including the deferred revenue rollforward and contract balance report, see Reporting.Bill milestone obligations
Billing for a milestone obligation is driven by the obligation total, not by individual milestones, and it is independent of recognition timing. This separation is why milestone amounts are validated against the obligation total: invoicing works from the obligation’s rate multiplied by quantity. A per-obligation setting controls whether invoicing follows milestone completion:- Bill on milestone completion - DualEntry generates an invoice each time you complete a milestone, so billing tracks delivery.
- Bill on the standard schedule - DualEntry invoices on the obligation’s normal billing cadence, independent of when milestones complete.
Edit and cancel milestones
You can edit a milestone while it is in draft (before the contract is active) or active (after activation, before completion). Editable fields include the name, description, date, and amount (including the computed quantity and rate). Draft and active milestones are both editable; a completed milestone is immutable and rejects any edit. To remove a planned milestone, archive it. Archiving a draft or active milestone sets its status to archived and recognizes no revenue, because a milestone that was never completed holds no recognized amount. You can record an optional reason when you archive. To protect scheduled recognition and billing, DualEntry blocks editing the contract itself while an active milestone is outstanding on a live contract. Make structural changes through a change order instead of editing the contract directly.Milestone change orders and terminations
Contract modifications flow through the same change order and termination workflow as other strategies, with milestone-specific handling. A change order that adjusts a milestone obligation’s rate or quantity re-links its milestones. Milestones dated on or after the change’s effective date, and any without a date, move to the successor obligation. Earlier-dated and completed milestones remain on the predecessor. DualEntry then prorates each side’s allocation to the milestones it retains. When you terminate a contract, DualEntry archives the future (draft and active) milestones and routes the remaining deferred balance through the termination treatment you choose. That treatment either accelerates recognition or cancels the remaining schedule. Completed milestones keep their recognized revenue. See Change Orders, Terminations, and Renewals for the full modification workflow.Next steps
- See how the milestone strategy fits the recognition step of the ASC 606 five-step model.
- Review recognized and deferred milestone balances in Reporting.
- Configure invoicing cadence in Subscription Billing.
