Is this Start-to-Finish calculation correct?

I have recently been approached to help with an answer to the following PMP or PMI-SP type of question:

Activity A has a duration of 5, Activity B has a duration of 10, they are connected with a SF link from A to B (no lag). What is the total float for Activity A?


The basic construct of any link is that lags (or leads) create overlap. If the link was a FS link from B to A, B would finish at the end of time period ‘10’ A would start at the beginning of ‘11’. Therefore changing to a SF link, the start of A on ‘11’ is allowed because B finishes at the end of ‘10’. This makes sense, if permanent power is connected ready for use on Thursday morning; you can finish with the temporary generators on Wednesday night (unless you choose to specify an overlap, ie impose a lag).

However, the function of a link is to control the performance of the successor (not the predecessor). This raises a number of logical possibilities.

Option 1: Activity A has no predecessors, therefore it should start at ‘1’ and no successors therefore it should finish at ‘5’ and this applies to both the forward pass and the back pass meaning the Total Float is 0.

Option 2: Activity A has no predecessors, therefore it should start at ‘1’ and no successors, but the Late Finish is derived from the latest finish of the schedule. Therefor the Early Dates are 1 and 5 and the Late Dates are 10 and 6 giving a Total Float of 5.

Option 3: The SF link operates in the reverse direction and therefore A follows B and the ES and LS of A is ‘11’ therefore Total Float is 0

Option 4: The calculation option shown above where the forward pass and back pass are calculated using different methods.

The way I believe SF link calculations work correctly is set out on page 11 of our paper ‘Basic CPM Calculations’ downloadable from: Based on this, my view is the link operates from A to B therefore Option 1 applies in the absence of any instruction to allow the schedule to ‘float to the longest path’. The consequence of this would be for B to have a negative float of 10 days.

However, I have a nasty suspicion though the question setter is looking for Option 4 as the answer. What do you think the correct calculation should be and importantly why?


Dec. 11th: Thanks for the discussion below and comments via email.

Based on the problem as presented and a careful review of the comments, I believe the correct answer is:


