DEV Community

Cover image for You can’t chart a Notion rollup. You can’t roll up a rollup either.
Ben Ari Kutai
Ben Ari Kutai

Posted on Originally published at Medium

You can’t chart a Notion rollup. You can’t roll up a rollup either.

Originally published on Medium.

You related the tables. You added the rollup. Then you opened Chart view and the property you needed was missing from the axis list.

That is not a broken workspace. Notion documents both of the walls you just hit.

The two limits, in Notion’s words

You cannot roll up a rollup.

Help → Relations & rollups, FAQ:

Can I rollup a rollup?

Unfortunately not, as this could create unintended loops. We recommend sticking to rolling up other properties 😊

So: Tasks hold Hours. Projects roll up Hours. Clients cannot roll up that Project total. The second rollup is not an option.

Charts will not plot a rollup.

Help → Chart view, under bar and line customization:

Your X and Y axes won’t be able to show rollups, buttons, unique IDs, files and media, or formulas resulting in a list of outputs.

Donut, same family of blocked properties:

Your donut chart won’t be able to show rollups, buttons, unique IDs, files and media, and certain formulas.

The number you spent an afternoon building is the number the chart will not take.

What still works on a rollup (just not a chart)

A rollup is still the right tool for one hop, on a table.

Relate Customers to Items. Add a Rollup. Pick the relation, pick a property on the related pages, pick a calculation.

Sum, Average, Median, Min, Max, Range only exist if that related property is a Number. Date rollups get Earliest, Latest, Date range. Counts and empty/not-empty work more broadly. Rollups sort only when the output is numeric.

You can also total the whole column. Click the rollup property header → Calculate → More options → Sum. That is a table/board footer. It is not a nested rollup. It is not a chart.

If you needed a second hop, stop. Do not add another rollup pointing at the first one. Notion says that is on purpose.

Replace the rollup with a formula on the relation

Notion’s documented way to reach related data without a rollup is a formula.

Help → Formulas 2.0:

You can now pinpoint the exact information you need in a related database, without having to first create a rollup to reference that property.

A relation returns a list of pages. You walk that list with map, filter, and length. Notion’s own Projects → Tasks example:

prop("Tasks").map(current.prop("Status")).filter(current == "Done").length()
Enter fullscreen mode Exit fullscreen mode

Percent complete, still their example, using let:

let(percentComplete, round(prop("Tasks").map(current.prop("Status")).filter(current == "Done").length()/ prop("Tasks").map(current.prop("Status")).length() * 100), ifs(percentComplete == 100, "✅ All tasks complete", percentComplete > 0, "⚠️ In progress (" + percentComplete + ")%","❌ Not started"))
Enter fullscreen mode Exit fullscreen mode

If the related property is already a Number — hours, price, quantity — map it, then sum the list. sum is in the formula syntax help. map is how you pull a property off each related page:

sum(prop("Tasks").map(current.prop("Hours")))
Enter fullscreen mode Exit fullscreen mode

That is one hop. Same shape as their Status example. You get a number without creating a rollup you cannot chart and cannot roll up again.

Put the formula on the database that has a direct relation to the table that holds the Number. Projects relate to Tasks, Hours lives on Tasks, formula lives on Projects. If Clients only relate to Projects, a Client formula can read properties on Projects. It cannot roll up the Project rollup. Notion never documents a nested rollup, and this article is not going to pretend they did.

Keep the output a number, or a short status string. Do not return a list. Chart axes refuse “formulas resulting in a list of outputs.”

Formulas that chain other formulas and rollups have a hard cap: 15 layers. Help → Common formula errors: every formula that references another formula or rollup adds a layer, even across databases. When you hit it, merge properties instead of stacking them.

Then chart the formula, not the rollup

  1. Open the database that now has the number (the formula, or a plain Number you already store there).
  2. /chart, or + next to the view tabs → Chart.
  3. Pick vertical bar, horizontal bar, line, donut, or number.
  4. Link that database.
  5. On bar and line charts, set X and Y. For Y you can use Count, or the formula that returns a number. Do not pick the rollup.

X and Y config is bar and line only. Notion says formulas based on relations and rollups, and other complex formulas, “may cause charts to take a little bit longer to load.” Slow is allowed. Rollup-as-axis is not.

Donuts are pickier. They block rollups and “certain formulas.” If the donut will not take your formula, use a bar.

You still cannot edit rows from Chart view. Caps: 200 groups, 50 subgroups. Large databases update slowly. Sub-items only show if you flatten them in database settings (More settings → Sub-items / Sub-tasks → Show as Flattened list).

If the number already lives as a Number, roll that

Notion’s advice after the nested-rollup no is: stick to rolling up other properties.

Hours on Tasks as a Number → Projects rollup Sum of Hours. That is legal. Leave it in the table if a table is enough.

Clients still cannot roll up that Project rollup. If you need a Client chart, either relate Clients to the table that holds Hours and write the formula there, or chart Projects.

Do not invent a second rollup. Do not wait for the rollup to appear on the axis list.

Plan walls (only what Help states)

Charts:

  • Free: one chart. Delete it if you want a different one. A template with five charts still shows one.
  • Any paid plan: unlimited charts.

Help says “paid plan,” not “Business only.” Plus counts.

Dashboard view is a different product. Business and Enterprise. You do not need it to add a Chart view. You need it if you want Notion’s Dashboard view grid. This piece is about the rollup and the chart, not that grid.

What I would actually do

One hop, Number on the child table, I need the total on the parent table: rollup. Leave it in the table. Do not chart it.

One hop, I need a chart: skip the rollup. Formula on the parent that maps the related Number and sums it. Chart that formula.

Two hops: Notion will not roll up the middle rollup. Chart the database that sits one relation away from the Number, or store the Number on the row you actually chart.

I built a tool called Monoboard. Three steps: connect Notion, describe the dashboard, paste the share link as an Embed. It sits on the Notion databases you already have and embeds a live dashboard back into Notion.

https://monoboard.app/?utm_source=devto&utm_medium=article&utm_campaign=rollup-charts

Where does your number live today — on the child row, or only as a rollup you still cannot plot?

Top comments (0)