> 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/use-cases/hospitality-restaurants-cafes-bars/venue-level-cost-and-margin-modelling.md).

# Venue-Level Cost & Margin Modelling

This use case explains how to build a venue-level P\&L for restaurants, cafés and bars in Model Reef.

You will use:

* Branches to represent each venue.
* Driver-based revenue for food, beverage, delivery and functions.
* COGS, staff and operating costs per venue.
* Consolidated views across the group.

The goal is to understand venue profitability and margin structure without relying on fragile spreadsheets.

## When to use this pattern

Use this pattern when:

* You operate one or more venues and want clear P\&L visibility per site.
* You want to model covers, average spend and mix rather than just top line percentages.
* You need to compare venues and test changes in labour, pricing or menu mix.

If you manage many venues across entities, combine this with the **Multi Entity Group Model** pattern.

## Architecture overview

The structure has three layers:

* Branch structure
  * One branch per venue.
  * Optional central branch for head office and shared costs.
* Venue variables
  * Revenue variables per stream (food, beverage, delivery, functions).
  * COGS per category.
  * Staff and operating costs per venue.
* Outputs
  * Venue-level P\&L.
  * Consolidated group P\&L, Balance Sheet, Cashflow and Cash Waterfall.
  * Margin dashboards focused on gross margin and prime cost.

{% stepper %}
{% step %}

### Set up the venue branches

Create a model with branches such as:

* `Group` (root).
  * `Venue - City Centre`.
  * `Venue - Suburb A`.
  * `Venue - Suburb B`.
  * `Head Office` (optional).

Guidelines:

* Name branches in the same way the business refers to its venues.
* Use one branch per trading location, not per cost centre, for clarity.
* Keep `Head Office` or `Central` for non venue specific costs.

Branches roll up automatically to `Group`, providing consolidated numbers.
{% endstep %}

{% step %}

### Build venue revenue drivers

Hospitality revenue is usually driven by:

* Covers (guests served).
* Average spend per cover.
* Service mix (lunch, dinner, drinks only).
* Seasonal patterns and day-of-week effects.

In the Data Library, create drivers such as:

* `Covers - Venue City Centre`.
* `Average Spend per Cover - Venue City Centre`.
* `Covers - Lunch Share`.
* `Covers - Dinner Share`.

In each venue branch, define Revenue variables, for example:

* `Revenue - Food - Venue City Centre`.
* `Revenue - Beverage - Venue City Centre`.
* `Revenue - Delivery - Venue City Centre`.

Use formulas like:

* `Revenue - Food = Covers × Average Food Spend per Cover`.
* `Revenue - Beverage = Covers × Average Beverage Spend per Cover`.

You can introduce seasonality by applying monthly or weekly multipliers to covers or spend drivers.
{% endstep %}

{% step %}

### Model food and beverage COGS

For each venue, create COGS variables that reflect:

* Food ingredients.
* Beverage costs (beer, wine, spirits, soft drinks).
* Packaging and disposables for delivery or takeaway.

Common patterns:

* COGS as a percentage of revenue per category:
  * `COGS - Food = Revenue - Food × Food COGS Percentage`.
  * `COGS - Beverage = Revenue - Beverage × Beverage COGS Percentage`.
* Or more detailed unit cost modelling if you have robust data.

Make sure COGS variables are typed as **COGS** so they affect gross margin correctly.

For menu level costing, see **Menu Pricing & Recipe Costing**.
{% endstep %}

{% step %}

### Add staff costs per venue

Staff costs are usually a major driver of venue profitability. In each venue branch, create Staff variables for roles such as:

* Front of house (servers, hosts).
* Back of house (chefs, kitchen hands).
* Bar staff.
* Venue managers.

Use drivers and Staff variables to represent:

* Hours per week or per service.
* Hourly rates or salaries.
* Oncosts such as superannuation or payroll tax.

You can link hours to revenue or covers where appropriate, for example:

* `Casual Hours = Base Hours plus Hours per Cover × Covers`.

This ensures labour moves with volumes in your scenarios.

For more detail, see **Retail Workforce and Roster Forecasting** which applies similarly to hospitality venues.
{% endstep %}

{% step %}

### Capture venue operating costs

Create Opex variables per venue for items such as:

* Rent and outgoings.
* Utilities.
* Cleaning and linen.
* Licences and compliance fees.
* Local marketing and promotion.
* Repairs and maintenance.

Implement timing and delays to match how invoices and payments occur, for example:

* Monthly rent with no delay.
* Utilities billed in arrears with a one-month delay.

Place group-level or head office costs in the `Head Office` or `Group` branch, not inside individual venues.
{% endstep %}

{% step %}

### Build venue-level margin views

With revenue, COGS, staff and Opex per venue in place, use reports and dashboards to show:

* Revenue per venue over time.
* Gross profit and gross margin per venue.
* Staff cost as a percentage of revenue.
* Prime cost (Food COGS plus Labour) as a percentage of revenue.
* EBITDA per venue.

You can build custom reports grouped by branch to compare venues side by side and identify:

* Underperforming venues.
* Venues with good revenue but poor margin.
* Venues with healthy margin but low volumes.
  {% endstep %}

{% step %}

### Use scenarios for menu, pricing and labour changes

Because scenarios are independent models, you can clone the venue model to test changes such as:

* New menu pricing.
* Adjusted portion sizes or recipes.
* Different roster patterns.
* Venue specific promotions or discounting.

Compare scenario models using:

* P\&L and Cashflow at venue and group level.
* Prime cost and gross margin trends.
* Cash Waterfall impacts.

You can then decide which changes to implement operationally.
{% endstep %}
{% endstepper %}

{% hint style="info" %}

### Check your work

* Revenue drivers reflect how the venues actually operate (covers, average spend, mix).
* COGS percentages or unit costs are realistic for the cuisine and beverage mix.
* Staff roles and hours match current rosters or planned changes.
* Venue P\&Ls roll up cleanly to the consolidated group view.
  {% endhint %}

## Troubleshooting

<details>

<summary>Venue P&#x26;Ls do not reconcile to accounting reports</summary>

Confirm that any imported revenue and COGS lines are properly allocated to the correct venue branches, and that mapping from the ledger or source files is accurate.

</details>

<details>

<summary>Prime cost looks unrealistically low or high</summary>

Revisit both COGS percentages and staff hours or rates. Restaurant margins are very sensitive to these assumptions.

</details>

<details>

<summary>Venue comparison is noisy</summary>

Use averages per cover, per seat or per square metre as complementary KPIs to simple totals.

</details>

## Related guides

* [Build a Staffing Cost Model](/how-tos/operations-and-unit-economics/build-a-staffing-cost-model.md)
* [Build a KPI Dashboard](/how-tos/dashboards-and-reporting/build-a-kpi-dashboard.md)
* [Model Level Permissions](/help/permissions-and-collaboration/model-level-permissions.md)
* [Economic Driver Fields](/syntax/drivers-syntax/economic-driver-fields.md)
