You tried to create a Rollup property in a Notion database that references another Rollup property in a related database, but the Rollup field is grayed out or missing from the source property list. This happens because Notion restricts Rollups to only pull from standard property types, not from other Rollup properties. The technical reason is that Rollups are computed values, not stored data, and chaining them would create circular dependency risks and performance issues. This article explains why this limitation exists, how Notion processes Rollup data, and what alternative methods you can use to achieve the same result.
Key Takeaways: Notion Rollup Chaining Restriction
- Rollup property selection menu: Only shows standard property types (Text, Number, Select, Date, etc.) and Formula properties — Rollup properties are excluded.
- Database relation + Rollup: A Rollup can only pull data from the database directly related to the current database, not from a second-level relation through another Rollup.
- Formula property as workaround: Use a Formula property to reference a Rollup value, then create a new Rollup that targets the Formula property instead of the original Rollup.
Why Notion Prevents Rollups From Referencing Other Rollups
Notion stores Rollup properties as computed values that are calculated on the fly when you view the database. Unlike Text or Number properties, Rollups do not hold static data. Instead, they aggregate information from a related database based on a relation property and a target property. When you attempt to create a Rollup that points to another Rollup, Notion would need to resolve the first Rollup, then compute the second Rollup based on that result. This creates a chain of dependency that Notion’s architecture does not support.
The core limitation comes from how Notion handles database relations. Each Rollup is tied to a specific relation property. If you have Database A related to Database B, you can create a Rollup in Database A that pulls data from Database B. But if Database B itself has a Rollup that pulls from Database C, you cannot create a Rollup in Database A that references that second Rollup. Notion would need to traverse two relation hops and compute two Rollups, which is not allowed.
Circular Dependency Prevention
Another reason is the risk of circular dependencies. If Database A has a Rollup referencing a Rollup in Database B, and Database B has a Rollup referencing a Rollup in Database A, the system would enter an infinite loop. Notion prevents this by limiting Rollup sources to non-Rollup properties only.
Performance and Data Freshness
Rollups recalculate each time the database loads or a related property changes. Chaining Rollups would multiply the computation cost. For large databases with hundreds of rows, this could cause noticeable lag. Notion’s design prioritizes responsiveness over nested aggregation.
Steps to Work Around the Rollup Chaining Restriction
You cannot directly create a Rollup that references another Rollup, but you can use a Formula property as an intermediary. A Formula can output the value of a Rollup, and then another Rollup can target that Formula. This achieves the same result without violating Notion’s rules.
Method 1: Use a Formula as an Intermediary
- Identify the source Rollup
Open the database that contains the Rollup you want to reference. Note the exact name of the Rollup property. For this example, assume the Rollup is named “Total Sales” and it pulls sum of sales from a related database. - Add a Formula property to the same database
Click the + icon in the last column header of the database. Select Formula from the property type list. Name it “Total Sales Formula” or any descriptive name. - Set the Formula to output the Rollup value
In the Formula editor, typeprop("Total Sales")(replace “Total Sales” with your Rollup name). This formula simply returns the value of the Rollup as a number or text. Click Done. - Create the second Rollup in the target database
Go to the database where you want the final Rollup. Ensure it has a relation property linking to the database with the Formula. Add a new Rollup property. In the Rollup configuration, set the Relation to the correct relation. For the Property field, select the Formula property you created (“Total Sales Formula”) instead of the original Rollup. Choose the aggregation function (Sum, Count, Average, etc.). Click Done.
Method 2: Flatten the Data Structure
- Evaluate whether a single Rollup can suffice
Often, you can redesign your databases to avoid needing a Rollup of a Rollup. For example, if you want to sum sales across two levels of categories, create a direct relation from the highest-level database to the lowest-level database. - Add a direct relation property
In the highest-level database, add a Relation property that links directly to the lowest-level database. This skips the intermediate database entirely. - Create a Rollup using the direct relation
Add a Rollup property that uses this new relation. Select the target property from the lowest-level database. Apply the aggregation function. This yields the same result without any chaining.
If the Workaround Still Doesn’t Work
Formula Property Shows “Invalid” or Empty
If your Formula property returns an error, check that the Rollup name in the prop() function matches exactly. Notion property names are case-sensitive. Also verify that the Rollup itself is computing correctly. If the source Rollup shows “No data” or an error, the Formula will inherit that issue.
Rollup Aggregation Produces Wrong Values
When using the Formula intermediary, the Rollup aggregation function applies to the Formula values. If the Formula outputs text like “$100”, a Sum aggregation will fail because it expects numbers. Ensure the Formula outputs a number type. Use toNumber(prop("Rollup")) if needed.
Relation Property Not Available in Target Database
If you cannot create a direct relation because the databases are already linked through other relations, consider using a linked database view. Create a linked view of the source database inside the target database page, then use Rollup on that view. This is a visual workaround that avoids property chaining.
Notion Property Types That Can Be Rolled Up vs Those That Cannot
| Property Type | Can Be Target of a Rollup | Notes |
|---|---|---|
| Text | Yes | Works with Count, Show Original, Show Unique |
| Number | Yes | Works with Sum, Average, Min, Max, Count, Show Original, Show Unique |
| Select / Multi-Select | Yes | Works with Count, Show Original, Show Unique |
| Date | Yes | Works with Earliest, Latest, Count, Show Original, Show Unique |
| Checkbox | Yes | Works with Count, Show Original, Show Unique |
| Formula | Yes | Works with all aggregation functions |
| Rollup | No | Cannot be selected as a target property |
| Relation | No | Rollups require a relation, but cannot target a relation property |
| Created Time / Last Edited Time | Yes | Works with Earliest, Latest, Count, Show Original, Show Unique |
| Created By / Last Edited By | Yes | Works with Count, Show Original, Show Unique |
This table shows that Rollup is the only computed property type that cannot serve as a source for another Rollup. Formula properties are allowed because they are recalculated independently and do not depend on another Rollup’s relation context.
You now understand why Notion blocks Rollups from referencing other Rollups and have two practical workarounds: using a Formula intermediary or flattening your database structure. Start by adding a Formula property to the database containing the original Rollup, then create your second Rollup targeting that Formula. For complex data models, consider redesigning your relations to use a single direct relation instead of chaining multiple Rollups. This approach keeps your databases fast and avoids the limitations of nested computed properties.