Monthly Progress Report
Last reviewed 9 September 20262,658 words12 min read
The pack the Engineer actually reads β in the order they read it
π© In one line: The monthly report is one pack, assembled in the five working days after the data date from the rescheduled update, whose first page states data date, contract completion, forecast, variance and driver, and whose every table traces to a register the schedule already keeps β the narrative is one section of it, not the whole of it.
π€ Who this is for: Junior planners assembling the pack; mid-level planners owning it. Prerequisites: Schedule-narrative, Monthly-update-checklist, S-curves-early-late-actual.
First, let's be honest about why this page exists
The monthly report is where a good update goes to die. The reschedule was clean, the comparisons were run, the trend register was kept β and then it all gets buried on page 31 of a 90-page PDF that opens with a letter from the project director, twelve photographs and a safety statistic, so the Engineer reads the executive summary, disagrees with it, and never finds the evidence.
The pack has a reader, and the reader has an order: is it late, by how much, why, what are you doing, and can I check. Build the report in that order, from the registers, and the narrative page (Schedule-narrative) becomes the second page rather than the only one.
π¨ The standard β what "good" looks like
| Source | What it says (paraphrased) | Use it for |
|---|---|---|
| FIDIC 1999 Cl 4.21 / 2017 Cl 4.20 | Monthly progress reports: charts and descriptions of progress by stage; manufacture and delivery of Plant and Materials; personnel and equipment records; quality and safety; comparison of actual and planned progress with details of events that may jeopardise completion and measures to overcome them (check against your copy) | The contractual table of contents |
| FIDIC 1999 Cl 8.3 / 2017 Cl 8.3 | Programme and supporting report; revised programme when inconsistent with progress; 2017 requires notice of probable future events affecting the programme | Revised-programme trigger; forward-looking statement |
| FIDIC 1999 Cl 8.6 / 2017 Cl 8.7 | Rate of progress: Engineer may require revised programme and methods if progress is too slow (check against your copy) | Why the measures section matters |
| NEC3 / NEC4 Cl 32.1, 32.2 | Revised programme shows actual progress, effects of implemented compensation events and early warnings, how the Contractor plans to deal with delays, changes to the programme | NEC's monthly content, in the programme itself |
| NEC3 / NEC4 Cl 16 (NEC3) / Cl 15 (NEC4) | Early warning register (NEC4: Early Warning Register) maintained and reviewed | The risk section under NEC |
| SCL Protocol 2nd ed., Core Principle 1 | Programme updated and issued regularly with a progress report as a record | The pack is a contemporaneous record |
| AACE RP 38R-06 | Report structure and cycle recorded in the SBM | Format fixed once |
| Hub convention | DD same calendar day monthly; submission 3β5 working days later; narrative first half-page = DD, contract completion, forecast, variance (vs contract and vs last update), driver; two comparisons per update; trend register; change table; constraint register; six-line transmittal | Your defaults |
π’ Rule: page one answers "is it late, by how much, why, what are we doing"; every other page is a register or a comparison that lets the Engineer check page one.
How it actually works
1. The timeline.
| Day | Action | Owner |
|---|---|---|
| DD β 7 to DD β 1 | Subcontractor walks and signed sheets; quantity sheet closed; actuals imported | Planner, subcontractor planners |
| DD | Reschedule; two Schedule Comparisons (vs previous accepted update; vs Project baseline); layouts 01β06 printed; trend register row; forecast-basis table | Planner |
| DD + 1 | Narrative drafted; S-curves and EV table from the workbook; milestone, constraint, change, procurement and notice registers refreshed | Planner |
| DD + 2 | Internal review with PM and commercial: numbers agreed, no adjectives added; measures section confirmed with the people who will do them | PM, planner |
| DD + 3 to + 5 | Pack issued with XER, PDFs, transmittal; archived | Planner, document control |
Page count for the planner's sections: 12β25. If it is longer, tables have become prose.
2. The pack, in reading order.
| # | Section | Content | Source |
|---|---|---|---|
| 1 | Status page | DD; baseline in force; contract completion(s); forecast completion(s); variance vs contract and vs last update (working days); driving activity ID and chain; one sentence on cause; one sentence on measures | Trend register, layout 04 |
| 2 | Schedule narrative | The Schedule-narrative page: critical path as ID sequence, top-3 near-critical with 3-month float trend, change table, forecast-basis table, calendar list | Update |
| 3 | Milestones | Contractual, key date and interface milestones: baseline, previous forecast, current forecast, variance, float, status | Milestone register |
| 4 | Progress curves | Project S-curve (early/late/actual/forecast, manhours); value curve; WBS L2 curves; planned vs earned % table | Workbook |
| 5 | Earned value | PV/EV/AC, SPI (h), CPI (cost) by WBS L2; side by side with longest-path variance, CPLI, BEI | P6 EV, workbook |
| 6 | Trend | Trend register (all DDs, never reset); slippage ratio; BEI/CPLI trend chart | Trend register |
| 7 | Changes and delay events | Change register: every VO/CE/event with status, fragnet ref, TIA result, EOT claimed/awarded; notices issued this month | Change register, notice register |
| 8 | Constraints and interfaces | Constraint register (every constrained activity with reference); interface register (open items, owner, days late, party) | Registers |
| 9 | Procurement | Long-lead register: submittal/approval/PO/FAT/ETA/need date/float per item; items with negative float first | Procurement register |
| 10 | Resources | Manpower planned vs actual by trade, month and cumulative; histogram with actual bars; equipment | Gate log, P6 |
| 11 | Look-ahead | Four-week look-ahead by area (layout 02, monthly window); key deliveries and inspections | P6 |
| 12 | Risks / early warnings | Items that may jeopardise completion (FIDIC Cl 4.21; NEC early warnings): item, likelihood, effect in days, owner, action | Risk register |
| 13 | Measures | Recovery options in progress: options table rows with status; recovery milestones and hits/misses | Options table |
| 14 | Appendices | Layouts 01β06 PDFs; Schedule Comparison reports; settings screenshot; XER transmittal; photographs keyed to activity IDs | Archive |
Safety, quality, commercial and photographs sections belong to their owners; the planner supplies activity IDs so photographs and quality records tie to the schedule.
3. Writing the status page. Eight lines, every one a number:
| Line | Example |
|---|---|
| Data date | 25-Oct, Update 14 |
| Baseline | BL1-Accepted-DD 25Aug-Rev1 |
| Contract completion | Section 1: 30-Sep (Y2); Whole: 30-Sep (Y3) |
| Forecast | Section 1: 11-Nov (Y2); Whole: 24-Sep (Y3) |
| Variance | Section 1: β30 wd vs contract; β6 wd vs Update 13. Whole: +4 wd; 0 vs Update 13 |
| Driver | STR-P1-WPF-040 podium waterproofing β MEP-P1-CAR-110 car-park ventilation β TC-FIR-P1-300 fire test |
| Cause | Employer's re-sequencing instruction ER-012 (VO-014 pending), 18 wd; MEP subcontractor riser R2, 12 wd |
| Measures | Options R-2 (night shift, car-park MEP) in progress, target recovery 14 wd by Update 16; EOT claim C-007 submitted 14-Oct for 18 wd |
4. Three rules for every table. Baseline, previous, current, variance β always four columns. IDs, never descriptions alone. The source register named in the caption.
5. Two versions, one set of numbers. The pack to the Engineer omits PPC, internal recovery targets not yet instructed, and cost commentary; the internal pack includes them. The numbers common to both are identical, produced once from the same update. Different numbers in different packs is the single most damaging thing found in a claim.
π What the report is contractually
- FIDIC β the Cl 4.21 / 4.20 report is a condition of payment in many forms (statement accompanied by the report β verify Cl 14.3); its comparison of planned and actual progress and its "events which may jeopardise completion" paragraph are read as contemporaneous notice-adjacent records. Write the events paragraph as facts with dates, and cross-refer the notices actually issued under Cl 20.1 / 20.2.1; the report is not itself the notice.
- NEC β the monthly revised programme under Cl 32 is the report. Its Cl 32.1 content (actual progress, effect of implemented CEs and early warnings, how delays are being dealt with) maps to sections 1, 2, 7 and 13. Early warnings (Cl 15 / 16) are notified separately; section 12 lists them.
- Revised programme trigger β FIDIC Cl 8.3 requires a revised programme when the current one is inconsistent with progress; a monthly update is that revised programme in most Gulf specifications. Say so on the transmittal: "Update 14 constitutes the revised programme under Cl 8.3; baseline BL1 unchanged."
- Cl 8.6 / 8.7 letters β an Engineer's notice that progress is too slow is answered with section 13 and a Reflection-based recovery (Building-a-recovery-plan); the reply carries "without prejudice to entitlement".
π₯ Where people go wrong
- Executive summary written by someone who did not run the update. Adjectives replace numbers, the variance is softened, and section 6's trend register contradicts page one. The planner drafts page one; the director signs it.
- Forecast and target confused. "Forecast completion 30-Sep" when the schedule says 11-Nov and 30-Sep is the recovery target. Two dates, two labels, every month; the pack shows the gap.
- Registers rebuilt for the report. Milestone table retyped from memory, constraint list from last month. Every table is an export from the live register; the register is the source, the report is the copy.
- Previous-month column missing. Without "vs last update" the reader cannot see movement, which is the only thing that tells them whether measures are working. Four columns, always.
- "Events which may jeopardise completion" written as opinion. "The Employer's slow approvals continue to affect progress." Replace with: submittal S-118 submitted 12-Sep, approval due 03-Oct, received 21-Oct, 18 days, notice N-019 issued 06-Oct.
- No comparison reports attached. The change table says 14 durations changed; the reader cannot verify it. Both Schedule Comparison reports in the appendix, every month.
- Pack issued before the reschedule is clean. Negative lags introduced in a hurry, a constraint added to hold a date. The settings diagnostic (P6-settings-that-change-your-dates) and the DCMA run happen at DD; the pack waits for them.
βοΈ When you're challenged
"Ninety pages and I still can't find the completion date." It's the second line of page one, with the variance and the driver. Everything after that is a register that lets you check it. The photographs are in the appendix, keyed to activity IDs.
"Your report says minus 30 days on Section 1 and the director's cover letter says the Section is 'substantially on track'." The letter is the director's; the numbers are the update's, and they're the same numbers in both packs. Minus 30 working days against the contract date, with 18 of them the subject of EOT claim C-007. I'd rather the letter said that too, and I've asked.
"Why does the report include a recovery plan when you've submitted an EOT claim?" Because Clause 8.3 asks how we will overcome delay, and the recovery plan is without prejudice to the claim. The pack shows both: the forecast without recovery, the target with it, and the claim for the Employer-caused part. Silence on either would be read against us.
"Can you just send the narrative? The rest is too much." The narrative is two pages and it's section 2. The registers behind it are what make the narrative defensible; if you read only the narrative, at least it references them by table number.
π Related pages
- Schedule Narrative β section 2 of this pack, written in full there
- Monthly update checklist β the update this report describes
- Slippage and Trend Analysis β the trend register in section 6
- S-Curves: Early, Late and Actual β section 4
- Earned Value Basics: SPI and CPI β section 5
- Change Control in a Live Schedule β section 7's change register
- Procurement and Long-Lead Items β section 9's register
- Building a Recovery Plan β section 13's options table
- Redirect: writing-a-progress-narrative is absorbed into this page; schedule-narrative remains its own page for the narrative section
βοΈ Worked example β Doha twin towers, Update 14 status page and section extract
Status page (DD 25-Oct, Y2):
| Line | Content |
|---|---|
| Update / DD | Update 14 β 25-Oct (Y2) |
| Baseline in force | BL1-Accepted-DD 25Aug-Rev1 (accepted letter E-058) |
| Contract completion | Section 1: 30-Sep (Y2) Β· Section 2: 31-Mar (Y3) Β· Whole: 30-Sep (Y3) |
| Forecast | Section 1: 11-Nov (Y2) Β· Section 2: 26-Mar (Y3) Β· Whole: 24-Sep (Y3) |
| Variance vs contract | β30 wd Β· +4 wd Β· +4 wd |
| Movement vs Update 13 | β6 wd Β· +1 wd Β· 0 wd |
| Driver | STR-P1-WPF-040 β MEP-P1-CAR-110 β TC-FIR-P1-300 β MS-210 |
| Cause | ER-012 podium re-sequencing (VO-014 pending), 18 wd; riser R2 fire-stopping (MEP SC), 12 wd |
| Measures / claims | R-2 night shift car-park MEP, instructed 20-Oct, target +14 wd by Update 16; EOT claim C-007, 18 wd, submitted 14-Oct |
Section 3 β milestones (extract):
| ID | Milestone | Baseline | Upd13 forecast | Upd14 forecast | Var vs BL (wd) | Move (wd) | TF | Status |
|---|---|---|---|---|---|---|---|---|
| MS-210 | Section 1 completion | 30-Sep Y2 | 03-Nov Y2 | 11-Nov Y2 | β30 | β6 | β30 | Claim C-007 open |
| MS-220 | Section 2 completion | 31-Mar Y3 | 27-Mar Y3 | 26-Mar Y3 | +4 | +1 | +4 | β |
| MS-230 | Whole Works | 30-Sep Y3 | 24-Sep Y3 | 24-Sep Y3 | +4 | 0 | +4 | β |
| IF-050 | Substation energised (Employer) | 15-Jan Y3 | 02-Feb Y3 | 02-Feb Y3 | β13 | 0 | +18 | Notice N-019 |
Section 6 β trend register (last four rows):
| DD | BL | Contract (S1) | Forecast (S1) | Var (wd) | Move (wd) | Slip ratio | BEI | CPLI | Planned % | Earned % | Driver | Cause tag |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 25-Jul | BL0 | 30-Sep | 14-Oct | β10 | β4 | 0.17 | 0.91 | 0.97 | 41.2 | 38.0 | STR-P1-WPF-040 | Duration growth |
| 25-Aug | BL1 | 30-Sep | 21-Oct | β15 | β5 | 0.22 | 0.90 | 0.96 | 44.8 | 40.9 | STR-P1-WPF-040 | Scope added (ER-012) |
| 25-Sep | BL1 | 30-Sep | 03-Nov | β24 | β9 | 0.38 | 0.87 | 0.95 | 48.5 | 43.6 | MEP-P1-CAR-110 | Logic driven (ER-012) |
| 25-Oct | BL1 | 30-Sep | 11-Nov | β30 | β6 | 0.26 | 0.88 | 0.95 | 52.0 | 46.3 | MEP-P1-CAR-110 | Restraint (riser R2) |
Transmittal line: "Update 14 constitutes the revised programme under Cl 8.3; BL1 unchanged; XER Doha-TT_Upd14_DD25Oct_v01.xer; layouts 01β06; comparisons Upd14-vs-Upd13 and Upd14-vs-BL1 attached; settings screenshot SBM Β§3 unchanged; planner edits: 0."
π References
- FIDIC Conditions of Contract for Construction 1999, Cl 4.21, 8.3, 8.6, 14.3, 20.1; 2017, Cl 4.20, 8.3, 8.7, 14.3, 20.2 (check against your copy)
- NEC3 ECC, Cl 16, 32.1, 32.2; NEC4 ECC, Cl 15, 32.1, 32.2 (check the edition in your contract)
- SCL Delay and Disruption Protocol, 2nd ed. (2017), Core Principle 1 (check against your copy)
- AACE International RP 38R-06, Documenting the Schedule Basis
- Oracle Primavera P6 Professional User Guide β Layouts; Schedule Comparison; Reports (check against your P6 version)
From the field
Experience from working planners. Unreviewed β read it as experience, not guidance.
Add what you know about monthly progress report. 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