Skip to content
This repository was archived by the owner on Mar 12, 2026. It is now read-only.

Commit 62231da

Browse files
committed
Use opaque types in processMortgageFlows defaultRate/defaultLoss
1 parent 5763227 commit 62231da

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

src/main/scala/sfc/engine/markets/HousingMarket.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -289,10 +289,10 @@ object HousingMarket:
289289
val stock = prev.mortgageStock
290290
val interest = stock * mortgageRate.max(Rate.Zero).monthly
291291
val principal = stock / p.housing.mortgageMaturity.toDouble
292-
val defaultRate = p.housing.defaultBase.toDouble +
293-
p.housing.defaultUnempSens * Math.max(0.0, unemploymentRate.toDouble - 0.05)
292+
val defaultRate = p.housing.defaultBase +
293+
Ratio(p.housing.defaultUnempSens * (unemploymentRate - Ratio(0.05)).max(Ratio.Zero).toDouble)
294294
val defaultAmount = stock * defaultRate
295-
val defaultLoss = defaultAmount * (1.0 - p.housing.mortgageRecovery.toDouble)
295+
val defaultLoss = defaultAmount * (Ratio.One - p.housing.mortgageRecovery)
296296
MortgageFlows(interest, principal, defaultAmount, defaultLoss)
297297

298298
// --- Apply flows ---

0 commit comments

Comments
 (0)