If the network was properly constructed with a finish milestone and both activities linked to the milestone, the link would still be redundant, but the Float on A would be 5 as per Paul Giammalvo’s example below (the same result would occur if the scheduling option was set to float all ‘ends’ to the latest EF (float-to-longest-path) .


Note: Paul uses a different positioning convention for Early and Late dates.

18 responses to “Is this Start-to-Finish calculation correct?

  1. Seems to me that activity A has no predecessors so starts on day 1. Activity B also starts on day 1 because the relationship says it cannot finish before day 6, which is not constraining. Which means activity A has 5 days float.

    But a SF makes very little sense. In fact it makes no sense at all unless the activities are discontinuous, in which case they have two total floats, one for the start and one for the finish.

  2. Pat, if you close the open ends (as we should) by putting a Start Milestone before BOTH A and B and you put a Finish Milestone AFTER BOTH A and B, I think that will help to select the “best” option.

    The other problem I see is that the FINISH of B is driven by the START of A. So how did you justify A starting on Day 11? There is no logic linking the FINISH of B to the START of A. (The logic is the other way around)

    The way I have it set up, both A and B are running in parallel, with both of them having an ES of Day 1 and and EF of Day 5 and a LS of 1 and a LF of Day 5, meaning both of them are on the critical path. (with the SM and FM closing out the open ends) (I will send you a sketch via email)

    The only time the FINISH of B would be impacted would be if the START of A was delayed.

    Dr. PDG, Jakarta

  3. Pat,
    This is one of those hypothetical relationships that is hard to find in practice. MSP says there is 0 float for A. Since A has not predecessor and no successor, it has no float for it’s 5 unit duration.

    What’s more troubling is why PMI would ever consider this a credible relationship for the SP exam. In our domain FS is the ONLY relationship used. Leads and lags are discouraged and the only constraints are MSO for contract award and ASAP. Harsh I know, but without that the modeling of the IMS is suspect

  4. Sorry Pat…. ERRATA- I missed the duration of B being 10 days, not 5. (Old eyes!!)

    Either way, when you add in the SM and FM to close the open ends, then the SF logic ONLY impacts the finish of B IF the Start of Activity A is delayed beyond Day 10.

    Meaning I agree with Tony- Activity A would have 5 days of Float, but it has nothing to do with the SF relationship, but with the fact the two activities can both start on Day 1.

    Is there any reason why you can’t restructure the problem with a lag which would complicate the problem a bit? Challenge those PMP’s a little bit more? 😉

    I will send you my solution via email….

    Dr. PDG, Jakarta

    • I’m inclined towards the general consensus but for the following. If A was constrained by a predecessor to a start of (say) 15, the effect of the S-F link would be to drag the finish of B back to the end of 14. This is what a S-F link is designed to achieve, the successor (B) finishes immediately before the start of the predecessor (A). How the start of B behaves is dependent on whether it is contiguous or non-contiguous (or even stretchable).

      Given links have affects on both the forward and backward pass, I’m thinking of both SS and FF links, should S-F have a similar effect?

      • Glen,
        Actually the scenario is not all that uncommon in the world of IT. You have a legacy system (B) which cannot be terminated until the new system (A) is up and running and has been tested.

        But, using that approach, there is always a lag between the start of A and the finish of B, which represents the testing period of the new system before going live with it.

        But exactly BECAUSE it is an unusual situation, I think it makes a perfect exam question simply because it tests whether people really UNDERSTAND the forward pass/backwards pass mechanics.

        I am more concerned because the example as provided represents a bad practice (open ends)…..

        Bottom line- I like the idea of including an SF problem in the exam, but it needs to be carefully crafted and set up exactly right….

        Dr. PDG, Jakarta

  5. Paul.
    Using SF has time going backward in the schedule. It’s bad scheduling practice.
    Use a milestone to indicate completion of the replacement system to start the withdrawal of the legacy system. The notional example you use does not depend on a single activity. There are multiple steps to “go live” in IT. Look in the ITIL scheduling guidance to provide you with “actual” examples.
    Including a “trick” question in an exam is also bad scheduling practice. Use it as an example of what not to do.

    • Glen, anything which shows as REALISTICALLY and ACCURATELY as possible what the project team plans on doing is a “best practice” regardless of how unconventional it may be. In the case of the software, time is NOT flowing backwards. All it is saying that the PLAN (which may or may not be achievable) is that x number of days after the start of the final test of the replacement system the legacy system will be turned off. Absolutely nothing wrong with that approach.

      And yes, there are a lot of details which go into each of those summary level activities but the fact remains that IF the schedule accurately shows what the REAL or TRUE plan of action is, THEN it becomes a “best practice”.

      The key being not what the SCHEDULER thinks the project team should be doing but what the project team has in their mind what to do, how to do it and when to do it.

      Dr. PDG, Jakarta

  6. Pat,
    A “good” practice is to have all relationships explicitly visible – FS with intermediate zero-duration placeholders is the norm in our domain. The you can read the IMS as literature as the PM and not have to figure out what clever things were done by the scheduler. I see this often and it’s bad practice.
    I know this was not the question and the PMI exam may have this as a question.
    It might make for interesting classroom work, but it’s bad scheduling practice.

  7. Hey there Paul,
    Keeping in mind that scheduling algorithms have a fundamental basis, as they evolve weak points tend to surface that could not be or weren’t considered in its infancy. As with most journeys, these are lessons to learn and improve the system but that’s not your question.
    Successor/predecessor links were a why to communicate the types of relationships that may exist between tasks. This is more a creative inspiration by someone than a mathematically logical relationship. To understand your example, the best approach is to follow the way the application works in the background – like the computer that is probably running the scheduling software.
    Using this boolean approach, Both A and B start at the same time. Why? Because at the basic electronic processing logic, this SF relationship is directing that:
    A’s start time = B’s finish time.
    Ergo, when A starts, B ends.
    So in essence, it is like saying that B is A’s predecessor but in a backward way, therefore implying that its true purpose is for backward passing.
    So my interpretation is that firstly B starts, goes for 10 time units, ends, then A starts and goes for 5 time units. Because A only starts after B ends, there is no lag. Only thing to remember is that the logic also implies that A must start before B can finish – like A is a sub task of B.
    More than happy to be corrected and please do if anyone sees my error in logic. My 2 cents worth is that these questions are challenges that if you over think it, can generate a mind loop and confuse the scenario and appear to be a paradox. When this seems to happen, go back to basics i.e. the simple yes/no logic that in the end is used by the very system that is calculating your schedule.

    • Zvonko, there is a big difference between INFERRING that B is A’s predecessor and what the SF shows. (A = new and B = legacy) The logic, at least in my example, WITH the lag is very clear. The new system has been alpha and beta tested. It is ready to go live. But before we can take it live, we want to do one final test, running the two systems in parallel. The problem is we have no idea exactly how long it will take to double check to see if the results being produced by the new system are consistent with those being produced by the legacy system. We THINK it will take say 30 says, meaning we set the schedule up to show (correctly) that 30 days AFTER the START of running both systems in parallel, that we can shut down (FINISH) the legacy system. (SF+30 day lag)

      The beauty of this set up is that IF we find problems or discrepancies between the to and it takes LONGER to fix than we thought, then the program will automatically push out the date when we can terminate the legacy system.

      NOW, having said that, instead of using SF+30, we could put in a hammock (P3) and use that as a countdown timer, understanding it would NOT automatically push out the termination date. OR we could create an Activity called “Running both Systems In Parallel” with a duration of 30 days, FS to the milestone “Shut Down Legacy System”. This is essentially what I believe Glen was proposing.

      BUT, getting back to Pat’s question, I think this is a valid QUESTION to put on the PMP/PMI-SP exam if for no other reason than I think it “reasonable” to expect that a project manager and ESPECIALLY a CPM scheduler should know and understand what impact an SF relationship has, even though they may NEVER use it. (In 30 years of construction scheduling, I never once used it and until I got involved in some IT projects, never thought it had a use)

      Dr. PDG, Jakarta

  8. PS Glen, you could achieve the same results by putting a hammock in between the “Start of the Replacement System Going Live” and “Turning Off The Legacy System”, but IF there was a problem in “Going Live” and the activity got delayed, with only a hammock in between the two, it wouldn’t push out the date to turn off the Legacy System.

    Bottom line- I still argue in that instance (and not a whole lot more that I can think of) the SF relationship is a valid and accurate portrayal of what the “real” or “true” plan of work is.

    Dr. PDG

  9. Unless Task B fits into the gap between the start of the project and the start of Task A, ie Task A starts no earlier than day 11 (at 08:00), the SF link to Task B has no effect, because Task B, if scheduled ASAP, starts on day 1 and has a duration of 10 days.
    In the problem as presented, the predecessor link does nothing. This is especially obvious if the start (FS predecessor to both A and B) milestone and finish milestone (FS successor to the start milestone, and Task A and Task B) are included, as they should be. If they are not, and Task A starts asap on day 1, ie ES = 1, then the SF link to Task B will force the earliest start of Task B to be before the start of the project, which just isn’t sensible.
    There is no point in even considering the respective float of Task A and B if we have to accept the problem as presented.

    If we have to accept the problem as presented, where Task A has an earliest start of day 1, then the problem is verging on being just a nonsense riddle. With CPM, 4 kinds of predecessors with positive and negative lag, it is always possible to concoct riddles like this which basically leaves out some essential information or provides misleading information, or imposes some unrealistic condition, or starts with incorrect premises. If it is just a trick question then I don’t think it really should be in an exam.
    It would be better if the question sought to test the understanding that best practice is to stick to FS0 predecessors only, as much as possible, and be aware of the sticky paradoxes like this one that can be created by departing from this recommendation. The situation as presented in the problem is a strong argument for avoiding this kind of defective modelling. It is also a strong argument for the use of start and finish milestones as overall and intermediate anchor points.

    In any situation where Task A’s earliest start date is no earlier than day 11, then the SF predecessor will drag Task B to the right. A’s float is always zero and B’s float is always 5 days. If there is a start milestone, it gets float added as Task B moves to the right to follow Task A.
    We don’t know how Task A might get to be scheduled to start no earlier than day 11, but it has to happen so that the question is sensible. There are various causes of Task A being scheduled to start no earlier than day 11. They could be any combination of date constraints or task calendars, or resource calendars, or lag from the start milestone predecessor, or other predecessors.
    Anyway, stick religiously to FS0 predecessors and you will never have any such problem arise, and everything is easy, including the tracking. But if you like it to be really hard, as well as completely indecipherable, then splash all kinds of predecessors and lag around, and throw in a few date constraints of various kinds, and be sure to estimate durations in minutes, hours, days, weeks, months etc.

    • As stated in the blog – this question was forwarded to me for advice, so someone set it somewhere. Your conclusion is identical to the one in the post and concurs with most of the discussions. The reason I went out to the community was to see if there was a ‘sensible’ reason for the question – the consensus is the question is nonsense.

      Dr. John Fondahl was also of the view that FS0 links are best and he invented PDM!

      • Hi Pat,
        While I agree that FS 0 remains the preferred choice, and that there are abuses and manipulations of SS and FF relationships, I still believe that used appropriately, the use of SS, FF and SF relationships with or without lags is something “professional practitioners” should know, as the ultimate objective of any schedule should be to reflect as accurately as possible what the project team INTENDS to do in order to achieve the time and cost objectives established by management/contract.

        The schedulers job should NOT be to create the schedule, but to facilitate the project team in creating what THEIR plan is, documenting it, then tracking actual progress against the plan and reporting it to the team. Ideally, the scheduler can then make suggestions to the project team how they can improve on the schedule, but in no case should the schedule belong to the scheduler.

        Unfortunately, I still see a majority of organizations expecting the scheduler to create the schedule, then are surprised when after a couple of days later, any resemblance between the schedule and what is actually happening in the field is more coincidence than proactive planning.

        Dr. PDG, Jakarta

  10. Agree completely! The key skill of a scheduler is communication.

  11. Jacky Coolman, Planning/Scheduling & Monitoring Engineer

    First of all, each activity network need to have only one start activity en only one finish activity (closed network).
    The definition of a SF-relationship is saying that (against the drawing): as from the moment activity A is started activity B can finish immediately or later.
    In my first and second examples I’m keeping the same drawing as in the article, with also for A 5 days as duration and for B 10 days as duration.
    For the cases 1 and -2, I add ‘x’ as start activity with the duration of zero and ‘y’ as finish activity also with a duration of 0. Activity ‘y’ is in both cases a target.
    Case 1. After the forward and backward calculation we find for activity A: ES =1, EF = 5, LS = 1 and LF = 5. We find for activity B; ES = 1, EF = 10, LS = -9 and LF = 1.
    Case 2. That’s a bit different. On activity A we put a ‘not earlier than’ start of 20. After the forward and backward calculation we find for activity A: ES =20, EF = 25, LS = 20 and LF = 25. We find for activity B: ES = 1, EF = 20, LS = 11 and LF = 20. Due to the fact we can’t finish B before the start of A.
    Succes with drawing the two cases.

    • I think your calculations are incorrect Jacky – the effect of adding Milestones is set out above in Paul’s example as is the consensus on no Milestones. The logic as defined in the question is simply redundant.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s