R003 — Circular References
Executive Summary
Key Takeaways
- ✓ R003 evaluates every circular dependency region the dependency-graph stage already detected, rather than detecting circularity itself.
- ✓ A region is classified along two axes — whether the workbook's iterative-calculation setting is enabled and adequately configured, and whether the sheets involved match a recognized financial pattern (debt sizing, an equity waterfall, and similar).
- ✓ A circularity with iterative calculation disabled is always flagged, since Excel cannot resolve such a calculation without it, regardless of whether the pattern is recognized as financially intentional.
- ✓ A circularity matching a recognized financial pattern with adequate iterative-calculation settings is not triggered — properly controlled financial circularities are expected in project finance and PE models.
Purpose¶
R003 evaluates every circular dependency region already identified by the dependency-graph stage (see Dependency Graph & Circularity Detection) and decides whether, and at what severity, it warrants a finding. R003 does not perform circularity detection itself — that is a separate, earlier pipeline stage.
Detection Logic¶
Each circular region is classified along two independent axes: whether the workbook's iterative-calculation setting is enabled and, if enabled, whether its configuration (iteration count, convergence tolerance) is adequate; and whether the sheets the region spans match a recognized financial calculation pattern — a sheet-name signal associated with debt sizing, an equity waterfall, tax, or similar recurring project finance and PE structures. Four outcomes follow:
- Iterative calculation disabled — always flagged, at high severity if the pattern is not recognized, or medium if it is (the model author likely intended the circularity but omitted the calculation setting).
- Recognized pattern, adequate settings — not triggered.
- Recognized pattern, inadequate settings (too few iterations or too loose a tolerance) — flagged at medium severity.
- Unrecognized pattern, iterative calculation enabled — flagged at medium severity for independent review.
Why It Matters¶
A circular calculation that Excel cannot resolve (iterative calculation disabled) can produce inconsistent results depending on the environment it is opened in — a genuinely unpredictable failure mode. Even where iterative calculation is enabled, an inadequately configured convergence setting can cause the model to settle on a value that has not actually converged, silently understating or overstating a debt-sizing or waterfall output that depends on it.
Evidence Produced¶
A triggered R003 finding's evidence covers every cell in the affected circular region, together with a description naming the region's cell count, its classification outcome, and — where a recognized pattern was matched — a trace of the first representative cycle through the region, so the finding is traceable to the specific calculation loop that triggered it.
Severity¶
High. Weight 7.0. R003 is not one of the five critical-override rules (R001, R002, R004, R006, R023).
Example¶
Trigger. A debt-sizing sheet and an equity-waterfall sheet reference each other's outputs in a circular chain, and the workbook's iterative-calculation setting is disabled entirely. R003 flags the region: the sheet names match a recognized financial pattern, but the calculation cannot resolve without iterative calculation enabled, so it is flagged (at reduced, medium severity, since the pattern is recognized).
Non-trigger. The same circular chain, but with iterative calculation enabled and configured with a sufficient iteration count and a tight convergence tolerance. R003 does not fire — this is the expected, controlled shape of an intentional financial circularity.
Recommended Remediation¶
If the circularity is unintentional, restructure the formula chain to remove the dependency loop. If it is an intentional financial pattern, enable iterative calculation with a sufficient iteration count and a tight convergence tolerance, and document the setting in the model's control panel so a future reviewer does not need to re-diagnose it.
Related Rules¶
R003 shares the Structural taxonomy category with the other Structural-category rules published in the Rule Reference — see the Rule Taxonomy page for the full category membership.
Related Articles¶
- Circular References — the Knowledge Centre's buyer-facing technical guide to circular references in financial models.
- Circularity in Debt Models — the specific debt-sculpting and waterfall context R003's pattern recognition addresses.
Version History¶
No version-specific changes to R003's severity, weight, or category are recorded as of engine version 2.1.0. This section will be updated in the same edit as any future change to the rule's declared attributes.
How OXXON tests thisRun a free structural check with FMAE
Frequently Asked Questions
Does R003 detect circular references itself?
No. Circularity detection happens at the dependency-graph stage (see Dependency Graph & Circularity Detection), using strongly-connected-component analysis. R003 evaluates each detected region and decides whether it warrants a finding, and at what severity.
Does every circular reference get flagged?
No. A circularity matching a recognized financial pattern (debt sizing, an equity waterfall, and similar) with iterative calculation enabled and adequately configured is not triggered at all — properly controlled financial circularities are an expected, legitimate pattern in complex models.
What happens if iterative calculation is disabled?
The circularity is always flagged, whether or not it matches a recognized financial pattern, because Excel cannot resolve a circular calculation without iterative calculation enabled.
Is R003 one of the critical-override rules?
No. R003 is high severity but is not among the five rules (R001, R002, R004, R006, R023) whose triggering caps a model's letter grade under the SM-2.0 Scoring Methodology.
Related Articles
FMAE Rule Taxonomy
Every rule in the FMAE structural rule pack declares a category attribute at the point it is defined in source — this is not a classification imposed on the rules afterward for documentation purposes, it is the classification the engine itself uses. Six categories cover all 26 rules — Structural (18 rules), Assumptions Governance (1), Integrity Controls (2), Structural Hygiene (1), Aggregation Logic (1), and Model Governance (3). This page publishes that taxonomy as the FMAE equivalent of a control catalog's classification scheme, cross-linked to the Rule Reference page for each member rule.
Finding Data Model & Confidence
Every FMAE finding carries the same fixed structure — which rule triggered it and that rule's identity at the time it ran, its evidence, a narrative explanation, and a confidence label of high, medium, or low. Confidence is a deterministic categorical label derived from how strongly a row's cells agree on a pattern, not a machine-learning probability estimate. Stating this plainly matters, since describing FMAE's confidence as AI-derived or probabilistic would overstate what the engine actually does.
Dependency Graph & Circularity Detection
FMAE builds a directed graph linking every formula cell to the cells its formula references, then applies strongly-connected-component (SCC) analysis — a well-established computer-science technique for finding groups of nodes that are mutually reachable from one another — to identify every circular calculation in the workbook, however large or deeply nested. Each detected circular group is condensed into a single node in a further graph (the condensation graph), which is guaranteed acyclic and supports reachability analysis used elsewhere in the engine, such as measuring how far a finding's impact could propagate downstream.
Circular References in Financial Models
A circular reference in a financial model occurs when a formula in one cell depends, directly or through a chain of intermediate cells, on its own value. In Excel, circular references are flagged by default and cause the affected cells to display zero rather than a calculated result. When iterative calculation is enabled, Excel resolves circular references by repeatedly recalculating the sheet until a convergence threshold is met, which can produce different results depending on the starting conditions and may mask non-convergence. In financial models, circular references arise most frequently in interest-on-drawn-debt calculations, cash sweep mechanics, and tax shield computations.
Circularity in Debt Models
Circularity in debt models arises from the interdependence of interest expense and cash availability in the same period. In a project finance model, interest is charged on the drawn debt balance; the interest payment reduces available cash; available cash determines the repayment amount; the repayment amount determines the closing debt balance; and the closing balance determines the next period's interest charge. When a model calculates interest on the average of opening and closing balances, or when a cash sweep mechanism uses the same period's interest cost in determining sweep amounts, a circular dependency is introduced. The two principal resolution techniques are: calculating interest on the opening balance rather than the average balance, and using a defined debt repayment algorithm that determines the repayment amount without reference to the closing interest charge.