{"id":1132,"date":"2026-10-20T11:47:23","date_gmt":"2026-10-20T15:47:23","guid":{"rendered":"https:\/\/steelray.com\/blog\/?p=1132"},"modified":"2026-10-20T11:47:23","modified_gmt":"2026-10-20T15:47:23","slug":"when-delayed-doesnt-mean-at-fault","status":"publish","type":"post","link":"https:\/\/steelray.com\/blog\/?p=1132","title":{"rendered":"When \u201cDelayed\u201d Doesn\u2019t Mean at Fault"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Last time, we left off with a problem: schedule-comparison tools flag an activity as &#8220;delayed&#8221; whether it actually fell behind or just inherited a late start from its predecessor. They can&#8217;t tell fault from inheritance \u2014 so schedulers end up defending delays that were never really delays.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So how&nbsp;<em>would<\/em>&nbsp;a tool tell the difference?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>The difference is in the logic, not the dates<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">An activity&#8217;s dates don&#8217;t tell you why it moved. The logic does.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Go back to the finish-to-start chain. The predecessor finishes two days late; the successor gets pushed two days behind it. A comparison tool sees two slipped activities. But the predecessor moved because something about&nbsp;<em>it<\/em>&nbsp;changed \u2014 it took longer, started later, lost a resource. The successor moved only because its predecessor did. Nothing about the successor changed; its start was&nbsp;<em>driven<\/em>&nbsp;by the link, not by anything it did.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That distinction \u2014 did this change originate here, or was it driven from upstream \u2014 is exactly what a dates-only comparison throws away. To recover it, you have to trace the driving logic back from each change to find where it actually started.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>How Steelray Delay Analyzer separates the two<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">That&#8217;s the work Delay Analyzer automates. Instead of comparing dates in isolation, it analyzes each update in the context of the schedule&#8217;s logic and calendars and traces the driving path \u2014 the chain actually controlling the finish date \u2014 through every window. A few things fall out of that:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Driven movement is identified as driven.<\/strong>\u00a0When an activity moved only because its predecessor did, Delay Analyzer sees the change came down the link rather than originating in the activity \u2014 so inherited slips aren&#8217;t lumped in with real ones. (And because it looks at what actually changed, a single slip isn&#8217;t double-counted as both a start and a finish delay.)<\/li>\n\n\n\n<li><strong>Schedule changes aren&#8217;t mistaken for field delays.<\/strong>\u00a0A finish date can move because a duration grew, a relationship was modified, or a calendar changed \u2014 not just because work fell behind. Delay Analyzer separates real progress slippage from these revisions.<\/li>\n\n\n\n<li><strong>Only changes that reached the finish date count.<\/strong>\u00a0A slip absorbed by float never moved completion, and the analysis reflects that. What surfaces is the short, honest list of changes that actually drove the date \u2014 not every activity that moved.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>What that changes for the scheduler<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Picture the monthly update meeting. Instead of a report that flags every activity that moved \u2014 and leaves you to explain, one by one, which slips were real and which were inherited \u2014 you walk in with the distinction already drawn. When a reviewer points at an activity, you can show it started late because its predecessor did, ran as planned once it began, and that the real driver sits upstream.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The conversation moves from defending the schedule to explaining the project \u2014 and the schedule stops looking like it&#8217;s full of delays every period, and starts looking like what it is: a well-maintained plan where a handful of real drivers explain the movement.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you&#8217;d like to see how Delay Analyzer traces the driving path and separates what an activity did from what it inherited, you can learn more on the\u00a0<a href=\"https:\/\/steelray.com\/DelayAnalyzer?code=blog1132\" target=\"_blank\" rel=\"noopener\">Steelray Delay Analyzer product page<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Last time, we left off with a problem: schedule-comparison tools flag an activity as &#8220;delayed&#8221; whether it actually fell behind or just inherited a late start from its predecessor. They can&#8217;t tell fault from inheritance \u2014 so schedulers end up defending delays that were never really\u2026<\/p>\n","protected":false},"author":3,"featured_media":1135,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[18,37,12],"tags":[58,69,72,74],"class_list":["post-1132","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-analyzers","category-delay-analysis","category-project-management","tag-critical-path","tag-delay-analysis","tag-primavera-p6","tag-schedule-delay"],"_links":{"self":[{"href":"https:\/\/steelray.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1132","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/steelray.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/steelray.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/steelray.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/steelray.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1132"}],"version-history":[{"count":4,"href":"https:\/\/steelray.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1132\/revisions"}],"predecessor-version":[{"id":1138,"href":"https:\/\/steelray.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1132\/revisions\/1138"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/steelray.com\/blog\/index.php?rest_route=\/wp\/v2\/media\/1135"}],"wp:attachment":[{"href":"https:\/\/steelray.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1132"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/steelray.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1132"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/steelray.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1132"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}