nx_hardship_nav.nx
buildroot/runtime/nx_hardship_nav.nx
about
nx_hardship_nav.nx -- the HARDSHIP / RELIEF module (operator's explicit emphasis; where sit_priority=0 routes).
Computable, verifiable eligibility + impact math for the relief paths: bankruptcy means-test (11 USC 707(b)),
PSLF/IDR loan forgiveness tracking, and forbearance interest-accrual impact. Integer-exact (cents/bps/months).
DOCTRINE: these are REGULATED. This is decision-SUPPORT + eligibility screening + draft-prep ONLY -- a licensed
attorney / advisor signs. hn_requires_professional() = 1 always for these paths. license_tier: ORIGINAL
dependencies 1 imports · 1 importers
imports: nx_syscalls.nx
imported by: nx_hardship_nav_gate.nx
structs
| none |
consts
| 7 | const PSLF_MAGIC_10000: i64 = 10000 |
| 8 | const PSLF_MAGIC_120000: i64 = 120000 |
| 10 | const PSLF_REQUIRED_PAYMENTS: i64 = 120 // 120 qualifying payments (34 CFR 685.219 -- PSLF) |
| 12 | const MT_CH7_OK: i64 = 0 // below median OR low disposable -> Chapter 7 available |
| 13 | const MT_NEEDS_ANALYSIS: i64 = 1 // between thresholds -> depends on unsecured debt (further analysis) |
| 14 | const MT_PRESUMED_ABUSE: i64 = 2 // high disposable -> presumption of abuse -> steered to Chapter 13 |
functions
| 17 | func hn_annualize(monthly_cmi: i64) -> i64 { return monthly_cmi * 12 } called by 1: main |
| 19 | func hn_below_median(annual_cmi: i64, state_median: i64) -> i64 { if annual_cmi <= state_median { return 1 } return 0 } |
| 21 | func hn_disposable_monthly(cmi_monthly: i64, allowed_expenses_monthly: i64) -> i64 { return cmi_monthly - allowed_expenses_monthly } |
| 23 | func hn_presumption(disposable_monthly: i64, low_60mo: i64, high_60mo: i64) -> i64 |
| 31 | func hn_ch7_screen(annual_cmi: i64, state_median: i64, cmi_monthly: i64, allowed_monthly: i64, low_60mo: i64, high_60mo: i64) -> i64 |
| 37 | func hn_pslf_remaining(qualifying: i64) -> i64 { let r: i64 = PSLF_REQUIRED_PAYMENTS - qualifying; if r < 0 { return 0 } return r } called by 1: main |
| 38 | func hn_pslf_complete(qualifying: i64) -> i64 { if qualifying >= PSLF_REQUIRED_PAYMENTS { return 1 } return 0 } called by 1: main |
| 39 | func hn_pslf_progress_bps(qualifying: i64) -> i64 called by 1: main |
| 44 | func hn_idr_remaining(qualifying: i64, plan_months: i64) -> i64 { let r: i64 = plan_months - qualifying; if r < 0 { return 0 } return r } called by 1: main |
| 48 | func hn_forbearance_cost(balance: i64, apr_bps: i64, months: i64) -> i64 |
| 52 | func hn_forbearance_balance(balance: i64, apr_bps: i64, months: i64) -> i64 { return balance + hn_forbearance_cost(balance, apr_bps, months) } |
| 55 | func hn_requires_professional() -> i64 { return 1 } called by 1: main |