Home/AI Orchestration · Model Risk/Part II

Series 2 · Episode 15 · SOLUTION · Hedge · L15

Discounted wealth is the mark

If the replicating account and the posted value disagree, the value is a story and the difference is your model risk

Discounted wealth under Q is the mark; residuals must be honest.

flowchart LR
  W["Wealth process"]:::input --> DQ["Discount under Q"]:::process
  DQ --> M["Q-martingale mark"]:::gate
  M --> R["Residual honesty test"]:::process
  R -->|forecastable| FAIL["Residual fail"]:::risk

  classDef input fill:#CCFBF1,stroke:#0F766E,color:#134E4A,stroke-width:2px
  classDef decision fill:#FEF3C7,stroke:#B45309,color:#78350F,stroke-width:2px
  classDef risk fill:#FEE2E2,stroke:#B91C1C,color:#7F1D1D,stroke-width:2px
  classDef gate fill:#DCFCE7,stroke:#15803D,color:#14532D,stroke-width:2px
  classDef process fill:#E0E7FF,stroke:#4338CA,color:#312E81,stroke-width:2px
  classDef artifact fill:#F5F5F4,stroke:#57534E,color:#1C1917,stroke-width:2px

Simple claim: if the replicating account and the posted value disagree, the value is a story and the difference is model risk. The trench is discounted wealth as the mark.

The problem we left open

Last time the hedge stopped being a number and became a policy: a hashed recombining tree, backward induction under Q, and a local Δ at every node that may only see its own past. CEH-001's toy equity leg valued at 10.71 with a schedule of 0.75 at the root, 0.955 in the up branch, 0 in the down branch.

That gets you a price at inception and a rule for acting. It does not get you through the middle of the trade, which is where marks actually live. Between inception and expiry someone has to post a value every day, and that number is what risk limits, collateral calls, and P&L attribution all consume. Right now that number is produced by a valuation service, and the hedge is executed by a different process, and nothing in the system requires them to agree.

Three production headaches:

So the question for this post is simple. If that is the failure mode, what does a real AI solution look like?

The solution, as one stack

The core idea is a reconciliation identity that the binomial model hands you for free: under a certified hedge, the value of the replicating account and the posted mark are the same object at every date, not just at inception and expiry. So stop treating the mark as an output of a valuation service and start treating it as a claim that the hedging account can falsify daily. Five moves, one stack.

1. Run an explicit wealth process, not just a delta. The portfolio has two legs and a rule connecting them. Hold Δ_n shares at time n; the remainder of wealth X_n sits in the money market. One step later,

X_{n+1} = Δ_n S_{n+1} + (1 + r)(X_n − Δ_n S_n).

That is the self-financing equation, and it says something specific: money moves between the stock leg and the cash leg, and nothing enters or leaves. Every rebalance is a transfer, not a top-up. If your hedging simulation needs an injection to keep tracking, whatever it is proving, it is not that the claim is replicable.

2. Make discounted wealth the martingale you monitor. Divide by (1+r)ⁿ. Under Q, with Δ adapted, X_n/(1+r)ⁿ is a martingale, its conditional expectation one step ahead equals its current value, at every node. This is the health check, and it is two multiplications and a comparison per node per day.

3. Enforce X_n = V_n as a hard identity, not a coincidence. If the hedge is perfect, the account and the claim value coincide at every date, not merely at maturity. That converts an abstract statement about arbitrage into an operational test: roll the certified Δ schedule forward through the states that actually occurred, and compare the account to the posted mark. A mark the replicating account cannot reach is MARK_NOT_REPLICABLE, and it should block promotion the way a failed unit test blocks a deploy.

4. Get the price recursively, by tower, rather than by a special formula. Because discounted wealth is a Q-martingale and equals V at expiry, the value at any date is the discounted conditional expectation of the terminal payoff. The tower property is what makes the one-step recursion of the last post and the one-shot expectation the same computation. Practically: your daily mark and your inception price should come out of the same code path. If they come out of two services with two owners, you have already built the divergence.

