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
- 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.
- 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.
- 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. HistoricallyevaluateEstablished 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_evaluateduntil later — rejected; BLOC is a primary Established path alongside MCA. - Real evaluator in 9a (accepted).
- 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).

