If a Notion rollup is empty or shows an unexpected zero, trace one row from its source to the result. Confirm that the source property has the intended value, that the receiving row links to that exact page, and that the rollup selects the right relation, property and calculation. A relation between databases does not automatically connect every row.
I would check that path before rebuilding the database. It separates a missing input from a wrong calculation, and it gives you something specific to fix. If the result works for the owner but fails for a teammate, check access to the required column. If it works in Notion but fails in another app, investigate that app’s data retrieval instead.
Choose the symptom you actually see
- A blank cell or unexpected zero: inspect the linked pages, source values and rollup configuration.
- The source property is missing from the rollup picker: check the selected relation and whether the source is another rollup.
- A list appears where you need a total or date: check the calculation and the output type.
- Only one person sees a failure: compare their page and column access with someone for whom it works.
- Notion is correct but an integration is blank: skip to the external-app checks below.
This guide focuses on missing values and unsupported inputs. A populated numeric total that is merely too high or too low needs a separate reconciliation of every linked amount, including which records belong in the total.
Trace one row without changing the database structure
Before editing, note the affected page, its linked pages, the rollup’s selected relation and property, and its calculation. Keep the existing relation and property definitions intact while you find the break. Changing several settings together can conceal which one caused the problem.
For a fictional example, suppose a client named Harbor Co. has one linked project, Website launch. That project has a Number property called Estimated hours with the value 12. The client’s Total estimated hours rollup should read:
- Relation: Projects
- Property: Estimated hours
- Calculate: Sum
With that one project linked and its source value set to 12, the documented sum calculation should produce 12. This is a way to reason about the configuration, not a reported test result. Use an existing record whose value you can verify; you do not need to overwrite a real project’s hours to diagnose it.

Blank or zero: check the row link before the calculation
- Open the receiving row’s relation field. Does it contain the intended source page? A database-level relation only makes pages available to select. Each receiving row still needs the appropriate pages linked. Notion’s instructions for adding related pages describe choosing them in the relation cell. If the expected page is absent, link that page and check the rollup again.
- Open the linked source page. Read the exact property the rollup should use. In the example, that is Estimated hours on Website launch, not a similarly named field on another project. If it is blank, enter a value only when you know it. A rollup cannot supply missing project data for you.
- Open a cell in the rollup column. Check all three selections: relation, property and calculation. Notion’s rollup configuration uses those selections to determine what to aggregate. A rollup named Total hours can still be configured to read Budget; its name does not establish its input.
- Check which side owns the relation. If you linked a client from a project but the client’s Projects field remains empty, inspect whether those properties form the same two-way relation. Relations between different databases are one-way by default; enabling the corresponding relation with Show on [related database] makes edits work in both directions. A separate relation with the same name is not the same connection.
What should change: after the correct source page is linked and the rollup reads its populated property with a compatible calculation, the result should reflect that input. If the link, source and calculation already match, move to the type or access checks rather than adding the same page again.
Expose the selected input before changing the summary
If the row link is present but Sum still surprises you, note the existing settings and temporarily select Show original for the same relation and source property. Inspect the values from the linked pages, then restore Sum. Notion’s calculation options separate showing original values from adding numbers.
| Input check | Next action | Expected change to inspect |
|---|---|---|
| Website launch is not in Harbor Co.’s Projects relation | Select that exact source page. | The source page appears in this relation and its populated hours can be read. |
| Website launch is linked but Estimated hours is empty | Request the actual estimate; keep unknown data blank. | After a known value is entered, the rollup has a numeric input to add. |
| Website launch contains 12 hours, but the rollup’s Property selection points elsewhere | Restore the intended Estimated hours source and Sum. | The fictional single-value total should represent 12. |
| The intended source is Text, despite displaying “12” | Ask the owner which Number field should supply the calculation. | Sum is available when an appropriate Number source is selected. |
After correcting one dependency, recheck the original receiving page and its configuration before moving to another branch.
Keep unknown values distinct from zero
A blank estimate means the hours have not been entered. An estimate of 0 is an entered value. I would keep that distinction: filling unknown hours with zero makes an unfinished estimate look complete.
To investigate missing inputs, add a separate diagnostic rollup with Count empty to count related pages whose selected property has no value. Use it alongside the real total, rather than replacing the total’s calculation. This tells you whether the linked records lack data.
For the Harbor Co. example, configure the separate audit as Projects → Estimated hours → Count empty. If Website launch is the only linked page and its hours are blank, the documented empty-value count should be 1. With an entered value of 0, there is an input value rather than an unknown estimate. These are predictions from the defined example, not observed results.

