S-Curves: Early, Late and Actual

Last reviewed 9 September 20261,833 words8 min read

Three lines, one envelope β€” and what to say when the actual leaves it

🟩 In one line: The early and late curves come from the accepted baseline's early and late dates, the actual comes from physical percent weighted by manhours or cost, and the forecast comes from the current update β€” the actual should sit inside the envelope, and where it sits tells you how the job is going before you open a single activity.

πŸ‘€ Who this is for: Junior planners producing the monthly curve; mid-level planners explaining it. Prerequisites: P6-baselines-assign-and-maintain, Progress-measurement-and-rules-of-credit, Resource-loading-and-histograms.

e / c
First, let's be honest about why this page exists

Most S-curves in Gulf monthly reports are one planned line and one actual line, both drawn from the current schedule, weighted by nothing in particular. They cannot show slippage because the planned line moves every month with the update, and they cannot show whether being 4 % behind matters because there is no late curve to say how much room there was.

An S-curve is a summary of the schedule, not a substitute for it. Built from the right three sources it answers the client's first question β€” "are we on programme?" β€” with a shape, and hands the second question β€” "by how much?" β€” to the longest path.

🟨 The standard β€” what "good" looks like
SourceWhat it says (paraphrased)Use it for
FIDIC 1999 Cl 4.21 / 2017 Cl 4.20Monthly progress report includes charts comparing actual and planned progress (check the edition in your contract)The curve is a contractual deliverable
FIDIC 2017 Cl 8.3Supporting report to the programme includes anticipated progress and resources per period (check against your copy)Baseline curve submitted with the programme
NEC3 / NEC4 Cl 32.1Revised programme shows actual progress and its effect on remaining workActual vs plan is required content
PMI Practice Standard for Scheduling, 3rd ed.Cumulative planned and earned curves as schedule model outputs (check against your copy)Definitions
AACE RP 38R-06Planned progress curve and its weighting basis documented in the SBMWeighting declared once
GAO Schedule Assessment Guide, Best Practice 5 and 9Progress measured against a valid baseline; cost and schedule integratedBaseline source
Hub conventionWeight by manhours (labour) and separately by cost; planned = Project baseline early dates; late = Project baseline late dates; actual = Physical % Γ— weight; forecast = current update; never weight by duration or activity countYour defaults

🟒 Rule: two curves from the accepted baseline, one from the quantity sheet, one from the current update β€” all four labelled with their source and revision on the chart.

How it actually works

1. The four lines.

LineSourceHow it is builtWhat it means
Planned (early)Project baseline, early datesBaseline budgeted units spread across each activity's baseline early start–finish, cumulated by periodThe fastest the accepted programme allowed
LateProject baseline, late datesSame units spread across late start–finishThe slowest that still meets the contractual completion; below this you are late
Actual (earned)Current updatePhysical % Γ— budgeted units per activity, cumulated to each data date; history from previous updates, never recomputedWhat has been done
ForecastCurrent update, early datesRemaining units spread across current early dates from the data dateWhere the current schedule says the actual will go

The envelope between early and late is the total float of the whole programme expressed as work. An actual inside it is on programme; on the late line is zero float; below it is negative float in output terms.

2. Weighting. Manhours for the labour curve, cost for the value curve; both from the same assignments (Cost-loading-and-cash-flow). Duration-weighting makes a 200-day LOE worth more than a 10-day pour; activity-count weighting makes a milestone worth a slab. Neither survives the first review question. State the weighting on the chart.

3. In P6. Activity Usage Profile (View β†’ Show on Bottom, verify against version in use): Display β†’ cumulative; show Budgeted Labor Units (or Total Cost); tick Baseline bars for Early and Late; Actual and Remaining for the current project; timescale monthly. Export via the Activity Usage Spreadsheet to the workbook β€” the report chart is drawn in Excel so the actual history is preserved across baseline revisions and the lines can be labelled properly. Baseline early and late series are exported once per accepted revision and stored.

4. Reading it β€” in order.

ReadHowWhat it says
PositionActual vs early and late at the DDInside = on programme; below late = behind; above early = front-loaded or rules-of-credit problem
Horizontal gapFrom actual, read across to the early curveWeeks behind the planned output β€” indicative, not the date
SlopeActual's gradient over the last 3 months vs the planned gradient for the same periodWhether the site is producing at the rate the plan needed
Forecast shapeForecast line's peak gradient vs the best achieved gradientA forecast steeper than anything achieved is a ramp nobody has proven
TailWhere the forecast flattensT&C gating; a long flat tail usually means energisation or authority chain

