OpenChainGraph Suite · OCG v0.8.7 · Funds & NAV Operations

NAV Verification Pack

Three-node fund NAV verification workflow for administrators and auditors. Stage 1 recomputes NAV per share from declared holdings, accruals, liabilities and shares outstanding under a declared rounding mode, and its component breakdown and input digests feed forward. Stage 2 tests NAV-error materiality against a declared policy and completes the primary path. Stage 3 checks gross/net expense ratios and TER as an INDEPENDENT RIDER off the same declared accrual conventions as Stage 1 -- it does not depend on Stage 2's output, and Stage 2 does not depend on it.

OpenChainGraph · 3 Nodes attestation mandate · Fan-Out Hash-Anchored §4 Stage 3: Independent Rider Client-Side · Zero PII
Not an audit, not a valuation, and not a regulatory filing. Every price, FX rate, accrual, expense figure, and waiver term below is SUPPLIED by the user and treated as asserted -- nothing is fetched, zero-egress by contract, no live market data. This workflow attests the ARITHMETIC over those declared inputs and accrual conventions. It does not establish that the declared inputs are true, does not audit the fund's books, and is not a NAV-error determination. If the inputs are wrong, the receipt faithfully proves the wrong arithmetic. Read the NAV Receipt Guide before handing a receipt to a counterparty.
⚖ Topology: fan-out, not a linear chain. Stage 1's output feeds BOTH Stage 2 (materiality test, primary path) and Stage 3 (expense-ratio check, independent rider) in parallel -- Stage 3 shares Stage 1's declared accrual conventions but does not wait on or consume Stage 2's verdict.
Workflow Topology (fan-out) — Recompute Fund NAV → [ NAV-Error Materiality Test (primary)  |  Expense-Ratio Check (independent rider) ]
§4 Execution Hash · Workflow Definition Anchor
execution_hash:computing…
Workflow Stages · 3 Nodes · Fan-Out
1 ROOT node
Recompute Fund NAV art-373-recompute-fund-nav
Recomputes NAV per share from supplied holdings (quantity × supplied price, multi-currency with supplied FX), accruals under a declared day-count convention, liabilities, and shares outstanding, using fixed-point BigInt money math and a declared rounding mode. The component breakdown and input digests feed forward to both Stage 2 and Stage 3.
MCP Call · recompute_fund_nav
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "recompute_fund_nav",
    "arguments": {
      "fund_id": "FUND-STD-01",
      "valuation_date": "2026-07-18",
      "base_currency": "USD",
      "holdings": [
        {"security_id": "SEC-A", "quantity": 1000, "price": 10.005, "currency": "USD", "fx_rate_to_base": 1},
        {"security_id": "SEC-B", "quantity": 500, "price": 20.02, "currency": "USD", "fx_rate_to_base": 1}
      ],
      "accruals": {
        "income": [{"description": "coupon accrual", "principal": 100000, "annual_rate": 0.05, "days": 30, "day_count_convention": "30/360", "currency": "USD", "fx_rate_to_base": 1}],
        "expense": [{"description": "management fee accrual", "amount": 41.6667, "currency": "USD", "fx_rate_to_base": 1}]
      },
      "liabilities": [{"description": "payable to broker", "amount": 500, "currency": "USD", "fx_rate_to_base": 1}],
      "shares_outstanding": 15000,
      "rounding": {"decimal_places": 2, "mode": "half_up"}
    }
  },
  "id": 1
}
2 PRIMARY PATH node
Test NAV-Error Materiality art-374-test-nav-error-materiality
Compares an erroneous NAV-per-share (e.g. the last-published figure) against the Stage 1 corrected NAV-per-share against a declared materiality policy (the industry half-cent absolute and 1% relative conventions, or the fund's own declared policy). Returns a material/immaterial verdict, affected-period math, and a reprocessing-need indication -- the fund-ops incident artifact that completes the primary NAV-verification path.
MCP Call · test_nav_error_materiality
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "test_nav_error_materiality",
    "arguments": {
      "fund_id": "FUND-STD-01",
      "valuation_date": "2026-07-18",
      "erroneous_nav_per_share": 10.75,
      "corrected_nav_per_share": 10.68
    }
  },
  "id": 2
}
3 INDEPENDENT RIDER · branches from Stage 1 rider
BRANCHES FROM: art-373-recompute-fund-nav  |  NOT sequential on Stage 2
Compute Fund Expense Ratios art-375-compute-fund-expense-ratios
Computes gross and net expense ratios and Total Expense Ratio (TER) from supplied gross expense components -- using the SAME declared accrual conventions as Stage 1 -- and average net assets, applying any declared fee waivers/caps strictly in a declared order. This runs independently of Stage 2: it does not consume the materiality verdict, and Stage 2 does not consume this result.
MCP Call · compute_fund_expense_ratios
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "compute_fund_expense_ratios",
    "arguments": {
      "fund_id": "FUND-STD-01",
      "period_start": "2026-01-01",
      "period_end": "2026-12-31",
      "average_net_assets": 100000000,
      "gross_expense_components": [
        {"description": "management fee", "principal": 100000000, "annual_rate": 0.0075, "days": 365, "day_count_convention": "actual/365"},
        {"description": "admin fee", "amount": 150000},
        {"description": "12b-1 fee", "amount": 100000}
      ],
      "waivers": [],
      "rounding": {"decimal_places": 4, "mode": "half_up"}
    }
  },
  "id": 3
}
Export Workflow Artifact
Download a §4-compliant workflow artifact with execution hash and step definitions. Hash is deterministic over canonical {policy_parameters, output_payload} per RFC 8785/JCS.