> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dualentry.com/llms.txt
> Use this file to discover all available pages before exploring further.

# How to Enter Obligation Pricing

> Price a performance obligation as a total amount or as quantity and unit price per invoice period, then confirm the contract total.

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](https://docs.dualentry.com/accountants/revenue-recognition/quantity-and-rate/how-quantity-and-rate-work.md).

## 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](https://docs.dualentry.com/accountants/revenue-recognition/usage-and-tiered-pricing/usage-tiered-pricing.md). 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](https://docs.dualentry.com/accountants/revenue-recognition/migrate-mid-life-contracts.md).

## 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](https://docs.dualentry.com/accountants/revenue-recognition/change-orders-terminations-renewals.md). 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](https://docs.dualentry.com/accountants/revenue-recognition/migrate-mid-life-contracts.md).

> [!WARNING]
>
> 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](https://docs.dualentry.com/accountants/revenue-recognition/quantity-and-rate/how-quantity-and-rate-work.md#what-each-recognition-method-counts-as-an-invoice-period).

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.

| Symptom | What to check |
| - | - |
| Contract total is the commercial amount times the invoice count | You entered a term total on **Unit price**. Switch to **Total amount**, or enter the per-period unit price. |
| Header does not equal the amount you typed | You are on **Unit price**, where the header is quantity × unit price × periods. Choose **Total amount** to show the typed amount. |
| Each invoice shows a fractional quantity | The obligation counts one TCV period, such as immediate recognition, but bills on several dates. Check the recognition method and billing frequency. |
| Milestone total multiplied across 12 months | The recognition method is still straight-line. Set the method to milestone and recheck the preview. |
| Usage obligation has no **Total amount** tab | Usage pricing uses the usage controls, not these tabs. See [Usage Pricing: Flat and Tiered Models](https://docs.dualentry.com/accountants/revenue-recognition/usage-and-tiered-pricing/usage-tiered-pricing.md). |
| API TCV is higher than the UI total you expected | The request sent a term-total `quantity` or `rate`. Send per-invoice-period values. |

For allocation of the resulting transaction price, see [Allocations and SSP](https://docs.dualentry.com/accountants/revenue-recognition/allocations-and-ssp.md). For billing frequency, see [Subscription Billing](https://docs.dualentry.com/accountants/platform-configuration/subscription-billing.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.