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:
Branch structure
Branch per product or product family.
Optional head office or shared services branch.
Product specific variables
Revenue, COGS and product specific costs per branch.
Product specific drivers such as customer counts or usage metrics.
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
Design the branch and category structure
Create a Model Reef model with branches, for example:
GroupProduct AProduct BProduct CShared(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.
Create product level revenue and COGS variables
In each product branch:
Define Revenue variables such as:
Revenue - MRR - Product ARevenue - 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 ACOGS - Payment Fees - Product ACOGS - Third Party Licences - Product A
Use the same naming pattern across branches so you can easily see how costs differ by product.
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
SharedorGroupbranch
This separation is important when computing contribution margin by product.
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.
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
Grouplevel: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.
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
Troubleshooting
Related guides
Last updated