> ## 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.

# 0005 parked as derived

# File-level parked is emergent from Product Decisions

Status: accepted

Date: 2026-07-09

Phase 9 demotes file-level `parked` from an exclusive workflow primary to a **derived** file state. Per-product time-based prerequisites remain the authority; Funding Queue semantics (callback date, tags) are sourced from that derived layer.

## Decision

1. **Parked is emergent only.** A file-level `parked` presentation appears if and only if:
   * no Product Decision is in an operator-actionable status (`qualified`, `qualified_conditional`, or `manual_review`), **and**
   * at least one Product Decision carries a time-based prerequisite (e.g. seasoning, recent credit activity, thin-file wait).
2. **Cross-product non-exclusivity applies.** If `term_loan`, `mca`, or `bloc` is actionable while `card_stacking` is blocked only by a time-based prerequisite, the file is **not** parked — the actionable product(s) proceed. Cards' prerequisite still surfaces on that product's row.
3. **Funding Queue** keeps callback-date / tag behavior, but those fields are derived from the Product Decision prerequisites (and any operator park overrides), not from a router that erases other primaries.
4. **Per-product "why"** (reasons + prerequisites visible on each product row — tooltip or inline) ships in **Phase 9e** as part of the per-product verdict panel. That is in scope for Phase 9, not a follow-up initiative: `ProductDecision.reasons` / `prerequisites` exist so operators can see e.g. "too many newly opened accounts / not enough revolving history" on cards even when another product is qualified. Exact chrome (tooltip vs always-visible) is a 9e UX choice.

## Context

Today `parked` is a file-level `workflow.primaryPaths` value that behaves like a soft veto. Seasoning and thin-file waits are often **cards** problems while TL or Established can still be actionable — a file-level parked primary re-introduces the exclusivity Phase 9 is removing for credit-repair (ADR-0004). The design doc already required parked-as-derived; this ADR locks the emergence rule and confirms reason visibility belongs in 9e.

## Considered options

* **A — Emergent only (accepted).** File parked iff nothing actionable and ≥1 time-based prerequisite.
* **B — Per-product only; never a file-level parked primary** — rejected as the Phase 9 cut; operators still need a file-level parked banner/queue bucket when *nothing* is actionable. Emergence preserves that without hiding other products when they exist.
* **C — Keep file-level parked primary but allow coexistence in `primaryPaths`** — rejected; keeps parked as a peer primary instead of a pure derivation over `products[]`.

## Consequences

* `deriveWorkflow` must not emit an exclusive `parked` primary that drops qualifying TL/MCA/BLOC paths.
* Persona delta table (9-pre) must include at least one "cards seasoning + TL qualified → not file-parked" case.
* Phase 9e verdict panel MUST render reasons/prerequisites for non-qualified products (minimum viable: tooltip or secondary line). Shipping Product Decisions without a readable "why" fails the operator need that justified the model.
* Glossary: CONTEXT.md → "Emergent parked". System reference: `docs/design/underwriting.md` §7.
