> 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.

# Tabs data model

Tabs organizes your revenue operations into entities that cover every stage from the moment a customer signs a contract to when a payment clears your bank.
By standardizing these entities, Tabs makes it easier to automate invoicing, track payments, and maintain a single source of truth for your financial data.
Understanding how these entities relate to each other helps you get the most out of Tabs.

---

## The contract lifecycle

Every contract in Tabs follows the same lifecycle:

1. A **Customer** has **Contracts**
2. A **Contract** contains **Billing Term Groups** that tie together **Billing Terms** and **Performance Obligations**
3. **Billing Terms** generate **Invoices**
4. **Performance Obligations** generate **Revenue Schedules**
5. **Invoices** are settled by **Payments**

The other entities exist to support this lifecycle: **Products** define what you sell and prefill **Billing Terms** and **Performance Obligations**, **Items** link your products to your accounting system, **Revenue Categories** group them for reporting, and **Usage Events** feed consumption data into invoicing for usage-based pricing.

---

## How deals flow through Tabs

To understand the Tabs entities, consider this example scenario. Say a customer, Balloon Corp, signs an annual contract for your API product, billed monthly based on usage.

1. In the Tabs system, Balloon Corp is created as a **Customer** and their agreement is uploaded as a **Contract**.
2. Tabs reads the contract and creates a Billing Term Group for the API product. Within the group, a Billing Term is linked to your "API access" **Product**, which maps to the "API Calls" **Item** in your ERP, and the term is tagged under the "Usage-Based" **Revenue Category**. A Performance Obligation in the same group defines how that revenue is recognized.
3. Throughout the month, every API call Balloon Corp makes is recorded as a **Usage Event**.
4. On the billing date, Tabs pulls the Usage Events, calculates the total, and generates an **Invoice** with a single line item: 2.4M API calls at \$0.50 per 1,000 = \$1,200.
5. Balloon Corp pays the Invoice.

The payment is imported from your bank feed, applied to the open Invoice, and the Invoice balance reduces accordingly.

---

![Deal flow lifecycle](https://fdr-prod-docs-files-public.s3.us-east-1.amazonaws.com/tabs.docs.buildwithfern.com/95e1b34c41330cdba7fd18516135a881662f7cc92ae137a54e7be2402a9f241d/docs/assets/get-started/deal-flow-lifecycle.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA6KXJSKKNFOCF7G4B%2F20260806%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260806T191443Z&X-Amz-Expires=604800&X-Amz-Signature=6a30ce9ed73de0555b5e72e34135d916f7849361f04bde4fa47f2cf56e0b2a42&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)

---

## Entity definitions

**Customer**: The businesses you're billing. Customers hold contact information and custom fields like account executive and CSM assignments. Every Contract in Tabs belongs to exactly one Customer.

**Contract**: The binding agreement with a Customer. Contracts define the start and end dates, payment terms, cancellation policies, and the Billing Term Groups that flow from the deal. If you upload a Contract without assigning a Customer, Tabs will assign the most likely Customer.

**Billing Term Group**: The unit that ties billing and revenue recognition together within a Contract. Each Billing Term Group contains one or more Billing Terms and one or more Performance Obligations, supporting a many-to-many relationship between how you bill and how you recognize revenue.

**Billing Term**: The billing side of a Contract. A Billing Term defines what gets billed, when, and for how much. Each Billing Term is linked to an ERP Item and is the source of the line items that appear on Invoices.

**Performance Obligation**: The revenue-recognition side of a Contract. A Performance Obligation is a distinct promise to deliver a product or service, defining what revenue gets recognized, when, and for how much.

**Invoice**: An itemized request for payment, generated from one or more Billing Terms. Invoices have a set of computed dates (issue date, due date, period) that you can adjust. They also calculate applicable sales tax automatically.

**Payment**: A recorded transaction that settles an outstanding Invoice. Payments are typically imported from your commercial bank and applied to open Invoices.

**Product**: A reusable entry in your product catalog representing something you sell. A Product carries an internal name, a customer-facing display name, a description, and a status, and maps to an ERP Item and an ERP class. When you link a Product to a Billing Term, Tabs populates that term's name, description, Item, and class from the Product—so you define each offering once and reuse it across Contracts.

**Item**: A product or service in your ERP, mapped to an accounting code. When an Item is sold, its associated account is credited. When revenue is recognized at month-end close, that account is debited. Items are the bridge between Tabs and your accounting system.

**Revenue Category**: A logical grouping for the products or services you offer. Revenue Categories don't affect billing. They exist to make dashboards and reports easier to read by organizing your Billing Terms into higher-level buckets.

**Usage Event**: A record of how a Customer consumed a usage-based product or service. Usage Events feed into the invoicing process to calculate line item quantities and amounts for metered or consumption-based pricing models.