> ## Documentation Index
> Fetch the complete documentation index at: https://docs.myfundingmachine.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 0003 bloc evaluator sba questionnaire

# BLOC gets a real evaluator; SBA is questionnaire-gated (not Confirmable in Phase 9)

Status: accepted

Date: 2026-07-09

Companion to ADR-0002 (five independent Product Decisions). This ADR locks how **BLOC** and **SBA** earn their verdicts and how operators act on them in the Established Funding UI.

## Decision

1. **BLOC** — Phase 9a ships a **real BLOC evaluator** with criteria distinct from SBA (**ADR-0009**: 660+ score, \$20k+ avg monthly revenue, 2+ years TIB). BLOC is Confirmable when its Product Decision is qualified / qualified\_conditional, same as MCA.
2. **SBA** — remains a fifth Funding Product / Product Decision. The engine **keeps today's SBA gates** as the baseline Product Decision. The Established Funding UI **does not** show Eligible / Not eligible for SBA and **does not** allow Confirming an SBA path in Phase 9. Instead the SBA row shows a **Send questionnaire** affordance that is **disabled / "Coming Soon"** until a later project ships the client questionnaire. When that questionnaire exists, a completed response may update the SBA Product Decision; only then does SBA become Confirmable.
3. **UI split** — the Established Funding card / approve dialog stops collapsing "SBA / BLOC" into one row. Rows are **MCA**, **BLOC**, and **SBA** (SBA = questionnaire CTA, not an eligibility badge).

## Context

SBA loans are uncommon and heavy to underwrite. Product direction is to add pre-approval **estimates for BLOC and MCA**, not SBA, and to gather SBA fit via a client questionnaire rather than treating the current boolean gate as an operator-facing "Eligible" signal. Historically `evaluateEstablished` used one SBA gate that silently covered BLOC (`ApproveEstablishedDialog` still labels the path "SBA / BLOC"). ADR-0002 already requires three separate Product Decisions; this ADR says what each row *means* to the operator.

## Considered options

**BLOC evaluator**

* Mirror SBA's verdict — rejected; product is supplying real BLOC criteria and estimates.
* Always `not_evaluated` until later — rejected; BLOC is a primary Established path alongside MCA.
* Real evaluator in 9a (**accepted**).

**SBA Confirmability**

* Confirmable from current gates + questionnaire CTA additive — rejected; would keep shipping SBA paths from a gate product does not want operators to treat as Eligible.
* Drop SBA from the product set / out-of-band only — rejected; SBA stays a Product Decision so questionnaire enrichment has a home.
* Not Confirmable until questionnaire upgrades eligibility; Phase 9 ships disabled "Coming Soon" CTA (**accepted**).

## Consequences

* Product set stays **five**: `card_stacking | term_loan | mca | sba | bloc` (ADR-0002 unchanged).
* `evaluateEstablished` (or successors) must emit **separate** MCA, SBA, and BLOC statuses. BLOC and MCA use **ADR-0009** thresholds (MCA is score-tiered revenue); SBA keeps current 680 / \$20k / 2yr+ baseline until the questionnaire project replaces/enriches them.
* `establishedSubVariant` / selected Established funding types in Phase 9: **MCA and/or BLOC only**. Do not persist an operator-confirmed SBA path from the Established card while the questionnaire is Coming Soon.
* Approve / Established UI: three rows; SBA row = Coming Soon questionnaire button (no Eligible badge, not selectable for Confirm).
* Questionnaire implementation, client fill flow, and post-response eligibility update are **out of scope for Phase 9** — only the disabled CTA and the non-Confirmable rule ship now.
* Pre-approval estimates for BLOC/MCA are a related future surface; not required to land inside 9a.
* Glossary: CONTEXT.md → "SBA questionnaire gate". System reference: `docs/design/underwriting.md` §7.

## Open follow-ups (not decided here)

* Exact BLOC + updated MCA thresholds → **ADR-0009** (accepted).
* Credit-repair reason attachment → **ADR-0004** (accepted).
* Parked-as-derived → **ADR-0005** (accepted).
* Operator-override symmetry → **ADR-0006** (accepted: cards + TL only).
* UX rename "Established Funding" → "Revenue Based" → **ADR-0007** (accepted: Phase 9e labels; code ids stay).
* MCA/BLOC estimated funding ranges → **ADR-0008** (accepted: plumbing only).
