Report files
Report inputs, aggregation, month controls, presentation and browser CSV. Database projection reads are separate.
System explanation · Choosing checks
Source files
| File | Responsibility / entry points |
|---|---|
src/features/reports/month-field.tsx
|
Draft month input and calendar picker using the shared parser. MonthField |
src/features/reports/progress-sort.ts
|
Pure ordering helpers for month and county progress charts. ProgressGroup, MonthChartSort, CountyChartSort, monthChartSorts, countyChartSorts, nextMonthChartSort … |
src/features/reports/report-data.ts
|
Aggregates progress and eligible outcomes; creates report CSV and default FFY
filters. ReportRow, ReportResponse, ReportFilters, currentFfyFilters, ReportCounts, ReportGroup … |
src/features/reports/report-input.ts
|
Builds report rows from either projection data or review eligibility facts. ReportInput, reportRow, reportRowFromReview |
src/features/reports/report-view.tsx
|
Report tables/charts and temporary browser CSV runs. Run, ReportView |
src/features/reports/reports-page.tsx
|
Report fetching, scope/filters, refresh and initial-data reuse. ReportsPage, ReportsLoading |
src/features/reports/sample-month.ts
|
Parses supported month formats and distinguishes complete from unfinished
input. SAMPLE_MONTH_LABELS, parseSampleMonth, isCompleteMonthInput, monthFieldYear |
Tests
| File | Responsibility / entry points |
|---|---|
src/features/reports/progress-sort.test.ts
|
Checks progress sort. Example: “sample month sort button walks newest, oldest, then completeness”. |
src/features/reports/report-data.test.ts
|
Checks report data. Example: “default report bounds follow the October rollover in Pennsylvania time”. |
src/features/reports/report-input.test.ts
|
Checks report input. Example: “saved projections are derived from review facts, never an extra snapshot property”. |
src/features/reports/sample-month.test.ts
|
Checks sample month. Example: “sample month typing accepts common variants and rejects unfinished values”. |