Using Notion Relations and Rollups for Real‑Time Project Tracking
Learn how Notion Relations and Rollups automate cross‑table aggregates like task counts and completion percentages for lightweight project tracking.
18 May 2026, 14:39 UTC

Problem: Manual task counts slow you down
When managing multiple projects, you often need to know how many tasks belong to each project, or what percentage of tasks are complete. Copy‑pasting numbers or rebuilding sums in separate tables is error‑prone and wastes time.
Thesis: Relations + Rollups give live, cross‑table aggregates
Notion’s Relation field lets a record in one database point to records in another. A Rollup field then reads those linked records and calculates a value—count, sum, average, or a custom formula—without leaving the UI. The result updates automatically when the source data changes.
Worked example: Projects and Tasks
- Create two databases: Projects (table or board) and Tasks (table).
- In the Tasks database, add a Relation field named
Projectthat links to the Projects database. Allow multiple projects per task if needed. - Back in the Projects database, add a Rollup field named
Task Count. Configure it to roll up the RelationProject, calculate Count all. - Add another Rollup field named
Completed Tasks. Point it to the same Relation, then choose theStatusproperty (assuming you have a select called Status with options like To Do, In Progress, Done). Set the aggregation to Count if and specifyStatusequals Done. - Add a Formula field named
Completion %with the expression:prop("Completed Tasks") / prop("Task Count") * 100Format the result as a percentage.
Now, whenever you add a new task and set its Project relation, the Task Count increments. When you change a task’s Status to Done, Completed Tasks rises and the Completion % updates. The change appears after a brief sync pause—usually a few seconds—especially in larger workspaces.
Trade‑offs and limitations
- Refresh lag: Rollups are not instantaneous; heavy sync activity can delay updates by several seconds.
- Performance: Very large related sets (hundreds of records) or nested rollups (a rollup of a rollup) can slow the page and approach Notion’s usage limits.
- Formula constraints: You can reference rollup values in formulas, but you cannot roll up a formula that itself uses another rollup without risking circular dependencies.
To verify that a rollup is working, add a task, wait 5–10 seconds, then check the Projects view. The Task Count should reflect the new total. For programmatic confirmation, use the Notion API to fetch a project record and compare the rollup field’s value with the UI‑displayed count; they match after the sync interval.
Actionable closing
Start small: create a Relation from your task list to a project list, add a simple count rollup, and watch the numbers stay current. If you need more insight, layer additional rollups (e.g., sum of estimated hours) and combine them with formulas for weighted averages or burndown metrics. Keep an eye on related set size and avoid deep nesting to maintain snappy performance.
0 replies
A thoughtful contribution can make all the difference. Be the first to share one.