CFDL

Credit: Fannie Mae REMIC at 0% PSA

Group 3 of a Fannie Mae REMIC with the mortgage loans never prepaying — the supplement's own alternative collateral of new 7.50% thirty-year loans, amortizing on schedule for thirty years.

Every number below is checked against an independent reference implementation on every commit — period by period, and on each metric, inside a declared tolerance. See benchmark methodology.

The case

No prepayments at all — and not the deal's own loans. For this column the supplement swaps the collateral for its stated alternative: new loans with 360-month original and remaining terms at 7.50%, so the pool amortizes on pure schedule for thirty years and the strip to the 5.00% pass-through is 2.50% rather than 0.451%. The class takes until January 2049 to retire, and the table publishes a value in every one of the thirty years.

The deal is Security Group 3 of Fannie Mae REMIC Trust 2019-2: a $148,372,434 pass-through with the coupon stripped between a principal class and a notional interest-only class. fnma_remic_2019_2_g3 ships the 198% pricing speed, with the 100% to 1000% columns as its scenarios, and carries the deal's full description; this case moves the prepayment assumption to 0% PSA and asserts the decrement column the supplement publishes for it.

The reference

The same table as the base case: the Prospectus Supplement dated 24 January 2019, page S-14, which publishes for Classes AB and IO the percent of original balance outstanding after each January's distribution at seven prepayment speeds, with a weighted average life for each. This case takes the 0% PSA column. See the base case's SOURCE.md.

What it exercises

The same model as the base case with one term changed, and for 0% PSA the collateral itself: the supplement prepares this column on new 7.50% loans with 360-month original and remaining terms, so the case also exercises a 2.50% servicing and guaranty strip against a thirty-year schedule. What the seven cases prove together is stronger than any one alone: a convention error in the prepayment curve, the seasoning ramp or the payment timing that hides under one column's whole-percent rounding has to hide under all seven columns and seven published weighted average lives simultaneously.

The result

180 asserted values, every one within the half-percent floor the table's whole-percent rounding sets. Worst balance disagreement 0.489 percentage points against the 0.5 floor.

Class AB weighted average life20.2141, published 20.2
Residual to Classes R and RL0.0000000000, every period
Principal returned to AB148,372,434.00 against an original of 148,372,434

The class's weighted average life is folded from the principal the waterfall pays it (wal) and asserted at ±0.05, the print floor of a figure published to one decimal. The deal distributes on the 25th, and the waterfalls say so, so each payment sits on the day the supplement measures to.

The delta

The strip identity — 3.25% to AB plus 5.00% of the notional balance reconstructing the 5.00% pass-through — holds to ten decimal places at this speed as at every other, which is what makes the residual assertion exact while the balances carry the table's rounding.

Everything structural — the no-losses guarantee, the compositional boundary that keeps Groups 1 and 2 out, the one-line waterfall — is as the base case states it.

Run configuration

{"deterministic":{"annual_discount_rate":0.045}}

Verified results

Checked period by period: 6 series across 60 periods180 values in all, each within the tolerance shown.

  • domain.credit.principal_paid_to_date — within ±741862.17
  • asset.ab.balance — within ±741862.17
  • asset.io.balance — within ±259651.76
  • g3.interest.ab_interest — within ±2009.21
  • g3.interest.io_interest — within ±1081.88
  • g3.interest.residual — within ±0.01

Summary metrics for the base run:

MetricValueTolerance
domain.credit.principal148,372,434±0.01
domain.credit.wal_years20.2±0.07
model.total298,443,458.45±1
metric.ab_wal20.2±0.05