Fix Notion Formula Cannot Reference Self: Workaround Patterns
🔍 WiseChecker

Fix Notion Formula Cannot Reference Self: Workaround Patterns

When you build a formula in a Notion database, you may find that referencing the property where the formula itself resides is not allowed. Notion formulas cannot read their own cell value or use the current property as an input. This limitation exists because a formula property is computed from other properties, not stored as independent data. This article explains why the self-reference restriction exists and provides three reliable workaround patterns to achieve the logic you need.

Key Takeaways: Workarounds for Self-Reference in Notion Formulas

  • Create a separate helper property: Add a text, number, or select property that holds the input value for your formula.
  • Use a rollup from the same database: Roll up a value from a relation that points back to the same database, then reference the rollup in your formula.
  • Leverage a Notion automation: Set a property value automatically when a page is created or edited, then use that property in your formula.

ADVERTISEMENT

Why Notion Formulas Cannot Reference Their Own Property

Notion formulas are computed fields. They only calculate values from other properties in the same database row. The formula engine does not have access to the formula property’s own value because that value is generated by the formula itself. Allowing self-reference would create circular logic — the formula would depend on its own output, which does not exist until the formula runs.

This design is intentional. It prevents infinite loops and keeps database performance predictable. However, it also means you cannot write a formula that reads or modifies its own result. For example, you cannot use prop("Status") inside a formula property also named Status. If you need to use the current status in a calculation, you must store the status in a different property type.

What the Self-Reference Error Looks Like

When you try to use prop("FormulaName") inside a formula with the same name, Notion displays a red error banner: “This formula has a circular reference.” The formula editor will not save the change. The only way to proceed is to remove the self-reference and use an alternative approach.

Three Reliable Workaround Patterns for Self-Reference

Pattern 1: Store the Input in a Non-Formula Property

  1. Add a new property of a different type
    Create a Text, Number, Select, or Status property. Name it something like “Status Input” or “Score Input.” This property will hold the value that your formula would have referenced in itself.
  2. Populate the input property manually or via automation
    Enter the value directly for each row. Or set up a Notion automation to copy a value from another property into this input property when conditions are met.
  3. Reference the input property in your formula
    In the formula property, use prop("Status Input") or prop("Score Input") instead of trying to reference the formula property itself. The formula can now calculate based on that stored value.

This pattern works for any scenario where you need the formula to use a value that changes over time. The input property acts as a stable source that the formula can read.

Pattern 2: Use a Relation and Rollup to the Same Database

  1. Create a relation property that links to the same database
    Add a Relation property. Set the related database to the same database you are working in. Name it “Self Relation.”
  2. Link each page to itself
    In the “Self Relation” cell for a page, select that same page. This creates a self-referencing relation. You must do this for every row where the formula needs to read its own data.
  3. Add a rollup property that reads the target property
    Create a Rollup property. Set the relation to “Self Relation.” Choose the property you want to read (for example, a Status property). Set the rollup aggregation to “Show original” if you want the exact value.
  4. Reference the rollup in your formula
    Your formula can now use prop("Rollup Name") to get the value from the same row. The rollup acts as a bridge that the formula is allowed to read.

This pattern is useful when you need the formula to read a property that is already present in the database. It avoids creating a duplicate input property. The downside is that you must manually link each page to itself.

Pattern 3: Automate Value Copy with Notion Automations

  1. Create a dedicated input property
    Add a Text or Number property named “Auto Input.” This property will be automatically updated by an automation.
  2. Set up a Notion automation
    Go to the database menu, select Automations, and create a new automation. Choose a trigger such as “When a page is edited” or “When a new page is created.”
  3. Define the action to copy a value
    Set the action to “Edit a page.” Choose the same database. Set the “Auto Input” property to the value from another property — for example, copy the value of a Status property into Auto Input.
  4. Reference the automated input in your formula
    Your formula can now use prop("Auto Input") to read the copied value. The automation keeps the input property synchronized.

This pattern is ideal when the source value changes frequently and you do not want to update the input manually. Note that automations have limits on the free plan — you can create up to three automations per workspace.

ADVERTISEMENT

Common Mistakes When Working Around Self-Reference

Formula Still Shows Circular Reference After Adding a New Property

If you rename a property to match the formula name, the circular reference may reappear. Ensure the input property has a different name than the formula property. Also check that no other formula in the database references itself indirectly through a chain of formulas.

Rollup Returns Empty or Incorrect Value

A rollup from a self-relation requires that each page is linked to itself. If you forget to link a page, the rollup returns no value. Use the database view to check that the relation column is filled for every row where the formula must work.

Automation Does Not Trigger on Edit

Notion automations trigger only on specific actions. If you edit a property that is not included in the automation trigger conditions, the automation will not run. Verify that the trigger includes “Any property is edited” or select the exact property that changes.

Formula Self-Reference Workaround Patterns Compared

Item Input Property Self-Relation + Rollup Automation Copy
Setup effort Low — one new property Medium — relation, rollup, manual linking Medium — property plus automation config
Maintenance Manual data entry required Manual linking for each new page Automatic after setup
Best for Static values that rarely change When you need to read an existing property Frequently changing source values
Limitations Extra column in database view Rollup may slow down large databases Automation plan limits apply

Notion formulas cannot reference themselves, but the three patterns above let you achieve the same result without triggering a circular reference error. Use the input property pattern for simple cases, the self-relation rollup when you want to reuse existing data, and the automation pattern when values change often. After applying one of these workarounds, test the formula with a few rows to confirm the output matches your expected logic. For advanced needs, consider using a Notion API integration to write custom scripts that update properties outside the formula editor.

ADVERTISEMENT