EligibilityCellMatcher single-dimension reason-code attribution (ECOA specificity)

Featurekamo-shared-library
Ya
27 Juni 2026, 17:10 UTC
Mwandishi
Kamo
Ahadi ya
1e22ab0

Closes the reason-code reachability gap the PriceAssemblyEngine review flagged: a cell miss on EXACTLY one containment dimension now becomes INELIGIBLE with its specific ECOA principal reason (FICO_BELOW_MIN / STATE_NOT_ELIGIBLE / PROPERTY_TYPE_NOT_ELIGIBLE / UNITS_NOT_ELIGIBLE / **************** instead of collapsing to generic NO_COVERAGE — making the 9 unreachable CELL codes reachable. Multi-dimensional / ambiguous misses, and numeric catalog gaps (FICO above a ceiling or between bands; a loan amount between disjoint bands), correctly stay NO_COVERAGE (a §6.6 coverage defect, never a borrower denial). Pure substrate — no live service consumes the matcher yet; no schema change, no KamoInitializer run. - EligibilityResult: carries the principal MlosAdverseActionReasonCode (the matcher owns it — only it holds the dimensional context). The reason-less 2-arg ineligible factory is REMOVED so reasonCode is null iff ELIGIBLE — the MlosPricedProductResult @PrePersist invariant holds by construction for any factory-built result. - EligibilityCellMatcher: failedDims + relax-one-dimension attributeNoCoverage; direction (BELOW/ABOVE/GAP) computed ONLY over the sole-on-that-dimension failers (not the whole matrix) so a too-large loan on disjoint bands is never mislabeled BELOW_MIN, and a FICO above-ceiling/gap is a coverage gap, not a false "score too low". Substrate contract documented: one true disqualifier; the LOE-Core consumer re-attributes the up-to-4 NOAA reasons. - PriceAssemblyEngine: additive reasonOr(cell, fallback) — prefers the matcher's owned code; cellReasonCode(matrixType) kept as the defensive raw-result fallback. 2-agent adversarial review → FIX_THEN_SHIP; applied both must-fixes (loan-amount & FICO direction mislabels, each proven with a worked example) + should-fixes (totalize the record invariant; substrate-contract + direction docs). 19 matcher + 33 engine tests green (89 catalog tests green).

Mabadiliko yote

Je, unaona nini kuhusu usafiri?

Kila moja ya hizi updates ardhi katika nafasi yako ya kazi moja kwa moja. Kuanza bure na kuangalia kukua wiki baada ya wiki.

Kuwa Huru MileleMtazamo wa bei