# Build a Financial Statements Reporting Suite

This guide explains how to build a financial statements reporting suite in Model Reef using the built in system reports and custom specification reports. The aim is to produce a consistent set of views for internal and external reporting without rewriting formulas in spreadsheets.

## Before you start

You should have:

* A model with complete three statement logic.
* Variables correctly mapped to Revenue, COGS, Opex, Staff, Assets, Liabilities, Equity and Dividends.
* Periodicity and fiscal year settings aligned with your reporting needs.

If your model is still being designed, see:

* **Model Structure Principles**
* **Financial Statement Rules**

## What you will build

* A suite of standard financial statement views:
  * P\&L.
  * Balance Sheet.
  * Cashflow Statement.
  * Cash Waterfall.
* Custom reports or views that slice or group these statements for different audiences.

{% stepper %}
{% step %}

### Use system reports as the foundation

Start with the built in system reports, which automatically assemble:

* P\&L from variable types and categories.
* Balance Sheet from assets, liabilities, equity and timing differences.
* Cashflow Statement from cash timing rules.
* Cash Waterfall from a combination of accrual and cash flows.

Check that these system views:

* Balance correctly.
* Use the categories and naming conventions you expect.
* Reflect imported historicals and forecast logic as intended.
  {% endstep %}

{% step %}

### Define your reporting audiences and needs

Different audiences require different cuts of the statements, for example:

* Management:
  * Focus on operating performance and cash.
* Board:
  * Focus on performance vs plan, cash, funding and risk.
* Lenders:
  * Focus on leverage, coverage and covenant metrics.
* Investors:
  * Focus on growth, margins, cash and valuation context.

List the views required for each audience so you can design custom reports appropriately.
{% endstep %}

{% step %}

### Create custom specification reports where needed

Where system reports are too generic, use custom report configurations to:

* Filter by branch, division or project.
* Group categories into custom headings.
* Include or exclude specific lines.
* Combine financial and operational metrics.

Examples:

* A divisional P\&L showing only selected branches.
* A project level cashflow statement.
* A reporting pack for a lender that emphasises operating cashflow and debt movements.

These custom reports still rely on the same underlying variables and engine, but present the data differently.
{% endstep %}

{% step %}

### Set default periods and formats for reports

For each report choose the defaults that suit the audience and purpose:

* Period aggregation examples:
  * Monthly for internal finance.
  * Quarterly or yearly for board and investors.
* Currency units examples:
  * Whole currency.
  * Thousands.
  * Millions.
* Default periods to show:
  * For high-level packs, show the last and next two years, or another range that matches stakeholder expectations.

This ensures that reports are legible and aligned with the expectations of each audience.
{% endstep %}

{% step %}

### Link reports to dashboards and packs

Use reports as the authoritative source from which you:

* Build charts on dashboards.
* Extract numbers for board and investor packs.
* Provide supporting detail for management reviews.

When possible, keep the mapping simple so that:

* Each chart or table can be traced back to a specific report and model.
* Changes in the model automatically propagate through the reporting suite without manual adjustments.
  {% endstep %}

{% step %}

### Maintain consistency across models

If you operate multiple models, for example for different entities or scenarios, aim for a consistent reporting structure by:

* Using the same category hierarchy.
* Applying similar custom reports across models.
* Reusing report templates where the structure allows.

This makes it easier to compare outputs and maintain a coherent reporting story at group level.
{% endstep %}
{% endstepper %}

## Check your work

* System reports are balanced and consistent with your expectations.
* Custom reports provide the necessary slices without contradicting system views.
* Reporting outputs align with the needs of management, board, lenders and investors.
* Updating the model automatically updates all reports that depend on it.

## Troubleshooting

<details>

<summary>Reports show unexpected or missing lines</summary>

Check variable type and category mappings, and update the mapping where items are misclassified.

</details>

<details>

<summary>Too many custom views become hard to manage</summary>

Rationalise the suite by focusing on a small number of core standard reports and a few audience specific variations.

</details>

<details>

<summary>Difficult to reconcile external reports with Model Reef</summary>

Ensure that scope, period and accounting policies match, and adjust where necessary to align definitions.

</details>

## Related guides

* [Multi-Product Financial Model](/use-cases/financial-services-lending-and-fintech/multi-product-financial-model.md)
* [Financial Outputs & Valuation](/help/financial-outputs-and-valuation.md)
* [Current Liabilities](/help/financial-outputs-and-valuation/current-liabilities.md)
* [Editing Units](/syntax/how-input-fields-work/editing-units.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.modelreef.io/how-tos/dashboards-and-reporting/build-a-financial-statements-reporting-suite.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
