P6 Reflections and What-If

Last reviewed 16 September 20268 min read

Testing a recovery without wrecking the live schedule β€” the sandbox that remembers where it came from

🟩 In one line: A Reflection is a linked copy of a project that you can edit freely and then either discard or merge back selectively; it is the place every TIA fragnet, recovery option, Global Change and logic clean-up is built and proven before anything touches the live schedule β€” one Reflection per event, named for it, archived as XER with its Schedule Comparison, and never itself submitted as a baseline.

πŸ‘€ Who this is for: J/M. Prerequisites: p6-schedule-comparison, time-impact-analysis, building-a-recovery-plan.

e / c

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

Half the conventions in this hub end with "in a Reflection." This page is where that instruction becomes a menu path. The tool is simple β€” right-click, Create Reflection β€” and the discipline around it is what matters: what to name it, what to do inside it, what to archive, and what to merge back.

The failure it prevents is the one every planner has done once: a what-if edit made directly in the live project "just to see," then the phone rings, then the monthly update goes out with the what-if inside it.

🟨 The standard β€” what "good" looks like

SourceWhat it asks for (paraphrased)Consequence
AACE RP 52R-06TIA performed on a copy of the current update; unimpacted and impacted versions retainedOne Reflection per fragnet; both versions archived
SCL Protocol 2nd ed., Core Principle 4 and Guidance Part BContemporaneous analysis; records keptReflection XER + comparison per event
GAO Schedule Assessment Guide, BP 9 and 10Updates and baseline changes controlled and documentedNothing reaches the live project without a proven change
PMI Practice Standard for Scheduling, 2nd ed.What-if analysis as part of schedule maintenance; changes controlledSame
Convention (change-control-in-a-live-schedule; building-a-recovery-plan; p6-global-change)Reflection first, one change at a time, Schedule Comparison after, archive, then incorporateThis page's procedure

🟒 Rule: nothing exploratory is ever done in the live project β€” Reflection per event, named for the event and its source data date, one change at a time with a comparison after each, archived as XER with its reports, merged selectively or re-entered by hand, then deleted.

How it actually works

1. Creating one

StepActionNote
1Enterprise β†’ Projects; select the source projectSource = the last accepted update for TIA and recovery; the live working project for a Global Change or clean-up test
2Right-click β†’ Create ReflectionCreates a copy with status What-If, linked to the source
3Rename immediately"VO-014 Impact β€” Reflection of Upd 08 DD 01Sep25"; "Recovery R1 β€” Reflection of Upd 08 DD 01Sep25"; "GC test β€” Level codes β€” Reflection of Upd 08"
4Move under a "Reflections / What-If" EPS nodeKeeps them out of the production list and out of summaries
5Open it; check scheduling options and data date match the sourceThey copy across, but check

Baselines: the number of baselines copied with the Reflection is governed by Admin β†’ Admin Preferences β†’ Data Limits ("maximum baselines copied with project" β€” verify label). For date comparison inside the Reflection, assign the source's Project Baseline in the Reflection's Assign Baselines.

Reflection vs Copy/Paste project: a pasted copy is independent, with no merge link β€” fine for a permanent archive, useless for merging. Reflection is for anything that may go back.

2. What is done inside β€” and the one-at-a-time rule

PurposeInside the ReflectionThen
TIA fragnetNew WBS node per event; activities from SBM rates; one FS in, one FS out; hard logic; F9Schedule Comparison vs source: completion movement = the impact; archive XER + report per change ref
Recovery optionApply lever 1; F9; comparison; re-run near-critical filter; apply lever 2 …Options table row per lever; archive; forecast vs target reported
Global Change testSpec applied; report read; F9Comparison proves footprint; same spec then run on live
Logic clean-upRedundant links removed; F9Comparison: dates section empty; archive proof
Client "what if we …"Whatever is asked, labelled as hypotheticalReport from the Reflection; never merged; deleted after

One change per comparison. Three changes then one comparison tells you the total; it cannot tell you which change did what, and the options table needs each.

3. Getting the result back β€” three routes

RouteWhenHow
Merge Reflection into SourceThe change is discrete and the source has not moved since the Reflection was createdRight-click Reflection β†’ Merge Reflection into Source Project β†’ tick only the items to merge (activities, relationships, codes, etc., listed individually) β†’ option to create a baseline of the source before merge (tick it) β†’ option to delete the Reflection after merge (untick until archived)
Manual re-entryThe source has been updated since (a month passed); or the change is small (a fragnet of six activities); or the merge list is long and hard to readRe-enter the fragnet under its WBS node in the live project at the incorporation step; comparison afterwards confirms it matches the Reflection
NothingWhat-if for a client; rejected recovery option; failed testArchive the XER and report; delete the Reflection

The merge matches on Activity ID and overwrites source values with Reflection values for every ticked item. If the source has been statused since the Reflection was made, a merge that ticks dates or durations will overwrite the new actuals with old ones. That is why change-control-in-a-live-schedule uses manual re-entry at step 10 when a month has passed.

4. Archiving β€” what the folder holds per event

ItemName
Reflection XER (impacted)VO-014_Impacted_ReflUpd08_DD01Sep25.xer
Source XER (unimpacted)Already in the Upd 08 archive; referenced, not duplicated
Schedule Comparison reportVO-014_Comparison_vs_Upd08.html / .csv
One-page noteSource, data date, what was changed, result, who ran it, date

