What the S-curve is
The S-curve is a graphical representation of a project's cumulative progress over time. Every point answers one simple question: what percentage of the total have I completed through this date? Connect those points period by period and you get a rising line that starts at 0% and ends at 100%.
What makes it useful isn't one line on its own but the comparison of two curves: the planned curve (or baseline), which comes from the schedule before the job breaks ground, and the actual curve, drawn from the progress measured in the field. The spread between them is the control reading: if actual runs below planned, you're moving slower than expected; if it runs above, faster.
Why it's shaped like an S
The S shape is no accident: it reflects how resources get consumed on almost any job, which doesn't move at a constant pace but in three phases.
- Start-up (slow): mobilization, layout, temporary facilities, and the first excavation. There are few work fronts and few crews, so the running total barely climbs. This is the low, nearly flat bottom of the S.
- Middle stage (steep): structure, masonry, and several fronts running in parallel, with peak manpower and material deliveries. The running total climbs fast; this is the most vertical stretch of the curve.
- Closeout (slow again): finish work, punch list, testing, cleanup, and turnover. A lot of time goes in for little percentage gain, so the curve flattens out again as it approaches 100%.
- Red flag: if your curve comes out as a straight line instead of an S, you probably spread the progress evenly (linearly) instead of weighting it by the real work in each period.
What the S-curve measures: physical and financial progress
The time axis is almost always the same (the schedule's periods), but the vertical axis can measure two different things, and it pays not to mix them up.
The two are usually plotted together because their difference is telling too: a job can be on track on physical progress but ahead on spending (over budget), or the other way around. If you want to dig into that distinction, see the guide on physical vs. financial progress.
- Physical S-curve: accumulates physical progress—the work actually put in place, weighted by the share of each line item (by quantity or by cost). It answers: how much work is done?
- Financial S-curve: accumulates dollars, whether spent (actual cost) or estimated and billed. It answers: how much have I spent or billed to date?
How to build the S-curve step by step
The planned S-curve isn't sketched freehand: it's calculated from the schedule and the budget. The idea is to spread each activity's weight across its duration and then add it all up.
Doing this in Excel works, but it turns tedious and error-prone every time the schedule changes, because you have to reweight and recalculate everything. Tools that tie the budget to the schedule, like Matterial, generate the weighted S-curve automatically and reforecast it with every schedule update and every progress entry captured.
- 1Start from the schedule
You need the activity list with each start date, finish date, and duration. The schedule defines which periods (weeks or months) each activity is active in.
- 2Weight each activity
Assign each activity a percentage weight based on its budgeted cost (most common) or its quantity. All the weights must add up to 100%: that guarantees the curve lands exactly at 100 at the end.
- 3Spread the weight across the duration
Distribute each activity's weight across the periods it spans. The simplest approach is to spread it evenly (a 4% activity that runs 4 months contributes 1% per month); if you have a resource curve, you can load more weight onto the months of greatest effort.
- 4Sum each period's progress
For each period, add up the contributions of every activity active in it. That gives you the progress for that period (not cumulative).
- 5Accumulate period by period
Keep adding each period's progress to the ones before it. That running total is the planned S-curve: the series of cumulative percentages that, when plotted, forms the S.
- 6Draw the actual curve from what you measure
As the job progresses, measure each period's physical progress (or spending) and accumulate it the same way. Plot it on the same scale to lay the actual curve over the planned one.
How to read it: planned curve vs. actual curve
With both curves on the same graph, reading it becomes visual. The vertical distance between them is the progress variance at a given moment, and the horizontal distance is the schedule variance in time.
Example: if the planned curve shows 45% cumulative at the end of month 3 and the actual sits at 38%, you have a 7-point variance behind schedule. And if the planned curve hit that same 38% back in the middle of month 2, the horizontal reading says the job is running roughly a month behind schedule.
To separate schedule slippage from cost overrun you use the three S-curves of earned value management (EVM): planned value (PV), earned value (EV, the completed work valued at budget), and actual cost (AC). Comparing EV against PV measures schedule performance (the SPI index) and EV against AC measures cost efficiency (the CPI index). The classic planned-vs-actual S-curve is the simplified version of that same idea.
- Actual below planned: the job is behind schedule; the vertical distance is how much progress you need to make up to catch up.
- Actual above planned (physical curve): the job is ahead of schedule.
- Actual above planned (financial curve): be careful—it could be a cost overrun or simply early purchasing; cross-check it against the physical curve before drawing a conclusion.
- A slope that flattens mid-job: the pace dropped (short on resources, fronts shut down, or bad weather), even though the running total keeps creeping up.
What the S-curve is used for on the job
The S-curve is one of the most widely used tools for tracking and communicating progress. It helps you catch variances early, report to the owner or oversight clearly, and—in its financial version—project cash flow, because it anticipates how much will be spent or billed in each period.
Since the actual curve feeds off what you measure in the field, that data should come in without rework: in Matterial, physical progress flows in from the pay applications and the daily log, so the actual curve updates itself as the work gets captured.
One honest caveat: the S-curve shows that there's a delay, but it doesn't say why or whether that delay is serious. A slip in an activity with float doesn't move the completion date; one on the critical path does. That's why the S-curve is read alongside the schedule's critical path, not in place of it.