← All insights
Model health

Why your Pigment model is slow, and how to fix it

Dhiraj Khivasara23 October 20266 min read

A model that took seconds in the first month can take minutes a year later. The cause is rarely one bad formula. It is usually a handful of design choices that made sense at the time and now multiply each other. Here is where I look first, and in what order.

1. Metrics with dimensions they do not need

Every dimension on a metric multiplies its size. A rate that only varies by department does not need month, version and scenario as well. Strip each metric back to the dimensions its values really vary by, and bring other dimensions in only where a formula needs them.

2. Dense results from sparse data

Pigment is fast when it only calculates cells that hold data. Formulas that turn blanks into zeros, or fill every combination with a default, make a sparse metric dense. Keep blanks blank unless a zero carries meaning, and filter early rather than late.

3. Long chains of intermediate metrics

Each step in a chain is recalculated when its inputs change. Long chains of helper metrics, often left over from earlier versions of the model, add recalculation time without adding value. Collapse steps that nobody reports on, and remove blocks nothing uses.

4. Iterative logic where a simpler pattern works

Roll-forwards that reference the previous period are powerful but expensive across large dimensions. Check that iterative formulas run only over the dimensions that need them, and that the same calculation is not repeated in several places.

5. Access rules and boards

Complex access-rights formulas recalculate often. Boards that load many large views at once feel slow even when the model is fine. Simplify access logic where possible, and design boards around the decision each role is making.

A practical order of work

  1. Use Pigment's performance tools to find the few blocks that take most of the time.
  2. Check their dimensions and sparsity first; these fixes are usually the biggest.
  3. Remove unused blocks and collapse unnecessary chains.
  4. Re-test against current outputs so nothing changes except speed.

This is the core of a model health check: a fixed-scope review that ranks findings by impact and effort. You can read more under services.

Working on something similar? Tell me what you plan today and where it hurts. I'll reply within one working day.

Let’s talk   See the model health check