# F-144 — Documenter evidence

## Scope of documentation change
**F-144 is schema-only (DB columns).** It does **not** change the reporting API surface or any user-facing behavior: `GET /reporting/filters/schema` and `GET /reporting/filters/validate` (F-143) are unchanged, and no new route is added.

## What was already documented (no update needed)
`docs/reporting/REPORTING_ARCHITECTURE.md` §5 ya describe los snapshots requeridos y el riesgo:
- §5.1 (p.22): `orders_orders` "No tiene `store_id` directo" → cubierto por F-144 (ahora `store_id`).
- §5.2 / §5.9 (p.23): `orders_items` "No guarda `cost_at_sale`, tipo de IVA, marca/categoría snapshot" → F-144 añade `cost_at_sale_cents` + `vat_rate` (marca/categoría postergados a F-145/F-146).
- §5.6 (p.83-88): "Ventas netas sin portes" / "IVA por tipo" / "Margen histórico" → F-144 añade `shipping_cents` separado + snapshots de coste/IVA (nulos hasta F-146).
- SQL esperado (p.97-98, 101-102, 194, 198): `store_id` NOT NULL + index, `cost_at_sale_cents`/`vat_rate` nullable, `shipping_cents`. Todo implementado tal cual.
- dataAvailability sigue siendo metadata-only (F-138 §4 / F-143 §4): valores nulos se exponen como `unavailable`, NUNCA como 0 → invariante preservada.

## Decision
No se requiere update de docs/API/contracts/user-facing notes. El `document` stage se marca completo con este registro de alcance cero, consistente con el gate `document` (optional) de `harness/workflow.stages.yml`. La evasión intencional del `ADD CONSTRAINT IF NOT EXISTS` (no soportado por PG16) hacia el `DO $$` guard quedó registrada en `architect.md` §Consequences y en `work/artifacts/F-144/implementer.md`.
