Skip to main content
Skip table of contents

How to Structure a Model for Clarity and Scalability

This guide shows you how to structure a Valsight model so that it stays understandable, scalable, and easy to maintain as it grows. By the end, your model will follow a clear flow from raw data to high-level KPIs, using submodels to separate concerns.

Core Principles

  • Define your target outputs first
    Identify a small set of key metrics and KPIs you ultimately want to analyze, such as 'Revenue', 'EBIT', 'Headcount', 'Capacity Utilization'. These outputs define the “head” of your model.

  • Work backwards to inputs and drivers
    For each KPI, determine which intermediate calculations are required and which input data or assumptions are needed to calculate them. This backward approach prevents unnecessary logic and unused data.

  • Keep each node focused and interpretable
    Design nodes so that each one answers a single, clear question. For example, calculate 'Unit Price' and 'Units Sold' separately, then derive 'Revenue' from them. Avoid combining multiple steps into one complex node.

  • Define and apply dimensions consistently
    Decide early which dimensions are global across the model (for example, "Time", "Region", "Product", "Business Unit"). Apply them consistently and avoid adding niche dimensions that only apply to isolated nodes.

  • Separate layers using submodels
    Organize the model into submodels that reflect a logical flow from data to KPIs. Use numeric prefixes and descriptive names to make the order and purpose explicit.

Recommended Submodel Structure

Valsight_Fish.PNG

Name the different models with numeric prefixes and clear purposes.

  1. 500_Data (Tail)
    Place raw inputs and source mappings into a submodel such as 500_Data. Nodes here should mainly connect to data sources or perform basic cleaning and mapping.

  2. 400_Drivers
    Maintain common assumptions like growth rates, FX rates, inflation, or standard cost rates in a 400_Drivers submodel so they can be reused consistently across the model.

  3. 3XX_Operational Detail
    Create separate 3XX_ submodels for major operational areas, such as sales volumes, pricing, production capacity, costs, or headcount. These submodels calculate operational metrics that feed financial results.

  4. 200_Financial Calculations
    Use 2XX_ submodels for financial statements and calculations, such as the P&L, cash flow, or balance sheet. These submodels aggregate operational outputs into financial results.

  5. 000_KPIs (Head)
    Place high-level KPIs and ratios in a 000_KPIs submodel. Reduce dimensions where appropriate so these nodes focus on management-relevant views, such as Time and Region only.


Notes

  • Respect the flow direction
    Ensure dependencies only point forward. Nodes in earlier submodels (for example,

    'Sales' or'P&L') should be available to later ones (like 'KPIs'), not the other way around.

  • Use submodels for access control
    If different users should only see parts of the model, restrict access at the submodel level. This allows, for example, OPEX owners to work in cost submodels without exposure to the full model.


Result

Your model is now structured in clear layers—from data input to detailed calculations, financial consolidation, and KPIs. This structure improves readability, reduces complexity, and makes collaboration and scaling significantly easier.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.