Corridor map — progress by project
Hand-drawn NC schematic · fill length = % complete against contract value
EarnedRemaining
1
Weekly earthwork production — planned vs actual
Cubic yards moved per week, all crews in the selection
Actual CYPlanned CY
3
Earned value S-curve
Cumulative PV · EV · AC ($M)
Planned (PV)Earned (EV)Actual cost (AC)
4
Production by crew
Quantities in the selected period vs crew plan
5
Cut / fill earthwork profile
CutFill
6
Equipment utilisation
Operated hours ÷ available hours, by class
7
Safety
Recordables and hours worked in the period
8
Backlog by owner
Contract value remaining to earn
9
Data structure — proposed star schema
The "optimum data structure" you asked about: one fact per daily report line, four conformed dimensions
Every tile above is a measure over
fact_daily_report (one row per crew × cost code × day) joined to dim_project, dim_cost_code, dim_equipment and dim_date. Equipment hours and safety events land as two thin secondary facts sharing the same keys, so one slicer filters all of them.10
Ask the data
Natural-language layer over the same model (mock)
›
11













