How policy files define what the decision engine enforces
Each company folder holds a dispatch file, manifests, and shared definition files
Each manifest stage links to a definition file and optional pricing
Satisfy code + gate predicate + auto-satisfy logic + remediation strategy
1- satisfy_code: coborrower_info_present 2 when: # only applies if true 3 type: coborrower_exists 4 satisfied_when: # auto-satisfied if all pass 5 type: all 6 all: 7 - { type: has_value, field: coborrower_dob } 8 - { type: has_value, field: coborrower_ssn } 9 strategies: # automation when unsatisfied 10 - strategy: { type: order_credit, method: meridianlink_soft_pull } 11 when: { type: has_value, field: borrower_ssn }
Every when and satisfied_when expression is built from typed predicates
Complexity grows as the loan moves through the pipeline
Adding a new requirement, guarding against duplicates, and gating on borrower context
The three layers that define every lending rule