Unstored calculations across relationship chains

Expert

Understand how chain depth and unstored fields compound into slow solutions, and how to break calculation chains with stored intermediate fields.

What you'll learn

  • How unstored calculation chains multiply re-evaluation costs
  • How to identify deep chains with Manage Database
  • How to break chains with stored intermediate fields

When a calculation field references a related field, and that related field is itself an unstored calculation, the chain of re-evaluation compounds. A layout showing 20 portal rows, each resolving a three-hop unstored chain, can require hundreds of evaluations per screen paint. Understanding and breaking these chains is critical for performance at scale.

1/3
1

How chains multiply cost

Every unstored field in a chain must be re-evaluated whenever any of its inputs change. A chain A → B → C where all three are unstored means changing A re-evaluates B, then re-evaluates C for every context that uses C.

FileMaker Script
// Chain:
// Invoices::TaxAmount (unstored calc, uses TaxRate)
//   ← Contacts::TaxRate (unstored calc, uses Region)
//     ← Regions::TaxMultiplier (unstored calc, uses date)

// Displaying TaxAmount for 50 portal rows:
// → 50 × TaxAmount evaluations
// → 50 × TaxRate evaluations
// → 50 × TaxMultiplier evaluations = 150 calculations per refresh

Sign in to track your progress and pick up where you left off.

Sign in to FM Dojo