Then go to layout 04: the curve says whether; the longest path says how much and why.

5. Per-node curves. One project curve for the cover; curves by WBS Level 2 (structure, envelope, MEP, finishes, T&C) in the body. A project curve inside the envelope can hide an MEP curve 12 weeks below its late line.

πŸŸ₯ Where people go wrong
  1. Planned line from the current schedule. It moves every month, so the actual always looks close. Planned and late come from the Project baseline in the register and change only at a baseline revision (flagged on the chart).
  2. No late curve. One planned line gives no sense of room. Without the late curve, 6 % behind is unreadable; with it, the actual is either still inside or it is not.
  3. Weighted by duration. LOE prelims and 400-day design bars dominate; the curve is 30 % complete while the site is still in the ground. Manhours or cost, declared in the SBM.
  4. Actual history recomputed. A rules-of-credit change or baseline revision re-draws past months. Each DD's earned value is written once to the workbook and never changed; a revision is a flagged step, not a redraw.
  5. Curve read as a delay measurement. "The actual is six weeks behind the planned line, so we are six weeks late." Output lag and longest-path variance are different numbers; report both, side by side.
  6. Forecast line missing or identical to planned. Either the forecast has not been produced or the update was not rescheduled. The forecast starts at the actual, on the data date, and ends at the current forecast completion.
  7. No labels. A curve without data date, baseline name, weighting and revision is a picture. The footer carries all four.
βš–οΈ When you're challenged

"Your S-curve shows 62 % against 68 % planned. That's 6 % late." Six percent of output behind the early curve β€” and still just inside the late curve, which is why the contractual milestone shows plus four days on the longest path. The two numbers agree: behind on volume, not yet late on the date. Next month's slope decides which way it goes.

"Why does the planned line differ from last month's report?" It shouldn't, and it doesn't β€” the planned and late lines are from BL1 in both. The forecast line has moved, because the update moved; that's the dashed one. If they look different it's the axis scale, and I'll fix that.

"The forecast curve catches up by month 20. How?" Honestly, it needs a gradient 25 % steeper than the best month achieved so far. That's the recovery plan's manpower ramp, and it's the reason the histogram check is in the same report. If the ramp isn't there by month 17, the forecast isn't either.

πŸ“„ Related pages
✏️ Worked example β€” Doha office tower, labour curve at DD month 12

BL0 accepted; BAC 3,120 kmh; weighting manhours.

MonthEarly (kmh)Late (kmh)Actual (kmh)Forecast (kmh)
3182124176β€”
6442299401β€”
9787572702β€”
121,2299621,0141,014
151,7161,417β€”1,398
182,1841,892β€”1,830
212,6132,379β€”2,301
242,9642,808β€”2,749
263,1203,120β€”3,036
27β€”β€”β€”3,120

Read: Actual 1,014 sits between late (962) and early (1,229): inside the envelope, tracking 5 % above the late line. Horizontal read to the early curve: about 6 weeks of output lag. Slope months 9–12: 104 kmh/month actual against 147 planned for the same window. Forecast reaches BAC in month 27 β€” one month past the baseline β€” and requires 157 kmh/month in months 18–21, which is 12 % above the best achieved month. Layout 04 shows βˆ’18 working days at contractual completion. Narrative sentence: "Cumulative earned manhours 32.5 % against 39.4 % planned (BL0); inside the early/late envelope; longest path βˆ’18 working days, driver MEP-L08-DUC-120; forecast gradient months 18–21 exceeds best achieved by 12 % and depends on the MEP manpower ramp in recovery option R-3."

πŸ“– References
  • FIDIC Conditions of Contract for Construction 1999, Cl 4.21; 2017, Cl 4.20, 8.3 (check the edition in your contract)
  • NEC3 / NEC4 ECC, Cl 32.1 (check the edition in your contract)
  • PMI, Practice Standard for Scheduling, 3rd ed. (check the edition and section in your copy)
  • AACE International RP 38R-06, Documenting the Schedule Basis
  • GAO, Schedule Assessment Guide, GAO-16-89G, Best Practices 5 and 9
  • Oracle Primavera P6 Professional User Guide β€” Activity Usage Profile; Activity Usage Spreadsheet (check against your P6 version)

From the field

Experience from working planners. Unreviewed β€” read it as experience, not guidance.

Add what you know about s-curves: early, late and actual. What worked, what the consultant pushed back on, what you would do differently next time. A paragraph is plenty.

Contributors get their name and one link on the site β€” your own templates, course or consultancy. We take nothing and hold nothing.

Add your experience