Overview
Financial models are typically structured around the three main financial statements—profit and loss (income statement), balance sheet, and cash flow statement—or just one of their segments.
For example, let’s say we are building a P&L model in Farseer. We use one variable, GL (General Ledger), which is the central accounting record that summarizes all financial transactions. The P&L dimension of the GL variable contains:
Sales Revenue
Other Revenue
COGS
OPEX
D&A
Other Expenses
Financial Expenses
Financial Income
Tax
Financal model in Farseer
What are submodels?
When building a complex model, you might need submodels. These are smaller models that calculate specific parts and then feed their results into the main model. They can include different calculations and often use dimensions that don’t fully match the main model.
Example – Sales Revenue submodel
Let’s assume that Sales Revenue consists of two streams:
Revenue from the sale of goods
Revenue from services
Revenue from the sale of goods is calculated based on product sales per customer, while revenue from services is estimated as a total value each year.
For the Revenue from the sale of goods submodel, we add a new variable:
REVENUE FROM SALE OF GOODS– with tables:PRODUCT,CUSTOMER
In this case, Sales Revenue is just one line in the P&L statement, but the full calculation is contained in the REVENUE FROM SALE OF GOODS variable, broken down by products and customers.
To bring these values into the main model (GL → P&L), we create a connection between the REVENUE FROM SALE OF GOODS and GL (General Ledger) variables like this:
GL→ (Formula)REVENUE FROM SALE OF GOODSDimension:
P&L→Sales Revenue
This way, wherever the GL variable is used with the Sales Revenue dimension, the data will be populated from the submodel.
Since the GL variable doesn’t include the CUSTOMER or PRODUCT tables, we cannot slice by those dimensions—only by P&L.
Of course, additional submodels can be created for other revenue streams (like services) or for different P&L positions.

