> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.tabs.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.tabs.com/_mcp/server.

# Revenue Recognition & Schedules

Revenue recognition in Tabs is driven by **performance obligations** — distinct promises to deliver products or services — each of which generates a **revenue schedule** showing how much revenue is recognized in each period.

## Billing vs revenue

Tabs intentionally separates how you bill from how you recognize revenue:

|                   | Billing                              | Revenue                               |
| ----------------- | ------------------------------------ | ------------------------------------- |
| Driven by         | Billing terms                        | Performance obligations               |
| Output            | Invoices                             | Revenue schedules                     |
| Question answered | What does the customer owe and when? | What revenue have we earned and when? |

Within each contract, **billing term groups** tie the two sides together. A group can contain one or more billing terms and one or more performance obligations in a many-to-many relationship — so billing and recognition don't have to follow the same cadence.

**Example:** Bill API usage monthly in arrears, but recognize platform revenue ratably over the 12-month service period.

## Performance obligations

A **performance obligation** is a distinct promise to deliver a product or service. It defines:

* What revenue gets recognized (distinct or non distinct)
* When revenue gets recognized (point in time or over time)
* How revenue gets recognized (straightline, as consumed or as billed)

Performance obligations are created automatically when billing terms are generated on a contract. Each obligation generates a revenue schedule that spreads its allocated amount across the service period.

You can view and manage performance obligations on a contract via the [Performance Obligations API](api:GET/v3/contracts/\{id}/performance-obligations).

## Revenue schedules

The **Revenue Schedule** on each product's detail page shows how revenue will be recognized over time:

* **Darker red bars** — months where revenue has already been recognized
* **Lighter red bars** — upcoming service periods

Below the chart you'll see the service period, the amount already recognized, and the remaining amount to be recognized.

Compare the revenue schedule chart with the **Billing Schedule** on the same product to understand whether your commercial obligations are accrued or deferred relative to billing.

## Revenue dates

Each product's revenue schedule is driven by its service period:

* **Revenue start date** — the first day service is delivered (not necessarily the invoice date)
* **Revenue end date** — the last day of service; revenue is spread evenly between start and end

Configure these on the billing term when setting up a product on a contract. See [Revenue Dates](/revenue-dates) for configuration details.

## Revenue categories

**Revenue categories** are logical groupings for the products or services you offer. They exist for reporting and dashboards — they do not affect billing or recognition calculations.

Assign a revenue category to a product on a contract via **Edit revenue** on the product detail page. Categories help organize billing terms into higher-level buckets for revenue reporting.

Plan your category structure before creating new categories. Categories cannot be edited or removed once created — create a new category with the correct name if you need to change one.

Manage categories via the [Categories API](api:POST/v3/categories).

## Dynamic schedule updates

Revenue schedules are not static. Tabs recalculates schedules when contract terms change:

* **Amendments and renewals** — updated service periods adjust future recognition
* **Seat-based true-ups** — mid-cycle seat changes update invoices and revenue schedules together
* **Terminations** — ending a billing term or commitment shortens the service window and adjusts recognized revenue accordingly

For termination workflows and their revenue impact, see [Amendments & Lifecycle](/contract-amendments).

## Related resources

* [Billing Terms & Schedules](/billing-terms) — billing term groups and the billing side of contracts
* [Revenue Dates](/revenue-dates) — configure service period start and end
* [Standalone Selling Price (SSP)](/revenue-ssp) — ASC 606 allocation
* [Close Management](/close-management) — month-end journal entries
* [Tabs data model](/data-model) — performance obligations and revenue schedules in the entity hierarchy