Skip to main content
On a flat-rate performance obligation, DualEntry lets you enter the term total or the per-invoice-period quantity and unit price. Either way, DualEntry saves a per-period quantity and rate: Total amount saves quantity 1 and divides the amount by the number of invoice periods. After you finish these steps, the obligation header, contract total, generated invoices, and revenue schedule all show amounts that match the mode you chose. For why quantity is per invoice period, see How Quantity and Rate Work.

Prerequisites

Before you price an obligation, confirm the following. DualEntry counts invoice periods from the billing fields on the contract, so a missing end date or frequency makes the live total preview wrong even when quantity and unit price are correct.
  • Revenue recognition is enabled for your organization.
  • You can create or edit a contract under Accounting > Revenue Recognition > Contracts.
  • You know the commercial term: the total you expect to invoice, or the quantity and unit price for one invoice period.
  • You have set billing frequency, billing interval, and the obligation dates.
  • You know whether the line is flat-rate (straight-line, daily pro-rata, immediate, or milestone) or usage-based.
Usage-tiered obligations do not show the Total amount and Unit price tabs. Price those on the usage controls instead, then record consumption against the obligation. See Usage Pricing: Flat and Tiered Models. If you are cutting over an in-flight contract, also have the original TCV and accumulated revenue ready so the amount you enter here stays the full original value. See Migrate Mid-Life Contracts.

Choose Total amount or Unit price

The Pricing section on a flat-rate obligation shows two tabs when the line is editable: Total amount and Unit price. Choose the tab that matches the commercial document you are entering from. Use Total amount when the signed schedule gives you the full obligation value and you do not want to divide that value by the invoice count yourself. A $12,000 annual subscription and a $40,000 implementation fee both belong here. DualEntry stores the term total on the obligation header without multiplying it by invoice periods a second time. Use Unit price when the commercial terms are a quantity and a price for each invoice, such as 10 seats at $100 per month. The form keeps Quantity per period, Unit price per period, and SSP per period, and it previews total contract value (TCV) as you type. This is the same meaning the public API uses for quantity and rate. Pick the tab before you activate the contract. You can switch tabs while the obligation is still editable, including on a change order. Switching tabs doesn’t convert the number you typed. Amount and Unit price per period share one field, so recheck the header after you switch. The obligation header and the contract subtotal always add the same amounts the headers show. If one obligation is in Total amount and another is in Unit price, DualEntry still sums those header amounts into one contract total.

Enter a total obligation amount

Use Total amount when you want the header to equal the figure on the commercial contract.
  1. Go to Accounting > Revenue Recognition > Contracts and create a contract, or open a draft.
  2. On the Performance Obligations step, add a flat-rate item. If the billing frequency isn’t right yet, choose Change billing frequency to set it on the Invoicing step.
  3. Under Pricing, choose Total amount.
  4. Enter Amount as the full obligation value you expect to invoice over the term.
  5. Enter SSP as the standalone selling price of the whole obligation, not a per-period price.
  6. Confirm the obligation header equals the amount you typed. DualEntry does not multiply that amount by the invoice count.
  7. Continue through the Invoicing, Recognition, and Preview steps, then save.
Example: A 12-month monthly subscription totals $12,000. Enter Amount $12,000 and an SSP of $12,000 if you sell the subscription at list. The header shows $12,000. DualEntry saves it as quantity 1 at $1,000 per monthly invoice, so each invoice carries that per-period amount rather than a fraction of the term. If the header is larger than the commercial total by a factor of the invoice count, you are on Unit price or you entered a per-period price in Amount. Switch to Unit price and enter quantity and unit price, or reduce Amount to the term total. For mid-life cutover, the amount you enter here should still be the full original TCV. See Migrate Mid-Life Contracts.
Do not enter a term-total quantity and a term-total unit price on Unit price. Quantity 1 at $12,000 across 12 monthly invoices becomes $144,000 TCV.

Enter quantity and unit price per invoice period

Use Unit price when you want to type the seats, licenses, or units that appear on each invoice.
  1. Go to Accounting > Revenue Recognition > Contracts and create a contract, or open a draft.
  2. On the Performance Obligations step, add a flat-rate item. If the billing frequency isn’t right yet, choose Change billing frequency to set it on the Invoicing step.
  3. Under Pricing, choose Unit price.
  4. Enter Quantity per period as the units billed on each invoice.
  5. Enter Unit price per period as the price of one of those units on each invoice.
  6. Enter SSP per period as the standalone price of one unit for one invoice period.
  7. Read the live TCV preview (quantity × unit price × invoice periods) and confirm it matches the signed term total.
  8. Continue through the Invoicing, Recognition, and Preview steps, then save.
Example: 10 seats at $100 per month for 12 months. Enter quantity 10 and unit price $100. The preview shows $12,000 (10 × $100 × 12 periods). Each monthly invoice line shows quantity 10 at $100, and the revenue schedule shows the same quantity on each period. Milestone obligations still use these fields, but DualEntry does not multiply across a recurring invoice count. Quantity 10 at $100 on a milestone obligation totals $1,000, however many milestone invoices you raise. See How Quantity and Rate Work. A change order uses the same labels. When you add seats mid-term, enter the new Quantity per period for the remaining invoice dates rather than a life-to-date total. DualEntry applies the new quantity from the modification effective date forward and leaves earlier invoices unchanged.

Confirm invoices and the contract total

After you save, check three surfaces before you activate the contract so a mistyped mode does not reach the customer. Open the contract preview and confirm each obligation header matches the commercial line: a Total amount line equals the figure you typed, and a Unit price line shows the period breakdown when there is more than one invoice. The contract Subtotal must equal the sum of those headers. The Contract total can differ when you configure tax. Open the invoice preview and confirm each generated invoice line shows the per-period quantity, not quantity divided by the number of invoices. Ten seats on a 12-month monthly contract must appear as 10 on each invoice. If you see a fractional quantity such as 0.83, the obligation counts one TCV period (immediate recognition, for example) but bills on several dates, so DualEntry splits the quantity across the invoices. Check the recognition method and billing frequency, then preview again. Open the revenue schedule preview and confirm the schedule total equals TCV. Quantity on each schedule line should match the quantity on the matching invoice period. Recognition dates can differ from invoice dates, but the schedule must not change TCV. If billing is weekly and recognition is monthly, expect many invoice lines and fewer recognition lines that still add up to the same total. If you create the contract through POST /public/v2/contracts/, send quantity and rate as per-invoice-period values. There is no total-amount field on the API; the Total amount tab is an app entry mode that saves quantity 1 and a per-period rate. After you post, read the contract back and confirm the returned TCV matches the term you intended.

Troubleshooting

Use this table when the contract total, invoice quantity, or schedule total does not match the commercial terms. For allocation of the resulting transaction price, see Allocations and SSP. For billing frequency, see Subscription Billing.
Last modified on November 5, 2026