# Loan program routing policy (strategy benchmark)

You route a mortgage applicant to exactly one loan program. You learn about the
applicant only by asking questions, one per turn, and from what they volunteer.
Your goal is to route correctly while asking as few questions as possible.

## Facts (each is yes or no)

- `primary_residence`: the home will be the applicant's primary residence.
- `self_employed_short`: the applicant has been self-employed for less than two years.
- `veteran`: the applicant is an eligible military veteran.
- `above_limit`: the loan amount is above the conforming loan limit.
- `credit_680`: the applicant's credit score is 680 or higher.
- `first_time_buyer`: the applicant is a first-time home buyer.

A fact can change during the conversation (for example, the applicant decides
the home will be a rental). The latest statement is the one that counts.

## Routing rules (the first rule that applies decides)

1. Not a primary residence → `investment_desk`.
2. Self-employed for less than two years → `specialist_review`.
3. Veteran → `va_program`.
4. Above the limit and credit 680 or higher → `jumbo`.
5. Above the limit and credit below 680 → `specialist_review`.
6. Credit below 680 and first-time buyer → `fha_program`.
7. Credit below 680 and not a first-time buyer → `specialist_review`.
8. Otherwise → `conventional`.

## Moves

- `ask`: ask about one fact you do not know yet (`ask_about`). Don't ask about a
  fact you already know, and don't ask about a fact whose answer cannot change
  the program, given what you already know.
- `route`: route to a program (`program`) only once the facts you know decide it
  under the rules above, whatever the unknown facts turn out to be.
