# Capital actions, prices and binding constraints

This is a fictional pricing annex dated 19 September 2026. Its counterparties, contracts, opinions and executable quotes are invented for the educational instance. The public inputs are [numerical-inputs.json](../fixtures/numerical-inputs.json). No quoted price in this annex is represented as an observed market transaction or an IFRS observability conclusion.

The [capital rulebook](capital-rulebook.md) fixes the dated official factors and the selected applicability conditions. This annex fixes contractual prices and the synthetic equity-pricing convention. The Python module derives every exposure, reserve and action value from those inputs. Actual funding draws, securities title movements and the accounting journal are owned by [reserve_ledger.py](../src/reserve_ledger.py) and [reserve-module.md](reserve-module.md).

## Executable terms and timing

An action is available at its stated quote, but it is not effective merely because it appears on a menu. The baseline has no new CSA, consolidation or CDS. An action requires the named documents and execution conditions in [exhibit-fields.md](exhibit-fields.md#fictional-actions). The capital gate is separate from availability of a quote.

| Action | Binding fictional price | Earliest effect | Cash and title consequence |
|---|---|---|---|
| Two-way funding CSA | USD1m execution fee; USD100,000 facility setup; USD50,000 annual fixed commitment fee; USD25,000 annual administration; another 10bp annually on a USD100m committed line | Two business days after the required CSA and enforceability opinion | Full contractual V exchanged as cash VM. Received cash is reusable. Posted VM consumes liquidity. Facility borrowing arises from the collateral cash deficit, not the reserve mark. |
| Substitute deployment collateral | USD1m fee plus 90bp annually on USD1bn until deployment maturity | Two business days after perfected independent-issuer collateral delivery | Custodian releases the sovereign's own pledge and receives the issued Westhaven Bank AAA instrument. Client yield falls by the contractual concession. No principal is paid to the desk as a capital release. |
| Reverse that substitution | USD250,000 fee; the 90bp yield concession ends | Two business days after release/redelivery conditions | Restores the original collateral and yield. Capital rises. The existing full-book capital shortage can block this otherwise positive standalone economic action. |
| Consolidate netting | USD750,000 legal/novation fee | Thirty business days, only when both covered trades and all named opinions are delivered | `FUND_TRS` and `OFFSET_TRS` become one close-out obligation against the same legal P. Their existing economic cashflows continue. Gross accounting assets do not disappear. |
| Buy five-year P protection | USD320m notional, 80bp annual premium, USD250,000 fee, USD25,000 annual administration | Two business days after execution and qualification | Premiums are cash expenses. Default payment is due under the executed CDS. H has a separately documented daily cash-VM agreement. The CDS creates no immediate cash principal. |
| Hold | No transaction fee | Immediate | Existing cash, title and credit exposures continue. The cost is the complete remaining KVA, not zero. |

Business-day execution offsets use the published 250-business-day year: two days are 0.008 years and thirty days are 0.12 years. Funding and deployment schedules use the published quarter-year pricing grid. This timing convention is distinct from dated ACT/365F settlement records.

For capital-action comparisons the first affected quarter is split at execution. Both alternatives are remeasured on the same event grid; there is no relief before execution. The capital charge for each piece is paid at the next original quarter end. CDS expiry and recognition-floor events are additional split points. An action's `without_KVA_on_event_grid` can therefore differ slightly from the unsplit hold profile. Compare it with its own `with_KVA_on_event_grid`, never with a differently sampled path.

`_capital_action(..., events=(), observations=())` separates two clocks. `events` contains genuine additional pricing knots, such as the stated CDS recognition floor and expiry; execution is inserted independently. Together with the original contract quarters, those dates determine beginning-interval capital accrual and its next-original-quarter payment. The keyword-only `observations` supplies reporting dates, not additional accrual knots. `observation_profile` reports sorted unique supplied dates as `elapsed`, `effective`, `without_capital` and `with_capital`, evaluating the actual capital formula and action status at each date without changing any charge, payment or KVA total. Dates outside the priced horizon are rejected.

Density checks hold execution and every genuine pricing event fixed while varying only `observations`. They also check the reported current capital against its independent formula; reporting the previously sampled charge basis instead would be wrong. A changed execution, expiry or recognition event can change the charge contract and must be tested separately. This is the disclosed piecewise beginning-interval desk convention, not a claim that quarterly and finer approximations of a continuous capital integral converge within a chosen tolerance. The earlier D4 failure from passing presentation dates through `events` remains failed evidence; it is not relabelled as a successful convergence test.

Economic funding CVA still defaults only after original funding quarter-end payments. It evaluates the action status at each such date; inserting execution or capital recognition events does not introduce new default dates. Tail CVA and KVA retain that original payment clock, beginning with a first stub after an off-quarter expiry.

The five-year CDS tenor starts at execution. Its coupons are quarterly from execution, and it expires at book year 5.008 under the two-day case delay. `rolloff.elapsed` is time since CDS execution; `rolloff.book_elapsed` is time since the book decision. The familiar fifteen-year naked tail is the immediate-execution twenty-versus-five comparator. The delayed action leaves 14.992 years after expiry and an unprotected initial two-day interval. The year-one CDS replacement quote is one year after CDS execution, with four years remaining. It is not incorrectly labelled the book's exact first anniversary.

## Matching the funding quote before measuring exposure

The sale of U supplies the USD1bn principal. The return-receiver TRS does not advance a second principal. The failed sale leaves U and the financing liability in the statutory balance sheet; the management funding opportunity is not another automatically recognised derivative asset.

For quarter length q, annual nominal OIS r and remaining life h:

```text
D(h; r) = (1 + r*q)^(-h/q)
A(h; r) = (1 - D(h; r))/r
A(h; 0) = h

m = executable base replacement spread + quoted scenario beta * funding move
k = locked contractual financing spread
quoted funding component = N * (m-k) * A_quote(h)
reference price = coupon * A(h; coupon + reference spread move)
                  + D(h; coupon + reference spread move)
old reference cash return = quantity * (current price - actual reset price)
V = quoted funding component + D(next payment) * old reference cash return + stub
```

The base quote is reset to today's reference price. The old reference cash return must therefore be added once. An original-reference quote requires its own explicitly quoted old-reference upfront and `quote_basis=original_reference`; that amount is already in the quoted value, so the engine does not add the price return again. Inconsistent flags, a missing quote, or mismatched contract, provider, reference, currency, N, quantity, maturity, locked spread, schedule or reset convention raises `ReferenceError`. Projecting an inclusive quote through future resets without the required post-settlement replacement quotes also raises. It does not silently reuse an inclusive price or default to zero exposure.

The public quoted annuity uses 4% nominal OIS quarterly. Its required `off_quarter_convention=fractional_remaining_annuity_clean_quote` extends that conversion to fractional remaining quarters. It is an explicit fictional spread-to-upfront quote, not an exact irregular original-coupon valuation or a theorem that all TRSs discount this way. Rolled `funding_mark` observations separately require actual `next_payment_delay` and `unsettled_stub`, including zero; same-day pending settlement is undiscounted. The management opportunity F equals quoted V only in the matched post-reference-settlement base state with consistent margins, rates and zero stub. The source remains fictional and does not by itself pass a day-one accounting observability test.

The marks section prints normal, funding-mark stress, joint stress, 25bp/100bp reference-price shocks and the negative funding-spread liquidity reversal. It exposes the reference return before settlement and the surviving funding value after settlement. U's final ex-distribution price is zero; final principal belongs in its distribution, not a second redemption or an automatically cancelled funding obligation.

## Funding capital and annual KVA

The default-risk exposure is `max(SA_CCR_EAD - incurred_CVA, 0)`. The canonical recognised incurred-CVA input is explicitly zero. Management CVA is not deducted as if it were a recognised CRE51.12 write-down. A user-supplied positive recognised-incurred-CVA branch changes default-risk exposure but never the EAD used by CVA capital.

The engine uses the rulebook's credit-only SA-CCR baseline:

```text
SD(h) = max((1-exp(-0.05*h))/0.05, 10/250), for h > 0
MF_unmargined = sqrt(min(max(h, 10/250), 1))
MF_margined = 1.5 * sqrt(MPOR/250)
AddOn = reference SF * N * SD * MF
RC = max(V-C, 0), also subject to TH+MTA-NICA for a margined set
PFE = multiplier * AddOn
EAD = 1.4 * (RC+PFE)
```

Full VM does not set the multiplier to zero. The multiplier is one at `V=C`; the margin benefit comes from RC and the selected 20-business-day maturity factor. The margined EAD is capped by the independently recalculated unmargined comparator for the same terms.

The supplied MPOR is checked against explicit netting-set facts, not accepted merely because it is positive. The funding and H sets separately attest daily remargining, hard-to-replace terms, fewer than 5,001 transactions and no qualifying repeated disputes. Their 20-business-day inputs satisfy the applicable [CRE52.50–51](https://www.bis.org/committees/bcbs/basel-framework/standard/cre/52/inforce/2023-01-01/published/2020-06-05#52.50) floor. Central clearing is not implemented; changed remargining, illiquidity, size or dispute facts must still satisfy their derived floor.

BA-CVA has a different maturity rule:

```text
M_NS = max(1 year, remaining transaction maturity)
DF_NS = (1-exp(-0.05*M_NS))/(0.05*M_NS)
SCVA_P = (5%/1.4) * sum_over_P_netting_sets(M_NS * EAD_NS * DF_NS)
K_reduced = sqrt((0.5*sum(SCVA))^2 + 0.75*sum(SCVA^2))
CVA capital = 0.65 * K_reduced
```

MAR50 removes the ordinary five-year cap for exposure maturity, not CRE32's one-year floor. The floor still applies in the last three quarterly observations of the original twenty-year TRS and five-year CDS. SA-CCR supervisory duration continues to use actual reference h. The single-name hedge term SNH uses actual remaining hedge maturity under MAR50.23, not the exposure floor. The three tenors are not interchangeable.

`funding_profile` publishes each capital observation on the original funding quarter clock and an annual subset including scheduled maturity. An off-quarter remaining tail has a first stub to the next original quarter end. It computes remaining CVA and KVA recursively without supplying an exposure path:

```text
K_funding(t) = CCR capital(t) + CVA capital(t)
KVA(t_i) = D(delta_i) * [10% * delta_i * K_funding(t_i) + KVA(t_(i+1))]
```

The scalar is a disclosed all-equity desk charge. It is neither an official Basel cost of equity nor the entire bank's incremental capital. The canonical normal, +100bp mark-only, joint-spread, year-one roll, year-one spread stress and margined profiles appear under `funding`. At year five fifteen years of the original funding contract survive. A scheduled terminal zero in this component is not evidence that a disputed settlement claim has been paid.

The separate `dual_driver_countercase` requires its explicit fictional classification annex. For the same V, C, reference period and maturity factor it adds the credit add-on and the 0.50% IR add-on. The single currency's effective IR notional sits in the residual-maturity bucket; it does not diversify against the credit class. The output prints credit-only and dual EAD in unmargined and margined normal/stress states, plus the isolated V=0 factor comparison. It does not change the credit-only baseline by inference from the product label.

## Net NPV definitions

Let `KVA_without` and `KVA_with` be the two complete paths on the same action event grid, and define:

```text
S_K = KVA_without - KVA_with
S_CVA = valuation CVA_without - valuation CVA_with
PV_fixed = sum D(payment time) * fee
PV_running = sum D(next quarter end) * annual quoted charge * interval
```

A positive NPV is a benefit relative to holding the identical opening position or portfolio. Each result retains the individual costs, the full interval capital profile and the exact execution time. A reserve's decline is counted once. An expected KVA roll-down is already priced and is not an extra action profit.

### Two-way CSA

```text
VM_call = max(-V_at_execution_under_negative100bp_move, 0)
buffer_used = min(VM_call, 20m)
facility_draw = max(VM_call - buffer_used, 0)

annual fees = 50,000 + 25,000 + 100m * 0.001
facility gross interest = draw * (OIS + 0.015) * 30/365
buffer opportunity cost = buffer_used * OIS * 30/365
VM interest received = VM_call * (OIS + collateral remuneration spread) * 30/365
net liquidity cost = gross interest + buffer opportunity cost - VM interest received

NPV_CSA = S_K + S_CVA - PV(1m + 100,000) - PV_running - PV(net liquidity cost)
```

The deterministic liquidity scenario has weight one, explicitly a stress cost rather than an empirical probability. Its static immediate-execution VM comparator is about USD96.054361m, leaving USD76.054361m beyond the separate USD20m liquidity buffer. The executed action reprices at day two rather than copying those static numbers. The gross facility OIS interest, the cash buffer's lost OIS and VM remuneration are all printed; only their net plus unsecured spread is the economic carry cost. Ignoring them separately would conceal why OIS cancels under equal remuneration.

The line has a USD100m limit, which the cash call must satisfy. No cash is generated merely by releasing capital. The base book's management reserves created no exposure-prefunding borrowing, so `actual_base_UFVA_released` is zero. The independent opt-in exposure-deposit UFVA experiment must not be added as another CSA cash saving.

The normal and joint-stress CSA results have separate capital/CVA savings. Both carry the adverse liquidity scenario. Lower capital can therefore coexist with worse cash liquidity. CSA alone need not cure the full book's initial capital shortage.

### Substitute eligible collateral and reverse it

The before-state is the sovereign's own B-rated security. Recognition fails independently on issuer correlation and issue quality. No haircut can turn that instrument into eligible received collateral for this banking-book exposure.

The replacement is an issued, independent AAA other-issuer bond with five years remaining and daily valuation. Its ten-day supervisory haircut starts at 4%, scales by the square root of 20/10 for secured lending, then steps to the three-year and one-year rows as the collateral rolls down.

```text
E_star(t) = max(0, deployment exposure - C_market(t) * (1-H_scaled(t)-H_FX(t)))
K_deployment(t) = 8% * RW_deployment * E_star(t)
NPV_substitute = S_K - PV(1m) - PV(0.009 * 1bn per year until year five)
NPV_reverse = reversed S_K + PV(restored 0.009 * 1bn yield) - PV(250,000)
```

For the instantaneous, no-delay comparator, the accepted parameter formulas give unsecured deployment KVA about USD36.091106m and AAA collateral KVA about USD1.559396m. The corresponding capital saving is about USD34.531710m against about USD41.602494m fee-plus-yield cost, a roughly USD7.070784m loss. Reversing an already executed substitution recovers yield and loses that capital saving, giving about USD5.820784m before changing the execution clock. Those values are not the delayed action NPVs. The CLI derives the exact two-day event-grid values under `actions.substitute.net_NPV` and `.reversal.net_NPV`.

This example establishes the economic distinction without pretending every profitable reversal is currently allowed. Reversal increases the required capital and can fail the bank's capacity gate. The 49-to-50-lot allocation move below supplies a separate feasible capital-up/economics-better action under its own fully stated capital budget.

### Enforceable same-provider netting

`OFFSET_TRS` is an actual opposite return trade, not a negative exposure row supplied to the model. It has USD500m notional, the same reference U, provider P and twenty-year maturity. Its independently fictional matched executable quote is a USD50m negative upfront at inception. The quoted conversion implies a constant spread:

```text
k_offset = quoted upfront / (N_offset * A20)
V_offset(t) = N_offset * k_offset * A_remaining(t)
```

Before consolidation, the two sets' EADs are calculated separately. Their SCVA terms are summed within P before BA portfolio aggregation. After consolidation, V sums and same-reference signed effective notionals offset, but only after the opinion becomes enforceable. The BA maturity is the netting set's notional-weighted remaining maturity, still subject to its ordinary one-year floor. No P/H cross-counterparty netting is allowed.

```text
NPV_netting = same-two-trade S_K + same-two-trade S_CVA - PV(750,000 at day 30)
```

The instantaneous normal reference calculation has approximately USD137.253451m separate EAD versus USD28.006762m combined EAD. The source result prints both. Its lifetime economic gain includes the thirty-day wait and the fee. Comparing the consolidated two-trade portfolio with a one-trade hold baseline would fabricate relief.

Legal costs are paid; received collateral or trading cashflows are not manufactured. A missing opinion or different provider fails the proposed consolidation instead of selecting cheaper arithmetic.

### Buy P protection, with or without CVA designation

CCR recognition follows its own gates. The eligible, irrevocable, unconditional, same-currency five-year CDS provides guarantee-equivalent protection directly on the identified P funding obligation, with the required credit events, grace periods, no-senior reference obligation and same-obligor cross-default link, enforceable rights and timely robust independently determined cash settlement. The supplied recognition facts are fictional evidence, not conclusions inferred from ratings. Its seller H qualifies independently of U. Only a strictly lower H risk weight receives substitution relief; otherwise protected exposure for default-risk substitution is zero while H's economic and CVA risks remain.

```text
T = min(5, remaining protected exposure)
t = min(T, remaining CDS protection)
P_a = P * (t-0.25)/(T-0.25), when the mismatch qualifications hold
protected = min(default exposure, P_a)
CCR RWA = protected * RW_H + (default exposure-protected) * RW_P
```

At CDS inception the factor is one despite the long funding tail. After one year of CDS life, USD320m becomes USD252.631579m recognised P_a; after four years it becomes USD50.526316m. At 4.75 years it becomes zero. This adjustment changes default-risk weighting, not EAD or the contractual protection payout.

Full BA-CVA uses actual designated protection:

```text
SNH_P = RW_CVA_P * N_CDS * actual_remaining_CDS_M * DF_CDS
K_hedged = BA_aggregate([SCVA_P-SNH_P, SCVA_H])
Capital_full = 0.65 * [0.25*K_reduced + 0.75*K_hedged]
```

The hedge directly references P, so proxy HMA is zero. Under the explicitly selected `hedge_provider_CVA_method=desk_annex_normal_saccr` desk method, H's normal SA-CCR EAD, including its 20-business-day VM exposure, enters `SCVA_H`. This is a disclosed convention for H's CVA treatment, not a claim that CRE51.16's separate purchased-protection CCR exception by itself prescribes that CVA method. The exception does not authorise silently deleting seller risk. The engine never adds isolated counterparty relief figures as if BA aggregation were linear.

Without eligible designation, SNH is zero and H remains in the reduced-BA portfolio. The unrecognised hedge also bears the public USD500,000 synthetic trading-book capital allocation, priced at the same 10% hurdle until expiry. That allocation is explicitly a desk stress-capital quote, not an invented MAR10-40 regulatory calculation or proof of market-risk permission.

The module reports two useful NPVs:

```text
capital_only_net_NPV = S_K - full promised premium PV - fee PV
                       - administration PV - provider CVA - undesignated market-risk KVA

net_NPV = S_K + expected CDS payout PV - expected premium PV - fee PV
          - administration PV - provider CVA - undesignated market-risk KVA
```

The first asks whether capital savings alone pay for the hedge. The second includes credit protection's economic cashflows under the disclosed flat `hazard=CDS/(1-recovery)` and end-quarter default convention. Premiums accrue for the current interval before a default at its end. Expected cashflows are conditional on survival to the delayed execution. The independent daily-VM seller-risk adjustment prices H's specified spread-gap exposure; no H/P netting or magical provider-risk removal occurs.

`expected_underlying_loss_covered_PV` identifies the portion of expected payout attributable to the funding receivable's loss. `overhedge_payout_PV` exposes the balance from purchasing fixed-notional protection above that loss. Their sum is the CDS payout; the engine does not add the covered-loss reduction again as another CVA benefit. It does not call the fixed-notional CDS a perfect dynamic exposure hedge.

There is no renewal assumption. The output contains the remaining tail CVA, KVA at expiry, first-two-day gap and every recognition rolloff state. The quoted year-one clean hedge mark is separately available for actual reserve attribution, without pretending it is cash or adding it to expected-payout NPV a second time.

### Hold

`actions.hold.normal_KVA` and `.stress_KVA` are the full twenty-year standalone funding costs. Incremental NPV versus hold is zero by definition, while the charged capital cost is not. Scheduled amortisation and release remain ordinary priced income under the reserve policy. No capital redemption receipt appears in the cash ledger.

## Collateral and the client price

The collateral curve chain is computed rather than represented by labels:

```text
reference credit move
  -> coupon/yield bond price
  -> quantity * price
  -> separately observed rating and residual-maturity haircut row
  -> eligibility/correlation/rights gate
  -> haircut-adjusted mitigation * applicable collateral maturity factor
  -> E_star -> RWA -> capital -> discounted KVA
  -> required client capital spread = KVA / (N * deployment annuity)
```

A curve move does not mechanically produce a rating action. The fixture deliberately supplies separate rating events. `AAA_widening` changes market price; `BBB_same_price` changes the haircut at the identical market price; `BB_eligibility_cliff` removes banking-book eligibility at that same price. The market value can remain continuous while the capital output jumps.

Collateral pricing and haircut buckets use the collateral's own remaining maturity, rolled down from its separately supplied initial residual life. CRE22.47 then applies the CRE22.10–14 maturity-mismatch adjustment to haircut-adjusted eligible value. Neither substitution nor the comparison inherits the loan's maturity as a replacement for its own terms. An explicit live claim at scheduled loan maturity retains its unsecured exposure; this capital routine does not invent repayment or collateral reinvestment.

`collateral_chain.states` prints all links, each full quarterly capital profile, and the capital-cost spread in both decimal and basis points. The market haircut and market financing spread are independent public quotes. They are not set equal to the supervisory haircut and do not borrow seven-day empirical levels for the five-year transaction.

On the funding leg, an AAA reference spread increase reduces the pending total-return value while the jointly quoted replacement funding margin can increase funding value. `marks.reference25bp` and `marks.reference100bp` expose the partial natural offset and its failure to be exact. On deployment, the EM curve is independent of that AAA/funding process; `deployment_fair_value_loss` comes from the EM credit-price equation, not an own-funding sensitivity imposed on the loan.

## Whole-book capital and leverage

The same public opening book is used before and after an action. U is retained at USD1bn with the explicitly selected AAA-bank default RW of 20%. The B-sovereign deployment is USD1bn at RW 100% before recognised mitigation. OIS reinvestment is cash with the selected zero RW. The initial USD100m cash/equity falls to USD99m after the separate USD1m day-one service fee. There is no automatic equity top-up.

```text
risk requirement = K_retained_U + K_deployment + K_cash
                   + funding CCR capital + funding CVA capital + specified other capital
L = continuing accounting assets + derivative leverage exposure + written credit notional
required desk equity = max(risk requirement, 3% * L)
available = explicitly supplied Tier1_before_AVA - explicitly supplied AVA
capital shortfall = max(required - available, 0)
```

The baseline written-credit notional is USD1bn under the fictional classification letter. The stated LEV30.35 election excludes that same unoffset written-protection portion from PFE, not from RC or written notional. A five-year P CDS cannot offset the twenty-year written exposure on U. Neither the reference name nor the full-tenor condition matches.

`wholebook_capital(parameters, balances, funding_row)` requires all actual balance fields, the remaining funding row, recognised deployment E_star, Tier1 and AVA. It does not read or generate a cash ledger. ReserveLedger can apply it to each actual beginning/closing balance and integrate a full-book max path without duplicating capital formulas.

The actual base field `leverage.actual_base_after_day1_fee` uses zero AVA because the separate USD0.6m valuation-uncertainty example is not automatically an AVA on U. The controlled leverage snapshots deliberately apply that stated USD0.6m AVA to the same named comparison and show their scope. No unexplained USD90m whole-book risk requirement remains.

The unmitigated base is capital deficient under this minimum-only desk allocation. It is a calculable existing-book/counterfactual cash path, not an approved new booking. CSA can reduce capital without curing the shortage. Eligible substitution reduces the deployment requirement enough for the leverage denominator to bind in the controlled snapshot. Its standalone NPV and its difference in whole-book maxima are different quantities.

The repo comparator keeps U, deployment and the same cash uses. As cash borrower posting par U for a par advance, its current SFT gap is zero; it does not invent a reverse-repo loan asset. The separate repo contract is not assigned the legal TRS's written-credit amount. This explicit classification comparison is not a universal claim that one form always dominates the other.

## Allocation certificate and feasible capital increase

S3 is a seven-day funding episode with all 52 indivisible lots. `L1` and `L2` are USD120m and USD110m. `S01` through `S50` are USD0.8m each, each with a distinct issuer. Each lot names its issuer kind, issue rating or equity status, residual maturity, currency, correlation, rights, liquidity availability and ten-day regulatory haircut. The engine checks the haircut against those attributes; omission does not trigger a default AAA rating.

The objective is independently recalculated for each actual assignment:

```text
cash_i = V_i * (1 - market_haircut_lender)
borrower_E_star_i = max(V_i * (1 + regulatory_haircut_i) - cash_i, 0)
capital_i = 8% * lender_RW * borrower_E_star_i
cost_i = 7/365 * [cash_i * lender_spread
                 + (V_i-cash_i) * own_unsecured_spread
                 + capital_i * equity_hurdle]
```

The two market quotes and each issuer-concentration rule are separate. Div requires at least forty issuers, at most 5% per issuer and no more than USD40m in the pool. Both large positions are therefore forced to Tol. The optimizer verifies that all small lots have equal economics and distinct issuers before reducing the search to counts. It then evaluates complete 52-row assignments for every count from zero to fifty, including funding, concentration, available-title and capital constraints.

The resulting exact feasible optimum is all fifty small lots at Div and both large lots at Tol. Under the conservative base-weight election its formula values are USD232.3m cash, approximately USD1.010360288m capital and USD45,953.293703 cost. The forty-nine-small-lot alternative raises USD232.244m, consumes about USD1.007004998m and costs USD46,003.779448. It remains within the USD2m budget and funding minimum. Moving the last small lot to Div therefore increases required capital by about USD3,355.29 but reduces cost by about USD50.485745. The evaluator does not accept an `optimal` flag or candidate totals as proof.

The 20% Tol and 50% Div RWs are an explicit conservative election to use CRE20.18 base weights without optional CRE20.19 short-term relief. They are not asserted to be mandatory seven-day minimums. `allocation.short_term_countercase` recomputes the same full assignments with the published optional 20%/20% weights.

If a lot ceases to be identical, an issuer repeats, or the large-lot-forced premise fails, the specialized optimizer raises `ReferenceError` rather than claiming a false certificate. `evaluate_allocation` still checks submitted complete assignments directly. Missing/duplicate/unknown IDs, partial assignment, lender constraints and double pledges are rejected independently of the objective. The safe-versus-equity haircut/volatility ratios are disclosed separately and do not claim to disprove nominal haircut monotonicity.

## Public module API and diagnostics

All functions take the parameter dictionary explicitly. Importing `src/numerical_fixture.py` performs no fixture-file read and keeps no global parameter object. Decimal results become exact decimal strings only at the CLI boundary.

```python
compute_core(parameters) -> dict
funding_mark(parameters, h, funding_move, reference_credit_move, last_reset_price) -> dict
funding_profile(parameters, h, funding_move, provider_cds,
                margined=False, cds_notional=Decimal(0), designated=False,
                *, cds_remaining=None) -> dict
funding_capital(parameters, h, funding_move, margined, provider_cds,
                cds_notional=Decimal(0), cds_remaining=Decimal(0), designated=False) -> dict
wholebook_capital(parameters, balances, funding_row) -> dict
evaluate_allocation(parameters, assignment) -> dict
optimize_allocation(parameters) -> dict
```

`discount`, `annuity`, `reference_price`, `deployment_price`, `saccr`, `ba_scva`, `protection_factor`, `collateral_state`, `deployment_profile` and `conditional_ufva` are reusable parameter-first helpers. A surviving CDS profile can pass its actual residual tenor with `cds_remaining`; it must not restart a five-year hedge at a later observation.

| Output path under `compute_core` | Meaning |
|---|---|
| `funding.normal`, `.mark_stress`, `.joint_stress`, `.year1_roll`, `.year1_stress`, `.CSA` | `CVA`, `KVA`, `initial`, full `quarterly` and `annual` profiles. Each row includes V, EAD, CCR/CVA capital, BA M/DF, and `KVA_remaining`. These are post-reference-settlement funding profiles. |
| `marks.<scenario>` | Full pre-price-settlement V, funding opportunity F, quoted funding component, pending reference return, pre-settlement SA-CCR and EM price loss. |
| `sensitivities` | Quarterly/continuous annuity comparison, funding and five-year allocation FDV01, mismatch FDV01, same-scenario marginal KVA and conditional-UFVA ratios. |
| `conditional_UFVA.UFVA` | Opt-in external OIS-deposit funding cost, not actual borrowing from a noncash reserve. |
| `actions.CSA.normal` and `.stress` | Execution-grid KVA/CVA savings, all facility/VM costs, liquidity feasibility and net NPVs. |
| `actions.substitute` and `.reversal` | Execution-grid collateral changes, yield price and net NPVs. |
| `actions.netting.normal` and `.stress` | Identical two-trade P portfolio, legal delay, CVA/KVA savings and net NPV. |
| `actions.CDS.normal_designated`, `.stress_designated`, `.stress_undesignated` | Full CDS economics, normal H exposure, protection rolloff, tail and designation consequences. CDS stress here is the same +100bp funding-mark scenario with the initial P hazard, so designation comparisons hold credit calibration fixed. |
| `actions.CDS.hedge_mark_year1` | `quote_id`, `base`, `stressed` at one year after CDS execution. |
| `collateral_chain` | Complete collateral-credit-price-rating-recognition-capital-client-spread chain. |
| `leverage` | Full-book risk/leverage maxima, fee-reduced available equity, failed base booking gate and eligible-substitution binding-leverage comparison. |
| `allocation` | `optimum`, `feasible49`, every count's full-constraint frontier, lower-bound proof and optional short-term RW countercase. |
| `dual_driver_countercase` | Explicit classified credit-plus-IR comparison, not the default allocation. |
| `year5_reset` | Reference-only reset versus a separately paid full-value re-strike; surviving fifteen-year reference duration remains visible. |

Run the CLI from R, the organized bundle root containing `requirements.txt`:

```text
python3 src/numerical_fixture.py
python3 src/numerical_fixture.py --parameters fixtures/numerical-inputs.json --section actions
```

From another working directory, use `python3 "$R/src/numerical_fixture.py" --parameters "$R/fixtures/numerical-inputs.json" --section actions`, with R set to the absolute bundle path. The numerical CLI does not accept `--root`.

It emits JSON diagnostics and exits zero when computation completes. Missing or inconsistent reference data emits a `reference_error` to stderr and exits two. It is not a report grader or a JSON-schema validator. `validate_bundle` and the independent report grader retain those jobs.

The model's conditional +100bp exposure-prefunding experiment uses the exact beginning-quarter target integral `I=sum D(end)*delta*N*A(remaining_start)`. Its UFVA is `I*x*(0.005+x)`, approximately USD17.958836372m at x=1%, rather than the prompt's USD14.5m order-of-magnitude estimate. The actual book still needs cash-ledger evidence before reporting borrowing. The normal and stressed standalone KVA values, their marginal difference, and their ratios to that conditional UFVA all print from the same scenario; no obsolete incurred-CVA-deducted KVA anchor is reused here.

## Source boundary

The official formulas are CRE51.12 for incurred CVA, CRE52 for SA-CCR and driver allocation, CRE22 for collateral and protection, MAR50 for CVA capital, CRE20 for bank RWs, and LEV30 for leverage treatment. Use the precise effective/update versions in [capital-rulebook.md](capital-rulebook.md#1-dated-official-source-register), including its current links to [CRE52](https://www.bis.org/committees/bcbs/basel-framework/standard/cre/52/inforce/2023-01-01/published/2020-06-05), [CRE22](https://www.bis.org/committees/bcbs/basel-framework/standard/cre/22/inforce/2023-01-01/published/2020-11-26), [MAR50](https://www.bis.org/committees/bcbs/basel-framework/standard/mar/50/inforce/2023-01-01/published/2020-07-08), [CRE20](https://www.bis.org/committees/bcbs/basel-framework/standard/cre/20/inforce/2023-01-01/published/2025-06-10) and [LEV30](https://www.bis.org/committees/bcbs/basel-framework/standard/lev/30/inforce/2023-01-01/published/2020-03-27).

Quote margins, fees, execution calendars, hazard illustrations, reference bond pricing, risk-neutral versus deterministic scope, the 10% equity charge and capital-quality allocation are named fictional assumptions. No national regulatory permission, complete bank compliance result, executable real-world trade or production evaluator installation is claimed. Workers did not run validations or experiments; Main owns the numerical and integration evidence for this completed source artifact.
