Model Citizen
Adam YoungJul 22, 2026
Star Schema6 min read · Blog

Some Numbers Are Pizza. Some Are Lasagna.

1 pizza + 1 pizza = 2 pizzas. 1 lasagna + 1 lasagna = 1 bigger lasagna. Some numbers add; some don't — and the SUM button in every BI tool will add them anyway.

1 pizza + 1 pizza = 2 pizzas. Simple. Now: 1 lasagna + 1 lasagna = … one bigger lasagna. You didn't get two of anything.

Both are food; only one of them adds. And your data is exactly the same way. Some numbers add cleanly across anything you slice by. Some fall apart the moment you sum them — and the SUM button in every BI tool will add them anyway, hand you a confident total, and never mention that the total is meaningless.

The property that separates the two is called additivity, and it's the difference between a number you can trust and a number that lies.

Pizzas: the numbers that add

Revenue is a pizza. So is quantity sold; so is order count. Slice revenue by product, by region, by month — the pieces always add back to the whole. $0.9M + $1.0M + $1.0M + $1.1M = $4.0M, and that's genuinely your year. These are additive measures: you can sum them across every dimension and the total means what you think it means. Most of the numbers you plot are pizzas — which is exactly why the SUM button feels safe.

Lasagna: the numbers that don't

A margin percentage is a lasagna. East is 40%, West is 30%, North is 35% — add them and you get 105%, which is not a thing. A conversion rate, an average order value, a count of distinct customers: sum any of them across a dimension and you get garbage, confidently formatted. These are non-additive measures. The fix isn't to add the parts; it's to recompute from the ingredients — total margin divided by total revenue, never the average of the averages.

The tricky middle: adds one way, not the other

Then there's the measure that's a pizza in one direction and a lasagna in the other. An account balance, an inventory level, a headcount — sum them across accounts or regions and you're fine ($2.0M in one account plus $2.1M in another really is $4.1M). But sum them across time and it's nonsense: you don't have January's balance plus February's — you have February's. These semi-additive measures add across space but not across time; over time you take the last value or the average, never the sum. (They're why the periodic snapshot fact table exists.)

The one question to ask

Before you drop a measure on a dashboard, ask: can I SUM this across every dimension?

  • Yes, always → additive (pizza). Sum away.
  • Across some, not others → semi-additive. Sum across space; take the closing value over time.
  • No → non-additive (lasagna). Never sum; recompute from the numerator and denominator.

The reason this matters is that the tool won't warn you. A dashboard will total a column of margins into 340% and render it in a nice big font. The number is wrong, it looks authoritative, and someone will make a decision on it.

Where additivity lives

Additivity isn't a property of the chart — it's a property of the measure, declared once where the measure is defined. Pin it in the semantic layer alongside the definition and the grain, and every surface knows whether a SUM is allowed before anyone clicks it. It's one of the checks a governed layer has to pass: decide the truth in one place, and the surfaces can't get it wrong.

Try it below — pick a measure, roll it up by a dimension, and watch which ones add and which ones quietly lie.

Go deeper

Watch the deep dive

Slide 1Slide 2Slide 3Slide 4Slide 5Slide 6
Keep going

More on Star Schema

See it built
Star SchemaFoundations

Some Numbers Are Pizza. Some Are Lasagna.

The interactive tour of measure additivity. Pick a measure and a dimension to roll up by; watch revenue add cleanly, an account balance break across time, and a margin percentage sum to a confident 143%. Click each measure type to learn the one rule that keeps a dashboard honest.

3 measure types
▶ Demo Now

Have data that should be doing more?

Tell me about the pipeline that breaks, the metric nobody trusts, or the analysis stuck in a notebook. Let's operationalize it.