Scenarios
Forking a schedule into a sandbox, what a fork does and does not carry, the diff against the live sheet, and merging back whole or row by row.
A scheduled sheet can be forked into a scenario — a named, sandboxed copy that reschedules independently and notifies nobody. Scenarios are kept indefinitely and re-diffed as the live schedule moves, which is what a recovery schedule actually is.
What a fork carries#
Rows, columns and schedule settings — everything the engine needs to reschedule independently.
It deliberately does not carry:
| Not carried | Why |
|---|---|
| Baselines | A baseline is a contractual position. Forking one creates a second thing claiming to be what was promised |
| Notifications | A scenario notifies nobody, so it holds no notification state at all rather than holding some and suppressing it |
| Comments and history | These belong to the live schedule |
| Views | A saved way of looking at the schedule is not part of the plan |
The diff#
A scenario shows a diff against the live sheet:
- Added — rows the scenario has and the live sheet does not.
- Removed — rows the live sheet has and the scenario does not.
- Changed — rows both have, whose dates or cost differ.
- Unchanged — a count, because nobody reads a list of them.
Per row: dates before and after, the days the finish moves, and cost before, after and delta. At the top: the project finish before and after, and the total cost either side.
⚠ An unpriced row reports as unpriced, not as zero. Otherwise every uncosted row in a scenario reads as a saving of nothing, which fills a diff with noise.
⚠ Costing follows the live sheet for both halves. A scenario cannot switch costing on by itself — a diff whose two halves disagreed about whether money exists would report the entire budget as a movement.
⚠ A diff that could not be computed says so. If the engine could not schedule one side — a cycle, most likely — the diff reports why. An empty change list that actually means "this would not schedule" reads as "nothing differs", which is the opposite of the truth.
Merging back#
A scenario may be merged whole or row by row, or discarded.
The whole accepted set lands as a single undo step. Accepting rows one at a time and committing each would put one entry on the undo stack per row for what was one decision.
Accepting a row means what the diff said it was:
- A row the scenario added is inserted.
- A row the scenario removed is deleted from the live sheet.
⚠ Columns are not merged. A scenario that added a column changed the schedule's shape rather than its plan, and folding that in silently would let a what-if restructure the live sheet.
Related#
- Impact and recovery — fragnets are inserted into a scenario, never into the live schedule.
- Cost & earned value — the other half of what a diff reports.