Dangling Activities
Last reviewed 9 September 20261,498 words7 min read
Relationships on both sides, still nothing holding the start (or finish)
π© In one line: A dangling activity has a predecessor and a successor, so it passes the open-ends check β but the links are the wrong type: an SS on the way in and nothing controlling the finish, or an FF on the way out and nothing controlling the start. The finish (or start) floats free, the activity can stretch to any length without moving anything, and the critical path skips it.
π€ Who this is for: Juniors who ran the open-ends filter and think logic is done; mid-level planners cleaning a file before submission; reviewers who know the count of open ends is not the count of logic problems. You should know open-ends and relationship-types-explained.
First, let's be honest about why this page exists
P6's Schedule Log counts activities without predecessors or successors. It does not count activities whose finish is tied to nothing. So a file with "0 open ends" can have 200 activities whose durations are irrelevant to the end date β and nobody knows until a delay on one of them fails to move completion.
Dangling logic is the most common way a programme with perfect DCMA scores lies about its critical path.
π¨ The standard β what "good" looks like
| Source | What it says (paraphrased) |
|---|---|
| DCMA 14-Point, Metric 1 (Logic) | Counts missing predecessors/successors β does not catch dangles; the assessment guidance notes that SS/FF pairs should be checked |
| GAO Schedule Assessment Guide, Best Practice 2 | Every activity's start and finish should be logically driven; a finish with no successor controlling it is a logic gap |
| PMI Practice Standard for Scheduling, 3rd ed. | Each activity except the first and last should have a predecessor driving its start and a successor driven by its finish |
| AACE RP 49R-06 | Dangling finishes distort the longest path; analyst should test SS/FF chains |
| Typical Gulf client specifications | Often explicit: "activities shall have at least one FS or SS predecessor and at least one FS or FF successor" β some also require every activity to have a finish-driving successor |
π’ Rule to remember: every activity needs something that drives its start (FS or SS in) and something its finish drives (FS or FF out). One link on each side isn't enough if both are the same end.
How it actually works
The two dangles.
| Type | Links | What's wrong | Effect |
|---|---|---|---|
| Dangling finish | Predecessor SS; successor SS (or none) | Nothing depends on this activity finishing | Duration can grow to 500 days; end date doesn't move; activity never critical; delay on it invisible |
| Dangling start | Predecessor FF (or none); successor FF or FS | Nothing controls when it starts | Early start goes to data date or project start; activity appears to start months early; float is meaningless |
Where they come from.
| Pattern | Example |
|---|---|
| SS chains for overlapping trades | Blockwork SS+5 β Plaster SS+5 β Tiles SS+5 β every finish dangles until the last |
| FF chains for "finish together" | Testing FF β Commissioning FF β Handover FF β every start dangles |
| Level-of-effort mimicry | Supervision or scaffolding as a Task with SS in and SS out |
| Lazy conversion from a bar chart | Links drawn to make bars align, not to model work |
Finding them in P6. No built-in check. Three options:
| Method | How |
|---|---|
| Filter | Activities layout; add columns Predecessors, Successors, Predecessor Details, Successor Details; filter where Successor Details contains "SS" and does not contain "FS" or "FF" β approximate |
| Schedule Log + Longest Path | Filter Longest Path = Yes; if it jumps over a trade that obviously drives completion, look for dangles there |
| Export TASKPRED | Per task_id: count of successor rows with pred_type PR_FS or PR_FF. Zero = dangling finish. Count of predecessor rows PR_FS or PR_SS. Zero = dangling start |
Third-party checkers (Fuse-type tools, Schedule Analyzer) report "dangling" or "SS/FF only" directly.
Fixing them.
| Dangle | Fix |
|---|---|
| SS in, SS out | Add an FF to the same successor (SS+lag / FF+lag pair) or an FS to the next real dependent activity |
| FF in, FF out | Add an SS or FS from the real start driver |
| Genuine LOE (supervision, hoist, scaffold) | Change activity type to Level of Effort β then SS/FF is correct and the duration is calculated |
| Overlapping trades | Keep SS for the overlap; add FF to the successor so the successor can't finish before the predecessor |
The SS/FF pair rule. If you use SS for overlap, use FF as well. A wall finishes β tiling can't finish before it. Two links, no dangle.
π₯ Where people go wrong
- Reading "0 open ends" as "logic complete". It means every activity has a link somewhere. Half of them might be dangling. Run the SS/FF test as well.
- Chaining trades with SS only because "that's how it overlaps". Overlap is SS+lag going in and FF+lag going out. One without the other is a dangle.
- Fixing a dangling finish by linking it to the project finish milestone. Now it has an FS successor and passes every check β but the "logic" is meaningless and the milestone has 400 predecessors. Link to the next real dependent activity.
- Using Task Dependent for things that should be LOE. Scaffolding, hoist, site supervision: SS from first activity, FF to last, type = LOE. As a Task with SS/SS it dangles; as LOE it's correct.
- Ignoring dangling starts because the dates "look fine". Early start is only fine because the data date holds it. Next month, the data date moves and the activity slides with it β out of sequence, no driver.
- Not re-checking after every re-sequencing. Recovery planning adds SS links to compress. Every one can create a new dangle. Re-run the test before issuing.
βοΈ When you're challenged
"Your open ends are zero, so why is the reviewer saying the logic is incomplete?" "Open ends counts activities with no link. He's counting activities with a start link and no finish link β 84 of them, mostly in finishes where we used SS chains. Adding FF pairs fixes it without changing dates."
"Why didn't the completion date move when MEP second fix slipped 3 weeks?" "Because the second-fix activities had only SS successors. Their finish wasn't driving anything. That's a dangle, and it's corrected in this update β the path now runs through them and completion shows the slip."
"Just add FF to the finish milestone for all of them." "That gives them a successor but not a real one. The milestone would have 200 predecessors and the critical path would be wrong in a different way. Each one links to what actually follows it."
π Related pages
- Open ends β the check this page goes beyond
- Relationship types explained β SS/FF mechanics
- P6 Activity Types Explained β when LOE is the right answer
- Logic Density and Quality β how much logic is enough
- DCMA 14-point assessment β why Metric 1 doesn't catch this
- Automated schedule checkers β tools that report dangles directly
βοΈ Worked example
Finishes floor cycle on a residential tower in Doha, one typical floor, baseline as submitted:
| Activity | Duration | Predecessor | Successor | Dangle? |
|---|---|---|---|---|
| Blockwork L10 | 12 d | Slab L11 FS | Plaster L10 SS+4 | Finish dangles |
| Plaster L10 | 10 d | Blockwork SS+4 | Tiling SS+4 | Finish dangles |
| Tiling L10 | 10 d | Plaster SS+4 | Painting SS+4 | Finish dangles |
| Painting L10 | 8 d | Tiling SS+4 | Snagging L10 FS | OK |
With this logic, Blockwork could take 60 days and Snagging wouldn't move. Corrected:
| Activity | Predecessors | Successors |
|---|---|---|
| Blockwork L10 | Slab L11 FS | Plaster SS+4 and Plaster FF+2 |
| Plaster L10 | Blockwork SS+4, FF+2 | Tiling SS+4 and Tiling FF+2 |
| Tiling L10 | Plaster SS+4, FF+2 | Painting SS+4 and Painting FF+2 |
| Painting L10 | Tiling SS+4, FF+2 | Snagging FS |
Same dates on the day of the fix. Different behaviour the first time blockwork slips: now the slip reaches snagging. Across 24 floors, 72 dangles corrected, zero date change at baseline, and the first update showed a real -6 days that the old logic would have hidden.
π References
- DCMA 14-Point Assessment, Metric 1
- GAO, Schedule Assessment Guide (GAO-16-89G), Best Practice 2
- PMI, Practice Standard for Scheduling, 3rd ed.
- AACE RP 49R-06, Identifying the Critical Path
- Oracle, P6 Professional User Guide β Relationships; Activity Types
From the field
Experience from working planners. Unreviewed β read it as experience, not guidance.
Add what you know about dangling activities. 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