> For the complete documentation index, see [llms.txt](https://help.modelreef.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.modelreef.io/how-tos/operations-and-unit-economics/build-a-unit-economics-model.md).

# Build a Unit Economics Model

This guide explains how to build a unit economics model inside Model Reef using drivers and variables that link revenue, cost of goods, operating costs and acquisition costs to units such as customers, orders or active users.

## Before you start

You should have:

* A model that at least roughly represents your revenue and direct costs.
* A clear idea of your economic unit, for example:
  * Customer.
  * Subscription.
  * Order.
  * Project.
* An understanding of drivers and variables in Model Reef.

If needed, review:

* **Drivers and Variables Overview**
* **Build a Pricing Model**

## What you will build

* Drivers representing units, price per unit and cost per unit.
* Variables that translate these into revenue, COGS and acquisition costs.
* A view of contribution margin per unit and payback on acquisition costs.
* A structure for comparing unit economics across products or segments.

{% stepper %}
{% step %}

### Define your core unit and horizon

Start by defining:

* The economic unit you care about:
  * For example a customer contract, an order or a subscription.
* The horizon:
  * Single period unit economics (for example per month).
  * Lifetime unit economics (for example over the expected life of a customer).

This determines which drivers and variables you need.
{% endstep %}

{% step %}

### Create unit and pricing drivers

* In the Data Library, create **Operational drivers** for units, for example:
  * `Units - Active Customers`
  * `Units - Orders`
* Create **Economic drivers** for pricing, for example:
  * `Price per Unit - Standard`
  * `Price per Unit - Premium`
* Configure these drivers over time:
  * Growth in units.
  * Changes in pricing as strategy evolves.

These drivers represent the basic demand and price story.
{% endstep %}

{% step %}

### Build revenue variables from unit drivers

* Create variables such as:
  * `Revenue - Standard Units`
  * `Revenue - Premium Units`
* Use formulas approximating:

{% code title="Formula (conceptual)" %}

```
```

{% endcode %}

* If relevant, add seasonality or contract term effects via timing settings.

These variables will feed straight into P\&L and Cash Waterfall revenue.
{% endstep %}

{% step %}

### Create cost per unit drivers and COGS variables

* In the Data Library, create **Economic drivers** for cost per unit, for example:
  * `COGS per Unit - Standard`
  * `COGS per Unit - Premium`
* Build **COGS variables** that multiply units by cost per unit drivers:

{% code title="Formula (conceptual)" %}

```
```

{% endcode %}

* Consider timing delays if costs are paid before or after revenue (this creates working capital impacts).

This creates a direct link between unit volumes and direct cost of goods.
{% endstep %}

{% step %}

### Model acquisition and servicing costs

To capture full unit economics, include:

* Customer acquisition costs (CAC).
* Ongoing servicing or support costs.

You can model these as **Opex variables** driven by units or revenue, for example:

* `CAC = New customers × CAC per customer`.
* `Support Opex = Active customers × Support cost per customer per period`.

Use drivers in the Data Library for CAC per customer and support cost per customer.
{% endstep %}

{% step %}

### Derive unit economics metrics

Build derived metrics using custom formulas and charts such as:

* Contribution margin per unit\
  (Price per unit minus cost per unit minus variable servicing cost per unit).
* Contribution margin percentage\
  Contribution per unit divided by Price per unit.
* CAC payback period\
  CAC per customer divided by Contribution per customer per period.
* Lifetime value (approximate)\
  Contribution per period × expected life in periods.

You can implement these as chart formulas or external calculations using exported series.
{% endstep %}

{% step %}

### Compare unit economics across segments or products

* Create separate sets of drivers and variables for different segments or products, for example:
  * `Units - Self Serve`, `Units - Enterprise`
  * `Price per Unit - Self Serve`, `Price per Unit - Enterprise`
* Build separate revenue, COGS and CAC variables per segment.
* Use charts or reports to compare:
  * Contribution margin per segment.
  * CAC payback per segment.
  * Aggregate impact of shifting mix between segments.

This shows where you should invest versus where you should limit growth.
{% endstep %}
{% endstepper %}

## Check your work

* Units, pricing, costs and acquisition drivers all connect logically.
* Revenue and COGS variables correctly reflect unit times price and unit times cost per unit.
* CAC and servicing costs scale reasonably with unit counts.
* Derived metrics show realistic contribution and payback behaviour.

## Troubleshooting

<details>

<summary>Unit economics look too good</summary>

Check that all relevant costs are included, including acquisition, support and overhead allocations where appropriate.

</details>

<details>

<summary>Payback does not stabilise</summary>

For subscriptions or long lived units, ensure you model churn or finite contract lengths, not infinite lifetimes.

</details>

<details>

<summary>Hard to reconcile with total P&#x26;L</summary>

Make sure that your unit driven variables represent the bulk of revenue and direct cost, and that manual overrides are minimal.

</details>

## Related guides

* [Franchisee Unit P\&L Model](/use-cases/franchise-networks-franchisors-and-franchisees/franchisee-unit-p-and-l-model.md)
* [Variable Auto Creation](/help/xero-integration/variable-auto-creation.md)
* [Variable Overview](/help/drivers-variables-and-timing/variable-overview.md)
* [Autocomplete Behaviour](/syntax/formula-syntax/autocomplete-behaviour.md)
