Quantity and unit price are per invoice period
Quantity is the number of units DualEntry bills on one invoice. Unit price is the price of one of those units on that same invoice. Both fields keep that meaning for every recognition method, including straight-line, daily pro-rata, immediate, milestone, and usage. An invoice period is one generated invoice date in the obligation’s effective billing window. DualEntry builds those dates from billing start, billing end, billing frequency, and billing interval, or from a synced billing schedule when the contract comes from an integration. A start or end stub still counts as one invoice period. If monthly billing runs from 01/15/2026 through 03/01/2026, the generator creates 01/15/2026 and 02/15/2026, so TCV uses two invoice periods. This per-invoice meaning is what keeps a seat count readable from the contract through each invoice. When you enter 10 seats at $100 on a 12-month monthly contract, each monthly invoice shows quantity 10 at $100, not a fractional 0.83 seats. The contract form labels that field Quantity per period. The public contracts API uses the same meaning. Thequantity and rate fields on a performance obligation are the per-invoice-period quantity and unit price. Sending a term-total quantity on a multi-invoice obligation multiplies TCV by the invoice count a second time. For the API steps, see How to Enter Obligation Pricing.
Standalone selling price follows the same split as the pricing mode you use. On Unit price, SSP per period is the standalone price of one unit for one invoice period. On Total amount, SSP is the standalone price of the whole obligation. Allocation still uses those SSP values to split transaction price under ASC 606 and IFRS 15. See Allocations and SSP for the formula.
How total contract value is calculated
Total contract value is the consideration DualEntry expects from the obligation across its generated invoices. For a uniform-period obligation, DualEntry calculates it as unit price times quantity times the number of invoice periods. The contract form shows that math as you type. Quantity 10, unit price $100, and 12 monthly invoices preview as $12,000 (10 × $100 × 12 periods). The obligation header and the contract subtotal use the same amount, so you can check TCV before you save. After activation, the sum of generated invoice line amounts before tax equals that TCV, and the revenue schedule totals the same figure. Billing cadence is the TCV clock. Weekly billing with monthly recognition still uses the weekly invoice count. Quantity 10 at $100 across 52 weekly invoices is $52,000 TCV. Each weekly invoice shows 10 × $100. The monthly recognition schedule then allocates that $52,000; it does not divide invoice quantity. Quarterly billing with monthly recognition works the same way: four quarterly invoices of 10 × $100 produce $4,000 TCV, and recognition spreads $4,000 across its own dates. Recognition strategy still controls when DualEntry posts revenue. Straight-line, daily pro-rata, and custom recognition frequency and interval only change how DualEntry places recognition lines. They do not rewrite quantity, unit price, or TCV. That separation is what lets you bill annually and recognize monthly without turning 10 seats into a fractional invoice quantity. A change order keeps the per-invoice meaning on every version of the obligation. If a 12-month monthly obligation starts at quantity 10 and $100, then changes to quantity 15 from month 7, DualEntry calculates 10 × $100 × 6 plus 15 × $100 × 6, or $15,000. Revenue already recognized before the modification date stays as posted. See Change Orders, Terminations, and Renewals for how DualEntry reallocates the updated transaction price.What each recognition method counts as an invoice period
DualEntry counts TCV periods from generated invoice dates, then applies a small set of method-specific exceptions. The table below is the rule DualEntry uses when it turns quantity and unit price into TCV.
Milestone obligations are the main exception to uniform multiplication. Quantity 10 at $100 on a milestone obligation totals $1,000, however many milestone invoices you raise. That total is the ceiling: the milestones on the obligation cannot exceed it. Billing can follow milestone completion or the standard schedule. See Milestone Revenue Recognition.
Prepaid drawdown is the other exception you will meet on usage obligations. DualEntry invoices the committed pool once, so that prepaid invoice is the TCV period. Later consumption draws the remaining balance and does not multiply the original quantity across every recognition month. See How Usage Drawdown Works.
Usage obligations that bill as they go also count one TCV period. Quantity times unit price is a projection, and recorded consumption replaces it as you post usage. The unit count you configure in a usage tier is the same quantity concept as the units on an invoice line. See Usage Pricing: Flat and Tiered Models.
Immediate recognition also counts one TCV period, so quantity times unit price equals TCV however often the obligation bills. If an immediate obligation bills on more than one date, DualEntry splits that quantity and amount across the invoices rather than multiplying them.
How invoices and revenue schedules use quantity
For a uniform-period obligation, each invoice DualEntry generates from the contract uses the obligation’s per-period quantity and unit price. Quantity 10 at $100, billed monthly for 12 months, produces 12 invoice lines of 10 × $100 = $1,000. Those line amounts sum to TCV, and DualEntry does not divide the contract quantity across the term. An obligation that counts one TCV period but bills on several dates, such as an immediate obligation billed monthly, splits its quantity across those invoices instead, so a line can show a fractional quantity. Bill-as-you-go usage invoices reflect recorded consumption and its pricing model, not the configured TCV projection. The revenue schedule and the schedule preview use the same per-period quantity. A monthly straight-line obligation with quantity 10, unit price $100, and 12 months shows quantity 10 and $1,000 on each recognition period, with a schedule total of $12,000. Preview and the saved schedule show identical numbers. Recognition still follows the method you assigned: daily pro-rata can split amounts by day, and a custom interval can skip months, but the quantity on each line stays the quantity you entered. Invoices already issued keep the quantity and amount they had when DualEntry created them. Changing quantity or unit price on a later change order updates future invoices and the remaining recognition schedule. It does not rewrite posted invoice lines or journal entries in closed periods. For how a contract-generated invoice then moves through sending, payment, and dunning, see How to Invoice Customers and Run Dunning. When you migrate an in-flight contract, enter quantity and unit price with this per-invoice meaning, or use Total amount and enter the full original contract value, which DualEntry divides into per-period amounts. The TCV on the migrated contract should still be the full original contract value. See Migrate Mid-Life Contracts.Next steps
Use the pages below to enter pricing, allocate the resulting transaction price, and keep billing and recognition on the cadences you need. Start with the how-to if you are creating a contract now. Use the allocation and timing pages after the obligation total looks right, because SSP allocation and recognition cadence both consume TCV rather than rewriting quantity.- Enter a total or a per-period price in How to Enter Obligation Pricing.
- Allocate the contract’s transaction price in Allocations and SSP.
- Set billing frequency in Subscription Billing. Billing frequency is the TCV clock, so change it before you treat the preview as final.
- Set recognition cadence in Recognition Timing: Frequency and Intervals when you need to recognize on a different cadence from billing.
- Record usage against a per-period price in Usage Pricing: Flat and Tiered Models.
- Review contract-generated invoice lines in How to Invoice Customers and Run Dunning.