Solving Data Fragmentation in Notion with Relations and Rollups
Stop duplicating data in Notion. Learn how to use Relation and Rollup properties to connect databases and automate progress tracking and data aggregation.
25 Aug 2025, 01:57 UTC

The Problem: Data Silos in Document-Based Tools
Many teams start using Notion as a collection of separate pages and tables. You might have a 'Project Tracker' database and a 'Task List' database, but they exist as isolated islands. When you need to know the total progress of a project, you are forced to manually scan the task list or, worse, duplicate data across both tables. This creates a synchronization nightmare where updating a task status doesn't reflect in the project overview.
The solution is to move from a flat document mindset to a relational data mindset. By using Relations and Rollups, you can link these databases so that data flows automatically from the granular level (tasks) to the high-level summary (projects).
Connecting the Dots with Relation Properties
A Relation property is essentially a pointer. Instead of typing a project name into a text field in your Task database, a Relation creates a clickable link to a specific record in the Project database. This transforms your data from a list into a graph.
In Notion, relations can be one-way or two-way. A two-way relation ensures that when you link a Task to a Project, the Project page automatically shows a list of all its associated Tasks. This eliminates the need to navigate back and forth between pages to verify connections.
Aggregating Data via Rollups
While a Relation connects two records, a Rollup extracts specific information from that connection. A Rollup is a read-only property that looks at a related record and performs a calculation or retrieves a value.
Common use cases for Rollups include:
- Summation: Adding up the total budget of all linked expenses.
- Counting: Determining how many tasks are linked to a project.
- Aggregation: Showing the latest 'Last Edited' date from a set of related documents.
- Percentage: Calculating the ratio of 'Done' checkboxes in a related task list.
Worked Example: Project Progress Tracking
To implement an automated progress tracker, assume you are using Notion version 2.0+ with two databases: Projects and Tasks.
Step 1: Establish the Relation
- In the Tasks database, add a new property.
- Select Relation and search for the Projects database.
- Toggle Show on Projects to 'On' to enable the two-way link.
- Assign each task to its corresponding project via the dropdown menu.
Step 2: Configure the Rollup
- In the Projects database, add a new property.
- Select Rollup.
- In the configuration menu, set the following:
- Relation: Select the 'Tasks' relation created in Step 1.
- Property: Select the 'Status' property (assuming it is a Checkbox or Status type).
- Calculate: Select Percent checked (for checkboxes) or Percent per group (for status).
Verification
To verify the setup, go to the Tasks database and mark a task as 'Complete'. Immediately navigate to the Projects database; the Rollup percentage should have increased automatically without manual input.
Technical Trade-offs and Limitations
Relational structures in Notion are powerful, but they are not a replacement for a dedicated SQL database. Consider these constraints:
| Constraint | Impact | Mitigation |
|---|---|---|
| Performance | Large databases (thousands of rows) with multiple complex rollups can cause significant page load lag. | Use filtered Views to limit the amount of data rendered on a single page. |
| Schema Flexibility | Notion does not enforce strict data types; a user could accidentally leave a relation empty. | Use database templates to ensure required properties are initialized. |
| Nesting Depth | Deeply nested relations (Project → Task → Sub-task → Log) make navigation cumbersome. | Keep your relational hierarchy shallow (2-3 levels max). |
Closing Action
Audit your current Notion workspace for duplicated information. Anywhere you are typing the same name or date in two different databases is a candidate for a Relation. Start by linking your most granular data (tasks/logs) to your highest-level summaries (projects/clients) to automate your reporting.
0 replies
A thoughtful contribution can make all the difference. Be the first to share one.