If a downstream formula hides the result, inspect its empty-value condition. Notion’s empty() function treats 0 as empty, as well as empty text and an empty list. A condition based only on empty() cannot distinguish a legitimate numeric zero from every kind of missing value.
Did the problem start after an import or duplication?
A CSV file does not preserve a working relation that can be restored by importing it. Notion exports relation fields as text URLs and cannot re-establish those relations through CSV re-import. Inspect and restore the actual page links rather than treating the imported text as a relation.
Duplicating a database can also change the connection you expected. In Notion’s documented example, duplicating one side converts its two-way relation to a one-way relation. Check the duplicate’s relation settings and the receiving row’s links before editing the rollup.
A list or missing calculation: match the output type
Choose the calculation for the question you need answered. Showing the original entries, counting populated values, adding hours and finding the latest deadline are different operations. Notion documents numeric calculations for Number properties and date calculations for Date properties: Sum adds numbers; Earliest date and Latest date select dates.
If you want a total from a normal Number property and the rollup shows individual values, inspect Calculate and choose Sum. If Sum is absent, inspect the source property’s type first. Text that looks like a number is still a Text property. Avoid changing an established property’s type just to make a menu option appear; have the database owner decide where the numeric input should live.
A formula consuming the rollup needs the right type too. Rollups can return a number, date or list depending on their configuration. If the next formula expects one date but receives a list, choose the intended date calculation at the rollup or write the formula around a clearly defined selection rule.
Do not add first() merely to silence a type error. It returns the first item in a list, which does not by itself mean the latest deadline or the largest amount. Decide the intended result before choosing a function.
A source property is missing: check for a rollup of a rollup
First confirm that the chosen relation points to the database containing the desired property. If the property is itself a Rollup, that explains a separate limitation: Notion does not support directly rolling up another rollup. Renaming the property will not change its type.
I would prefer a direct relation to the original source when that matches the database model. For a more complex chain, a database formula can operate on related pages; Notion documents map() for evaluating an expression across a list. The formula still needs the correct relation names, input types and aggregation rule. A generic copied formula cannot decide whether your invoice needs one contact, several contacts or a total.
If you are still establishing the model, the client-and-project relations and rollups guide explains where to store source values and how the receiving database should read them.
It works for the owner: check the teammate’s access
If the entire column is missing, first check the view’s Property visibility setting. A hidden column and a rollup that cannot read its input are different symptoms.
For an account-specific failure, Notion’s property-access troubleshooting explicitly includes rollups: compare the same workflow with someone who can see the required column. If it works for that person, the affected account lacks access to a column the workflow needs.
Property access is available on Business and Enterprise. A person with Full access can inspect the rules in the original database’s table view on web or desktop: open the column menu, select Property access, and use Preview to inspect the intended teammate’s permission. Can view property only exposes the column name but hides its values; No access hides both.
Check page access as well. A column rule does not grant access to a database page the person cannot already open. Full-access owners are never restricted by column rules, so the owner’s successful result alone cannot confirm the teammate’s access.
Ask the owner to correct the specific access mismatch if that data belongs in the teammate’s workflow. Do not open an entire client database just to make a blank total disappear. If a client should not receive the underlying information, change what their page reports instead of expanding their access.
If you can edit records but cannot change the rollup configuration, that can be a separate permission issue: Can edit content permits changes to database pages and their values, but not the database’s properties or structure. Have someone with the appropriate database access make the configuration change.
A formula reports a depth error: simplify the dependency chain
Check this branch when there is an actual formula error, not merely because a rollup is blank. Notion formulas have a 15-layer depth limit; each reference to another formula or rollup adds a layer, including references across databases.
Trace the dependencies back to the original value. Combine unnecessary intermediate formulas or rollups where the calculation remains equivalent. The depth-limit error should disappear once the chain is short enough. This is separate from the unsupported direct rollup-of-rollup configuration.
It works in Notion but fails in an external app
Start with the same record in the original Notion database. If its value is correct there, record that comparison before changing the schema. The integration may be missing an input, returning a partial property or applying its own calculation.
For API-based retrieval, Notion’s Retrieve a page response includes up to 25 relation references, and formula or rollup results can depend on references that response does not fully load. That response limit is not a 25-page cap on relations in the Notion interface. Ask the integration maintainer to use the page-property endpoint and read every page of rollup items before using its calculated result. Calculation limits can still apply; obtaining one property response is not sufficient evidence that every dependency was read.
For NotionApps, its current rollup troubleshooting starts at Builder → Databases → Calculated properties. Inspect Recalculate in NotionApps, Status and Depends on. Confirm that the integration is authorized to read the required databases before changing sharing, then share and sync them, syncing child databases before the parent. A disabled recalculation switch or Waiting on related fields needs the explanation shown there; repeatedly refreshing the Notion page does not resolve an unsupported recipe.
For another connector, keep the investigation in that connector until you know which property or input it is missing. Do not apply an old forum workaround without checking the connector’s current behavior.
Still missing? Give the database owner an exact example
A useful report lets someone follow the same path without guessing. Include the affected page, the source page and its actual value, the relation name and linked pages, the rollup’s property and calculation, and the expected versus visible result. Add the affected account’s access level or the connector name when those branches apply.
Keep client data out of public troubleshooting posts. If those checks all agree, preserve the evidence and ask the owner or relevant app support to investigate that exact case. Rebuilding the database before identifying the broken step would discard the clearest clues.