--- title: "Register a Policy Decision Workflow" description: "Register a Policy Decision Workflow that chains rules and blocks into a decision." ---
| Block Type | What It Does | How Many Allowed |
|---|---|---|
| Application Decision | Define rule-based logic to approve, deny, or send applications for manual review based on criteria such as FICO score, DTI, and bureau data. | Multiple |
| Offer Creation | Configure the parameters for generating offer combinations, such as loan amount, interest rate, and term. | One (optional) |
| Derived Variable | Compute policy-specific values from offer parameters (for example, APR or monthly payment) that can be referenced in later blocks. | Multiple |
| Offer Filtering | Apply business or product rules to remove ineligible offers, for example partner restrictions or maximum loan limits. | Multiple |
| Offer Optimization | Evaluate all generated offers against a defined goal (such as maximizing return) and select the best-fit offer. | One (optional) |
| Offer | Potential Loan Amount | Potential Term | Potential Interest Rate |
|---|---|---|---|
| 1 | 10000 | 24 | 0.05 |
| 2 | 10000 | 36 | 0.05 |
| 3 | 15000 | 24 | 0.05 |
| 4 | 15000 | 36 | 0.05 |
| Field | Value |
|---|---|
| Type | Numerical |
| Alias | monthly_payment |
| Description | Monthly payment for the offer, derived from loan amount, term, and interest rate. |
| Input | potential_loan_amount, potential_term, potential_interest_rate |
| Definition | r = potential_interest_rate / 12n = potential_termp = potential_loan_amountreturn p * r * (1 + r) ** n / ((1 + r) ** n - 1) |
| Column | Emitted by | What it contains |
|---|---|---|
| application_decision_box_1, application_decision_box_2, … | Each Application Decision block, in order | The per-block outcome for that application: AUTO_DENIAL, MANUAL_REVIEW, AUTO_APPROVAL, or empty if the application never reached the block. |
| application_decision_output | Roll-up across all Application Decision blocks | The effective outcome from the Application Decision phase. Taken from the last non-empty application_decision_box_n column. |
| potential_loan_amount, potential_term, potential_interest_rate, … | Offer Creation | One column per offer parameter you configured. For applications that reach Offer Creation, each generated offer is a row. |
Derived Variable aliases (e.g. monthly_payment, apr) |
Each Derived Variable block | One column per Derived Variable, named with the alias you chose. Appears in the order the blocks are defined. |
| offer_filtering_box_1, offer_filtering_box_2, … | Each Offer Filtering block, in order | The per-block outcome on the offer: AUTO_DENIAL, MANUAL_REVIEW, AUTO_APPROVAL, or empty if the offer never reached the block. |
| offer_filtering_output | Roll-up across all Offer Filtering blocks | The effective outcome from the Offer Filtering phase, taken from the last non-empty offer_filtering_box_n column. |
| is_optimized | Offer Optimization | True for the offer the optimization block selected as best-fit, False for the rest. |