5. Declare the residual and test it. Real hedges are not perfect, rebalancing is discrete, the world has more states than the tree, costs are real. So the account and the mark will differ, and pretending otherwise is worse than the gap. Define the residual as account minus mark at each date and put its distribution on a card. Then test it: the increments must be roughly mean-zero under Q and, more importantly, unpredictable from information already available. If the residual correlates with the previous move, with time-to-expiry, or with realized volatility, that is not hedging noise. That is an un-modeled directional position the desk is running without having decided to. RESIDUAL_UNDECLARED fires when the card is missing; a failed correlation test escalates rather than passes.

Put together: explicit self-financing wealth, discounted wealth as a monitored Q-martingale, X = V as a hard identity, recursive pricing by tower, and a residual that is declared and tested rather than absorbed. That is the mark discipline. Valuation still happens. It just has to survive contact with an account.

The example: CEH-001's leg, marked from the account

Same two-period toy. S₀ = 100, u = 1.1, d = 0.9, r = 0.05, K = 100, q = 0.75, V₀ = 10.71, and the certified schedule Δ₀ = 0.75, Δ_u = 0.955, Δ_d = 0.

Start the account at X₀ = 10.71. Buy 0.75 shares for 75.00, leaving the cash leg at −64.29, financed at 1.05.

Roll one step. If the stock goes to 110: 0.75 × 110 − 64.29 × 1.05 = 15.00, the tree's up-node value. If it goes to 90: 0.75 × 90 − 67.50 = 0, the tree's down-node value. Not close, equal.

Continue from the up node. Rebalance to Δ_u = 0.955 shares, costing 105.00 against wealth of 15.00, so the cash leg goes to −90.00. One step more: at 121, 0.955 × 121 − 90 × 1.05 = 21.00, the call's payoff. At 99, 0.955 × 99 − 94.50 = 0. Again exact.

Now the martingale check, which is the daily monitor. Discounted, the account reads 10.71 at the root, then 15.00/1.05 = 14.29 or 0, then 21.00/1.1025 = 19.05 or 0. At the root: 0.75 × 14.29 = 10.71. From the up node: 0.75 × 19.05 = 14.29. The process does not drift. That flatness is the mark's certificate.

Then the part that matters for a real book. Suppose the stock does not go to 110 or 90 but to 108, because the world is not a two-state coin. The account is worth 0.75 × 108 − 67.50 = 13.50. Re-mark the claim from 108 on the same tree world and it is worth 13.43. The residual is +0.07, seven cents on a 10.71 claim, from one rebalance in a world slightly off the mesh.

Seven cents is fine. Seven cents that nobody computed is not, because what you must govern is not this residual but the series of them. If they average near zero and look unpredictable, the model is doing its job and the card should say so. If they lean one way, or grow with realized volatility, the hedge is quietly short gamma and the desk is being paid for a risk it never priced.

Against 1.50 versus 2.10, this is the sharpest tool yet. Each frame now has to produce an account, roll it through the states that actually happened, and show the residual series. A frame whose account tracks the note's obligations with small unpredictable residuals has earned its mark; a frame whose account drifts has not, whatever its narrative. And 1.80 fails immediately and permanently: no Δ schedule produces 1.80, so no account reaches it, so its residual is defined against nothing. The midpoint is not a conservative compromise. It is the one mark in the interval guaranteed to be unreplicable.

The flow in one breath

Problem: the mark and the hedging account are produced by different systems that are never reconciled, so model risk has no number. Solution: run an explicit self-financing wealth process, monitor discounted wealth as a Q-martingale, enforce that the account equals the posted value at every date, price recursively by tower so mark and inception share one code path, and declare the residual with a test for mean-zero unpredictability. Example: CEH-001's leg rolls from 10.71 to exactly 15.00 or 0 and then to exactly 21.00 or 0, and an off-mesh move to 108 produces a seven-cent residual that gets logged rather than absorbed.

Curious how others reconcile posted marks against the replicating account on instruments that rarely trade, and whether their hedging residual is a governed series or a line item called other.

Clearance coupling. Posted mark must equal discounted replicating wealth under the carded measure, within tolerance — else model risk is the residual, and auto-size refuses. Story marks without accounts are journalism.

Dual-frame CEH-001: each frame needs its own account identity; averaging accounts is midpoint peace with a bank statement.

Next. Open S2-16: Density cards before reweighting. Previous: S2-14 (Backward induction as the agent loop). Part II index.