No description
Find a file
jtricerolph a2b46178a5 Return to shifts endpoint with leave filter + cost_with_oncosts
The timesheets/on/{date} endpoint nested shifts don't return cost_with_oncosts
— oncostTotal == baseCost in all results. The shifts endpoint does return it.

Hypothesis: shifts endpoint, leave filtered, cost_with_oncosts ≈ £51k:
- A (shifts, report_location_id, all): £47,607 (shift.cost, includes leave)
- B (timesheets, dept filter, ex-leave): £40,845 (shift.cost only, no oncosts)
- Estimated A_ex_leave × cost_with_oncosts: ~£44.7k × 1.14 ≈ £51,005 ✓

syncActuals reverted to shifts endpoint, adds leave_request_id filter,
uses cost_with_oncosts as total_cost (was using shift.cost before).

compareEndpoints A now shows both baseCostExLeave and oncostExLeave so
we can confirm the £51k match directly.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-23 14:31:07 +00:00
backend Return to shifts endpoint with leave filter + cost_with_oncosts 2026-07-23 14:31:07 +00:00
frontend Add vs Prev column to monthly table; weekly two-row cards + vs PY + vs Prev Wk 2026-07-23 12:59:14 +00:00
docker-compose.yml Initial scaffold: wages app 2026-07-23 09:03:52 +00:00
seed-app.js Initial scaffold: wages app 2026-07-23 09:03:52 +00:00