Help Center

Activity Dependencies

In Propel, you can create dependencies in order to reschedule activities. Only finish-to-start dependencies are currently supported.


Finish-to-start Dependency: An activity A must be finished before an activity B can be started.

Predecessor: The activity that precedes the dependent task. If a finish-to-start dependency is set, then the Predecessor must be completed before work on the Successor can begin.

Successor: The activity that follows the predecessor. The Successor is affected by changes to the Predecessor(s)

Buffer Days: Amount of days before an activity can start. Can be positive or negative.

Auto-Schedule: boolean that determines whether the predecessor activity will reschedule dependent activities when moved.

  • If Auto-Schedule is True: Changes to a Predecessor will cause Successors to be rescheduled and buffer days will not change.
  • If Auto-Schedule is False: Changes to a Predecessor will not cause Successors to be rescheduled. Rather the buffer days will be changed to reflect the new activity dates.

Reschedule: Changing the start and finish dates of an activity, but not its duration.

Dependency Rules

  1. There can only be dependencies between activities on the same level (top-level activities) or between siblings with the same parent.
  2. Rescheduling an activity with a predecessor will add or subtract buffer days.
  3. The successor will never reschedule predecessor activities.
    1. Think of this as activities can always push successors (move later scheduled tasks forward) but not pull predecessors (move earlier scheduled tasks forward).


Successor Rescheduling: If an activity is rescheduled and it is a successor, instead of moving the predecessor (even if auto-schedule is set), buffer days are added or subtracted to ensure the predecessor is unaffected by the activity being moved.


Example 1: Reschedule (Children affect Parent, Parent affects Another Parent)


In this example:

  1. Rescheduling A1
  2. Reschedules A2, which Reschedules A3.
    • As a result of A's children being rescheduled, A is rescheduled
    • A is rescheduled causes Gate to be rescheduled, which in turn causes to be rescheduled
      • is rescheduled by moving its children, B1 and B2 
        • Even though the dependency is from Gate to B, really treat this as the dependency acting on B1 and B2 because must be a roll-up of its children.

Example 2: 


In this example:

  • Dragging to reschedule causes buffer days to be added between and (does not get moved because it is a predecessor)
    • is rescheduled because C1 and C2 are moved (is a roll-up of C1 and C2)
    • When I move C2C1 is not moved, rather buffer days are added between C1 and C2
      • C1 is not moved because it is a predecessor


Have more questions? Submit a request


Please sign in to leave a comment.