Skip to main content

workflow-ma-link-tracing

WHAT: Dependency-graph construction and circular-reference assessment for financial model worksheets — directed cell/formula link tracing, cycle detection, and classification of legitimate vs pathological circular references. WHEN: Invoke when a financial model is presented for audit and the reviewer needs to map which cells feed which, detect unintended formula cycles, or confirm that iterative-calculation cycles (interest-expense circularity, revolver draw circularity) converge correctly.

معلومات المصدر

المستودع
fall-development-rob/corp_finance
آخر نشاط في المصدر
١١ مايو ٢٠٢٦ في ١٤:١٠
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٨
التفرعات
٢

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
workflow-ma-link-tracing
description
WHAT: Dependency-graph construction and circular-reference assessment for financial model worksheets — directed cell/formula link tracing, cycle detection, and classification of legitimate vs pathological circular references. WHEN: Invoke when a financial model is presented for audit and the reviewer needs to map which cells feed which, detect unintended formula cycles, or confirm that iterative-calculation cycles (interest-expense circularity, revolver draw circularity) converge correctly.
# Model Audit — Link Tracing and Circular Reference Assessment ## What this skill covers Construction of the directed dependency graph for a financial model, identification of all formula cycles (circular references), and classification of each cycle as either a legitimate (convergent) model mechanic or a pathological (non-convergent or unintended) error. ## Workflow ### Step 1 — Build the dependency map For every formula cell in the model: - Record all direct precedent cells (inputs to the formula). - Record the formula string (for display in the output report). - Label each cell with its sheet name and cell address (`Sheet!A1` notation). Construct a directed acyclic graph (DAG) of all non-circular dependencies. The output is an adjacency list suitable for cycle detection. ### Step 2 — Detect circular references Apply a depth-first search (DFS) with cycle tracking on the full dependency graph. Every back-edge marks a circular reference. Record: - The full cycle path (`Sheet1!B10 → Sheet2!C5 → Sheet1!B10`). - The cycle length (number of edges). - All cells participating in the cycle. ### Step 3 — Classify each cycle | Cycle type | Description | Disposition | |------------|-------------|-------------| | Legitimate — interest expense | Interest expense → net income → cash → debt balance → interest expense | Acceptable if iterative calculation is ON and converges in ≤10 iterations | | Legitimate — revolver draw | Revolver draw → ending cash → revolver draw | Acceptable if iterative calculation is ON and converges in ≤10 iterations | | Pathological — non-convergent | Any cycle where iteration does not reach a stable solution within 10 iterations | Critical finding | | Pathological — unintended | Revenue → cost → revenue; any business-logic cycle with no modelling rationale | Critical finding | ### Step 4 — Verify convergence of legitimate cycles For each legitimate cycle, check that: - The model's workbook has iterative calculation enabled. - The maximum iteration count is ≥5 (recommended: 100). - The maximum change threshold is ≤0.001. - Manually stepping through 5 iterations shows a converging sequence. Non-convergence within 10 iterations is a critical finding regardless of cycle classification. ### Step 5 — Produce the dependency map summary Output: - Total cells in the model, formula cells vs hard-coded cells. - Count of distinct circular references. - Per-cycle table: path, length, classification, convergence status, severity. - Flattened precedent list for each output cell (show all upstream inputs). ## Output format ``` LINK-TRACE REPORT ----------------- Model: [name / file reference] Total formula cells: [n] Total circular references detected: [n] CYCLE TABLE | Cycle ID | Path | Length | Classification | Converges? | Severity | |----------|------|--------|----------------|------------|----------| | C1 | Sheet1!B10 → Sheet2!C5 → Sheet1!B10 | 2 | Legitimate (interest) | Yes | — | | C2 | Rev!D8 → IS!C12 → Rev!D8 | 2 | Legitimate (revolver) | Yes | — | | C3 | Rev!E8 → Rev!E9 → Rev!E8 | 2 | Pathological (unintended) | N/A | CRITICAL | PRECEDENT MAP (selected output cells) | Output cell | All upstream inputs | |-------------|---------------------| | IS!C20 (Net Income) | IS!C5, IS!C8, IS!C14, Tax!B3, ... | ``` ## Quality gates - Every formula cell has a recorded precedent list — no cells skipped. - Every cycle is classified; no cycle is left as "unknown." - Legitimate cycles have convergence confirmed; non-confirmation is a major finding. - Pathological cycles are always critical. ## Related skills - `workflow-ma-formula-consistency` — once the link map is built, consistency checks run across formula rows - `workflow-ma-hardcode-detection` — hardcodes are identified from the same cell inventory used here - `workflow-ma-three-statement-tieout` — the articulation check uses the dependency map to confirm IS/BS/CF linkages - `workflow-ma-rederivation` — re-derivation uses corp-finance-mcp tools as ground truth after link-tracing confirms model topology ## Routing **Primary agent:** `cfa-chief-analyst`
عرض على GitHub