Reads loan data, evaluates policy rules, and tells the UI and vendors what to do next.
Each subsystem owns a distinct phase of the decision lifecycle.
The decision engine routes, loads, and evaluates.
Build input, load policy, evaluate, cache, and dispatch.
The engine freezes all borrower, loan, and property data into a single immutable input.
Named codes map borrower data to policy rules.
First check if the requirement applies, then check if it's satisfied.
when guard?
satisfied_when?Unsatisfied requirements get a resolution strategy.
class EvalReqResult: code: SatisfyCodesEnum applies: Tri satisfied: Tri missing: frozenset[FieldEnum] strategy: StrategyTypes | None ui: UIResult | None # deprecated
Strategies either request documents or order vendor work.
Queued, prepped, ordered, and re-evaluated on completion.
This deck covered the evaluation core. Related deep dives: