Build a Cost of Goods Model
This guide explains how to build a structured Cost of Goods Sold (COGS) model in Model Reef using cost per unit drivers, COGS variables and timing rules. The objective is to link volumes to direct costs and understand gross margin clearly.
Model Reef does not implement formal inventory accounting, but it supports COGS timing and payables that behave similarly to many practical inventory flows.
Before you start
You should have:
A model with unit or revenue drivers.
At least an initial idea of direct cost components, for example:
Materials.
Direct labour.
Third party services.
An understanding of COGS variables and how they affect P&L and Cashflow.
If needed, review:
Build a Unit Economics Model
Build a Pricing Model
What you will build
Drivers for cost per unit by product or service line.
COGS variables that scale with volume.
Timing rules for when costs are paid.
A clear gross margin picture in P&L and Cash Waterfall.
Step 1: Break down your cost structure
List direct cost components, for example:
Product companies:
Raw materials.
Manufacturing labour.
Packaging and freight.
Service companies:
Delivery labour.
Third party platform fees.
Royalties.
Decide which costs are materially linked to units or revenue and belong in COGS rather than Opex.
Step 2: Create cost per unit drivers
In the Data Library:
For each important cost component, create Economic drivers, for example:
COGS per Unit - Materials
COGS per Unit - Packaging
COGS per Unit - Delivery Labour
Set initial cost levels and any expected inflation or efficiency gains.
If costs differ by product or segment, create separate drivers for each.
These drivers will be multiplied by units to generate cost forecasts.
Step 3: Build COGS variables by product or segment
For each product, service or segment:
Create one or more COGS variables, for example:
COGS - Product A - Materials
COGS - Product A - Packaging
Link them to units, for example:
Choose variable frequencies and timing consistent with how costs arise.
If you prefer a simpler structure, you can aggregate all direct costs into a single COGS variable per product.
These variables reduce gross profit and create payables when delays are applied.
Step 4: Configure payment timing
To approximate real world payment behaviour:
For each COGS variable, set a delay representing payment terms, for example:
30 days for suppliers.
45 days for manufacturers.
This will:
Recognise cost in P&L when goods or services are consumed.
Create Accounts Payable until suppliers are paid.
Show cash outflows in the Cashflow Statement and Cash Waterfall when cash is actually paid.
This timing is a key component of working capital.
Step 5: Review gross margin and COGS mix
Open the P&L and review:
Revenue by product or segment.
COGS by product or segment.
Gross Profit and Gross Margin percentage.
Check that:
Margins match expectations.
Changes over time reflect planned cost efficiencies or mix shifts.
You can also create custom charts to show:
COGS breakdown by component.
COGS as a percentage of revenue.
Margin by product line.
Step 6: Stress test cost assumptions with scenarios
Because scenarios are separate models, create variant models for COGS stress testing, for example:
Model - COGS - Base
Model - COGS - Higher Input Costs
Model - COGS - Improved Efficiency
In each:
Adjust cost per unit drivers.
Change payment terms to see working capital effects.
Evaluate impact on margins, cash and valuation.
This helps you understand exposure to supplier price changes or cost saving initiatives.
Check your work
Cost drivers per unit are realistic and well documented.
COGS variables correctly multiply units by cost drivers.
Payment terms reflect supplier arrangements.
Gross margin and working capital behave as expected under different scenarios.
Troubleshooting
Related guides
Last updated