# Traceability matrix

| Graph capability | Business rules | Workbook/VBA evidence | API / UI |
|---|---|---|---|
| EP1 / F1 — source ingestion | BR1 source required; BR2 overwrite staging; BR3 CLO branch | Import procedures and eight staging sheets | `/api/sources`, `/api/imports/{source_id}` / Source Data Hub |
| EP2 / F2 — schedule rebuild | BR4 rebuild formulas/mappings | `rebuildpage`, monthly comparison schedule | `/api/schedule`, `/api/schedule/rebuild` / Monthly Comparison |
| EP3 / F3 — baseline and variance | BR5 missing ref; BR6 previous snapshot | `previousmonthschedule`, `rebuildvariance` | `/api/previous-month`, `/api/variance` / Previous Month and Variance |
| EP4 / F4 — mode, adjustments and export | BR7 mode/protection; BR8 refreshed export | `presentationmode`, `workmode`, `protectcells`, `unprotect`, `addadjust`, `exporttemplate` | controls, adjustments and exports APIs / Reporting Controls and Adjustments |

## Graph verification cases covered

- `TC-IMPORT-SOURCE-SELECTED`
- `TC-IMPORT-SOURCE-CANCELLED`
- `TC-CLO-CLASSIFY-VALID`
- `TC-CLO-CLASSIFY-NON-CLO`
- `TC-REBUILD-SCHEDULE-ROW`
- `TC-REBUILD-SCHEDULE-SKIP`
- `TC-PREVIOUS-MONTH-REFRESH`
- `TC-PREVIOUS-MONTH-CLEAR-FILTER`
- `TC-VARIANCE-FOUND`
- `TC-VARIANCE-NOT-FOUND`
- `TC-EXPORT-TEMPLATE`
- `TC-EXPORT-TEMPLATE-FAIL`

Backend tests exercise BR1–BR8. Frontend tests enforce that every field declared
in the screen-parity contract has a corresponding UI selector.