Then the Reflection is deleted from the database (Enterprise β†’ Projects β†’ Delete) or set Inactive under the What-If node if the database owner prefers to keep it a month. Twenty live Reflections in the project list is how a merge goes to the wrong one.

5. Reflection is not a baseline and not a recovery

ObjectPurposeEver submitted?
ReflectionSandbox to build and prove a changeThe archived XER may be submitted as the impacted schedule for a TIA or as the recovery-plan file β€” labelled as such
Recovery plan (copy)The recovery document of recordYes, as Recovery Rn
BaselineYardstick from the registerYes, per acceptance

A Reflection XER submitted with a recovery narrative is fine. A Reflection assigned as the Project Baseline is the error revised-baseline-vs-recovery-schedule exists to stop.

πŸŸ₯ Where people go wrong

  1. "Just testing" in the live project. The what-if goes out in the update. Reflection takes fifteen seconds; the alternative takes a retraction letter.
  1. Three changes, one comparison. The options table needs days saved per measure. One lever, F9, comparison, next lever.
  1. Merging after the source moved. A month's actuals overwritten by the Reflection's older dates. Manual re-entry once the source has been statused; merge only into a frozen source.
  1. Merge with everything ticked. Scheduling-option or calendar differences ride along with the six fragnet activities. Tick the listed items you mean; read the list.
  1. Default name kept. "Upd 08 – Reflection" Γ—7 in the project list, and the wrong one gets merged. Event name plus source data date, immediately.
  1. Never deleted, never archived. The database fills with sandboxes; the evidence folder is empty. XER + comparison + note into the archive, then delete.
  1. Reflection submitted as the baseline. The slippage vanishes and the register points at a sandbox. Reflections build; baselines measure.

βš–οΈ When you're challenged

"Can you just try moving the faΓ§ade start earlier so we can see the date?" Yes β€” in a Reflection. Two minutes to create, the change, F9, and the comparison shows what moves. The live programme doesn't change until we've decided and recorded it.

"Why is there a project called 'Recovery R1 β€” Reflection' in the database? Is that the new programme?" It's the sandbox the recovery options were built in, one lever at a time. The recovery plan of record is the R1 file in the submission; the baseline is unchanged. The Reflection gets archived and deleted this week.

"Merge the whole Reflection back β€” it's the same project." It was the same project on 1 September. The live project has October's actuals now; merging dates and durations would overwrite them with September's. The six VO-014 activities are re-entered by hand under their node and the comparison confirms they match β€” twenty minutes, no damage.

πŸ“„ Related pages

✏️ Worked example

Recovery options on a 22-storey Dubai tower (building-a-recovery-plan), built in "Recovery R1 β€” Reflection of Upd 08 DD 01Sep25":

SequenceAction in ReflectionComparison vs previous stepArchived as
0Reflection created from Upd 08 (frozen, accepted); Project Baseline assignedβ€”β€”
1R1-01: faΓ§ade L3 constraint removed; F9Completion βˆ’4 days; 1 constraint changeR1-01_cmp.csv
2R1-02: faΓ§ade predecessor L18 β†’ L12, FS+5d; F9; near-critical re-runCompletion βˆ’12 days; 2 relationship changes; lift path now drivingR1-02_cmp.csv
3R1-03: MEP first fix SS links re-pointed; F9βˆ’6 days; 22 relationship changesR1-03_cmp.csv
4R1-04: L16–L22 cycle RDs 9 β†’ 7 with basis notes; F9βˆ’10 days; 7 RD changes, 7 Notebook entriesR1-04_cmp.csv
5R1-05 and R1-06βˆ’7; βˆ’3R1-05/06_cmp.csv
6Final comparison Reflection vs Upd 08βˆ’42 days net; every difference traceable to a row aboveR1_final_cmp.html
7Export "Recovery_R1_ReflUpd08_DD01Sep25.xer"; note writtenβ€”Archive folder Recovery R1
8Reflection not merged β€” measures enter the live project only as they are instructed and evidenced (R1-01, R1-02 and R1-03 in Upd 09 by manual re-entry; R1-04 in Upd 10 after mobilisation)Upd 09 comparison shows exactly the R1-01/02/03 changesUpd 09 archive
9Reflection deleted after Upd 09 issuedβ€”β€”

One Reflection, six comparisons, one archive folder, zero edits to the live project before each measure was real.

πŸ“– References

  • AACE International RP 52R-06, Time Impact Analysis – As Applied in Construction
  • SCL Delay and Disruption Protocol, 2nd ed. (2017), Core Principle 4; Guidance Part B
  • GAO Schedule Assessment Guide (GAO-16-89G), Best Practices 9, 10
  • PMI Practice Standard for Scheduling, 2nd ed.
  • Oracle Primavera P6 Professional User Guide β€” Reflections (Create Reflection; Merge Reflection into Source Project); Admin Preferences β†’ Data Limits (field labels as in P6 Professional v20; earlier versions differ)

From the field

Notes, corrections and additions from people who've done this on a real job. Everything is checked before it appears here.

Loading notes…

Checked before it appears. No client, project or employer names. Your name is shown; your email never is. Terms.