Blog · Board and management reporting · Professional services
Compare engineering consulting projects using milestones, labor hours, remaining workload, and cost against plan. A worked US example shows how project differences can disappear inside a portfolio total.
An engineering dashboard compares project delivery, team hours, remaining workload, and cost against the same approved plan. For an engineering consulting firm, the useful question is whether each project is delivering its commitments with the people and budget available. A total across projects needs the project rows underneath it.
The example concerns a fictional US engineering consultancy, Lakeview Engineering, which supplies civil and facility design services. Its delivery director reviews the period October 19 through October 23, 2026, with actuals closed through the end of October 23.
The director wants to identify projects needing a staffing decision, a client acceptance discussion, or a cost review. The dashboard uses business exports: approved timesheets, project cost transactions, the period budget, a milestone register, and the team's estimates of remaining work.
Each file needs stable project IDs. Aggregate time and cost transactions by project before combining them with milestone counts. Attaching every cost line to every milestone would duplicate both costs and delivery events.
Lakeview uses a standard internal labor cost rate for each project's team mix. These rates include the labor-related overhead already allowed in its period budget. Other costs below are separate project expenses, excluding anything already included in the labor rate. All amounts are USD.
| Project | Planned hours | Actual hours | Cost per hour (USD) | Planned other cost (USD) | Actual other cost (USD) |
|---|---|---|---|---|---|
| River study | 200 | 220 | 75 | 2,000 | 3,000 |
| Plant layout | 160 | 150 | 80 | 1,000 | 500 |
| Campus survey | 140 | 130 | 70 | 500 | 500 |
| Total | 500 | 500 | — | 3,500 | 4,000 |
Use the same cost classification in plan and actual. For federal contracting, FAR 31.202 specifically addresses consistent treatment of direct costs and costs included in indirect pools. This example applies the practical check that a cost included in the labor rate is not added again as a separate expense.
Period project cost = Period hours × Internal labor cost rate + Other period costs
Cost variance = Actual period cost − Planned period cost
Here, a positive variance means spending above plan. The comparison covers the stated period; it is not a prediction of final project cost.
| Project | Planned cost calculation (USD) | Actual cost calculation (USD) | Variance (USD) |
|---|---|---|---|
| River study | 200 × 75 + 2,000 = 17,000 | 220 × 75 + 3,000 = 19,500 | 2,500 |
| Plant layout | 160 × 80 + 1,000 = 13,800 | 150 × 80 + 500 = 12,500 | -1,300 |
| Campus survey | 140 × 70 + 500 = 10,300 | 130 × 70 + 500 = 9,600 | -700 |
| Total | 41,100 | 41,600 | 500 |
Total cost exceeds plan by $500, or 500 / 41,100 × 100 = 1.2%, rounded to one decimal place. Hours match plan in total, but that result conceals River's additional effort. Plant and Campus offset much of River's unfavorable cost variance.
For the wider distinction between period spending and total project control, see project cost management.
The milestone register counts only commitments due by October 23, with acceptance recorded by that cutoff. The workload estimate covers authorized work scheduled for the next review window, October 26 through October 30. Available hours are the hours allocated to that work after leave and other assignments.
| Project | Milestones due | Accepted by cutoff | Remaining workload hours | Available hours next window | Hours above available capacity |
|---|---|---|---|---|---|
| River study | 3 | 2 | 60 | 40 | 20 |
| Plant layout | 2 | 1 | 50 | 45 | 5 |
| Campus survey | 1 | 1 | 30 | 35 | -5 |
| Total | 6 | 4 | 140 | 120 | 20 |
The director sees 4 / 6 × 100 = 66.7% of due milestones accepted. River's rate is 66.7%, Plant's is 50.0%, and Campus's is 100.0%, each rounded to one decimal place. Campus still has later work to deliver even though its milestone due in this period is accepted.
The workload check is 60 + 50 + 30 = 140 hours against 40 + 45 + 35 = 120 available hours. The net gap is 20 hours. Campus's apparent spare capacity does not establish that its staff have the skills or availability River needs.
The progress dashboard covers milestone dates and delays in more detail. For the separate measure of how working time is used, see resource utilization.
River needs attention because it combines spending above plan, an unaccepted due milestone, and workload above allocated capacity. Ask the project lead whether the additional hours relate to authorized scope, correction work, or a delayed client decision. Do not infer the cause from cost alone.
Plant's lower spending also needs context: its due milestone count is only partly accepted and its next workload exceeds available hours. The director should confirm whether the favorable variance reflects timing rather than a lasting saving.
The NASA Schedule Management Handbook recommends comparing baseline and current schedules to understand significant variances and their causes. Keep acceptance dates and current expectations separate from the approved commitment when recording the follow-up.
Suppose the only changed input is River's actual hours: 240 instead of 220, an increase of 240 − 220 = 20 hours. Its rate, other costs, accepted milestones, and remaining-hours estimate stay unchanged for this sensitivity test.
| Step | Calculation | Result (USD) |
|---|---|---|
| Additional labor cost | 20 × 75 | 1,500 |
| Revised River actual cost | 240 × 75 + 3,000 | 21,000 |
| Revised River variance | 21,000 − 17,000 | 4,000 |
| Revised total actual cost | 21,000 + 12,500 + 9,600 | 43,100 |
| Revised total variance | 43,100 − 41,100 | 2,000 |
Total actual hours become 240 + 150 + 130 = 520. Total cost variance becomes 2,000 / 41,100 × 100 = 4.9%, rounded to one decimal place. Milestone completion remains unchanged: additional effort does not itself establish acceptance. In a real review, the project lead should also reconfirm the remaining-work estimate.
The actual hours must tie to approved time records, and other costs must tie to the selected ledger transactions. The sum of project variances must equal total actual cost less total planned cost. Milestone counts must tie to distinct register entries with acceptance evidence.
Finance owns cost classifications, team leads confirm remaining hours, and project leads own milestone acceptance records. Add revenue only in a separate, clearly defined profitability comparison; project margin analysis explains that measure.
Upload your project budget, time, cost, and milestone files with their reporting periods identified. Covirage maps the columns, its tools compute and check the figures, and the external AI model explains the results with every figure traced to its rows. Create a free Covirage account and bring a sample of your own project exports.
See Covirage for professional services for the supporting industry context.
Show accepted milestones against those due, actual hours against period plan, project costs on the same basis, and remaining workload against available capacity. Keep each project visible so the manager can connect a delivery exception with its staffing and spending context.
Not necessarily. Costs can be below plan because planned work has not happened yet. Read spending alongside accepted milestones and remaining work. A favorable variance with delayed acceptance may signal unfinished delivery rather than an efficiency gain.
Use the company's defined cost rates when measuring cost against budget, with the same basis in plan and actual. Billing rates measure client charges. Mixing billing rates into a cost comparison changes the meaning of the result and can obscure project economics.
Define it explicitly. A workload view can use estimated labor hours remaining on authorized work, while a commercial backlog may describe contracted revenue still to be delivered. Keep those measures separate and specify the time window covered by the hours.