Multi-Product SaaS P&L

This use case describes how to design a SaaS P&L in Model Reef that supports multiple products or lines of business. The aim is to see both:

  • Product level performance and unit economics.

  • Consolidated SaaS P&L for the whole company.

You will use branches, categories and variables to separate product streams while maintaining a clean group view.

When to use this pattern

Use this pattern when:

  • You sell more than one product or price tier and want separate P&L visibility.

  • You intend to allocate shared costs across products for contribution margin analysis.

  • You need to understand which product lines drive growth, margin and cash.

If you only have one core product, you may still use this structure to prepare for future expansion.

Architecture overview

The multi product P&L structure has three main elements:

  1. Branch structure

    • Branch per product or product family.

    • Optional head office or shared services branch.

  2. Product specific variables

    • Revenue, COGS and product specific costs per branch.

    • Product specific drivers such as customer counts or usage metrics.

  3. Shared costs and allocations

    • Central costs (for example general and administrative, platform engineering).

    • Allocation logic where you want to see product level contribution after shared costs.

Branches roll up into a consolidated group view automatically.

Steps to implement

1

Design the branch and category structure

Create a Model Reef model with branches, for example:

  • Group

    • Product A

    • Product B

    • Product C

    • Shared (optional, for central functions)

Within each branch, use the same category structure for P&L:

  • Revenue

  • COGS

  • Gross profit

  • Opex (sales and marketing, research and development, general and administrative)

  • EBITDA and below

This consistency makes product-to-product comparison straightforward.

2

Create product level revenue and COGS variables

In each product branch:

  • Define Revenue variables such as:

    • Revenue - MRR - Product A

    • Revenue - Add Ons - Product A

  • Link them to product specific drivers:

    • Customer counts for that product

    • ARPA or pricing for that product

    • Conversion or attach rates for add ons

  • Define COGS variables such as:

    • COGS - Hosting - Product A

    • COGS - Payment Fees - Product A

    • COGS - Third Party Licences - Product A

Use the same naming pattern across branches so you can easily see how costs differ by product.

3

Separate shared and product specific costs

Decide which costs are:

  • Directly attributable to a product (for example product specific advertising, dedicated customer success)

  • Shared across products (for example platform engineering, finance, HR)

Implement this by:

  • Placing product specific Opex and Staff variables inside the relevant product branch

  • Placing shared Opex and Staff variables inside the Shared or Group branch

This separation is important when computing contribution margin by product.

4

Add optional cost allocation logic

If you want to see product level results after some or all shared costs are allocated:

  • Decide on allocation keys, for example:

    • Revenue share

    • Gross profit share

    • Active customer share

  • Create drivers in the Data Library for these keys, such as:

    • Driver - Shared Cost Allocation - Revenue Share

  • In each product branch, create allocation variables such as:

    • Allocated Shared Opex - Product A

  • Use formulas that:

    • Take the total shared cost variable

    • Multiply by the allocation key for that product

You can decide whether to leave the original shared cost in the Shared branch for transparency or treat allocations as the only view for decision making.

For more detail, see Build Cross Branch Drivers and Dependencies.

5

Build product level and consolidated P&L views

Use reports and dashboards to provide:

  • Product level P&L:

    • Revenue, COGS, gross margin

    • Product specific Opex

    • Optional allocated shared costs

    • Product contribution margin

  • Consolidated SaaS P&L at Group level:

    • Total revenue and gross profit

    • Total Opex, EBITDA and below

Create custom reports or dashboards grouped by branch to show product comparisons side by side.

6

Integrate with SaaS metrics and valuation

Finally, connect the multi product P&L to:

  • MRR and ARR metrics per product, from your ARR/MRR forecasting structure

  • CAC and LTV analysis by product where acquisition costs and retention differ

  • Valuation models that either:

    • Use consolidated cashflows, or

    • Model product specific cashflows where required

Keep product specific drivers in the Data Library and ensure naming makes it easy to see which product each driver relates to.

Check your work

chevron-rightChecklisthashtag
  • Product branches contain only variables relevant to that product.

  • Shared costs are clearly identified and, if allocated, allocation logic is documented.

  • Product level and group level P and L views reconcile to each other.

  • Product comparisons help answer questions about growth, margin and investment priorities.

Troubleshooting

chevron-rightBranches become clutteredhashtag

Introduce a consistent naming and subcategory pattern, and archive or merge rarely used variables.

chevron-rightAllocations make product results hard to interprethashtag

Provide both pre-allocation and post-allocation views so stakeholders can see raw contribution and fully loaded results.

chevron-rightDifficult to align SaaS metrics to product P&Lhashtag

Make sure customer, ARR and MRR drivers are segmented by product in the same way as revenue variables.

Last updated