When to Use This Skill
Use this skill when you need to:
- Calculate project duration using critical path method (CPM)
- Identify critical path tasks (zero float tasks that drive project duration)
- Perform PERT analysis (optimistic/most_likely/pessimistic time estimates)
- Assess timeline risks (statutory deadline compliance, float analysis)
- Calculate resource requirements (staff, consultants, budget by phase)
- Optimize project schedule (identify bottlenecks, dependency chains)
- Generate Gantt charts for visualization and communication
Critical Path Method (CPM) Fundamentals
What is Critical Path?
Critical path: Longest sequence of dependent tasks that determines minimum project duration.
Critical tasks: Tasks with zero total float (any delay directly extends project completion).
Total float: Amount of time a task can be delayed without extending project duration.
- Critical path tasks: Total float = 0 days
- Non-critical tasks: Total float > 0 days (schedule flexibility)
Free float: Amount of time a task can be delayed without delaying any successor.
Forward Pass & Backward Pass
Forward pass: Calculate earliest start/finish times
- Start with day 0
- Early start = max(predecessor early finishes)
- Early finish = early start + duration
Backward pass: Calculate latest start/finish times
- Start with project end date
- Late finish = min(successor late starts)
- Late start = late finish - duration
Float calculation:
- Total float = late start - early start (or late finish - early finish)
- Free float = min(successor early starts) - early finish
Example Calculation
Tasks:
- A: Duration 10 days (no predecessors)
- B: Duration 20 days (after A)
- C: Duration 15 days (after A)
- D: Duration 5 days (after B and C)
Forward pass:
- A: ES=0, EF=10
- B: ES=10, EF=30
- C: ES=10, EF=25
- D: ES=30 (max of B and C), EF=35
Backward pass:
- D: LS=30, LF=35
- B: LS=10, LF=30
- C: LS=15, LF=30
- A: LS=0, LF=10
Float:
- A: 0 (critical)
- B: 0 (critical)
- C: 5 days (LS 15 - ES 10)
- D: 0 (critical)
Critical path: A → B → D (35 days)
PERT Analysis
Three-Point Estimates
PERT uses three time estimates to account for uncertainty:
- Optimistic (O): Best-case scenario (everything goes perfectly)
- Most Likely (M): Realistic scenario (normal conditions)
- Pessimistic (P): Worst-case scenario (significant problems)
PERT Formulas
Expected time (weighted average):
TE = (O + 4M + P) / 6
Standard deviation:
σ = (P - O) / 6
Variance:
σ² = ((P - O) / 6)²
Project variance (sum of critical path task variances):
Project σ² = Σ(critical path task variances)
Project standard deviation:
Project σ = √(Project σ²)
Confidence Intervals
90% confidence interval (Z = 1.645):
Lower bound = Expected duration - 1.645 × Project σ
Upper bound = Expected duration + 1.645 × Project σ
95% confidence interval (Z = 1.960):
Lower bound = Expected duration - 1.960 × Project σ
Upper bound = Expected duration + 1.960 × Project σ
Example PERT Calculation
Task: Prepare expropriation plan
- Optimistic: 14 days
- Most Likely: 21 days
- Pessimistic: 35 days
Expected time:
TE = (14 + 4×21 + 35) / 6 = (14 + 84 + 35) / 6 = 133 / 6 = 22.2 days
Standard deviation:
σ = (35 - 14) / 6 = 21 / 6 = 3.5 days
Variance:
σ² = 3.5² = 12.25
Interpretation: Task will take approximately 22 days, with ±3.5 days variability.
Integration with OEA Statutory Deadlines
Statutory Deadline Constraints
3-Month Registration Deadline (OEA s.9(2)):
- Expropriation plan must be registered within 90 days of approval
- Deadline is absolute (approval expires if missed)
- Critical path must complete plan registration by day 85 (5-day buffer)
Form 2 Service (Best Practice):
- Serve Notice of Application 30 days before registration
- Not statutory, but reduces procedural challenges
Form 7 Service (OEA s.11):
- Serve Notice of Expropriation at least 30 days before possession
- Statutory minimum (can give more time)
Deadline Risk Assessment
Buffer analysis:
Buffer = Statutory deadline - Task late finish
Risk levels:
- CRITICAL: Buffer < 0 (task finishes AFTER deadline)
- HIGH: Buffer 0-5 days (insufficient buffer)
- MEDIUM: Buffer 5-10 days (below minimum buffer)
- LOW: Buffer > 10 days (adequate buffer)
Example:
- Statutory deadline: Day 90 (registration)
- Task late finish: Day 91 (plan registration)
- Buffer: 90 - 91 = -1 day (CRITICAL risk - misses deadline)
Calculator Usage
Input Format
JSON input structure:
{
"project_name": "Transit Station Property Acquisition",
"approval_date": "2025-03-15",
"tasks": [
{
"id": "A",
"name": "Obtain approval",
"duration": 30,
"optimistic": 20,
"most_likely": 30,
"pessimistic": 45,
"resources": {
"staff": 2,
"consultants": {"legal": 1},
"budget": 15000
}
}
],
"dependencies": [
["A", "B"]
],
"statutory_deadlines": {
"G": 90
},
"buffer_days": 10
}
Command Line Usage
Basic calculation:
python project_timeline_calculator.py sample_1_simple_acquisition.json
Specify output location:
python project_timeline_calculator.py input.json -o Reports/timeline_analysis.md
JSON output format:
python project_timeline_calculator.py input.json -f json -o results.json
Verbose output:
python project_timeline_calculator.py input.json -v
Output Report
Markdown report includes:
- Executive Summary: Project duration, critical path percentage, risk summary
- Critical Path Analysis: Sequence of critical tasks with schedule
- Statutory Deadlines: OEA milestone dates and compliance status
- Risk Assessment: Timeline risks by severity (critical/high/medium/low)
- Task Details Table: All tasks with early/late dates, float, criticality
- Gantt Chart: Text-based visualization of timeline
- Resource Requirements: Total and peak resource needs
- Dependency Analysis: Complexity metrics and bottleneck identification
Resource Requirements Analysis
Resource Calculation
For each task, specify:
- Staff: Number of staff required (concurrent)
- Consultants: Number by type (legal, surveyor, appraiser, etc.)
- Budget: Cost allocated to task
Calculator computes:
- Total staff-days: Σ(staff × duration)
- Total consultant-days: Σ(consultants × duration) by type
- Total budget: Σ(task budgets)
- Peak resources: Maximum concurrent staff/consultants at any point
Resource Leveling
Identify resource bottlenecks:
- Tasks with peak resource requirements (> 5 concurrent staff)
- Critical path tasks with high resource needs (no flexibility)
- Resource conflicts (multiple tasks requiring same consultant)
Mitigation strategies:
- Delay non-critical tasks (use available float)
- Increase resources during peak periods
- Outsource specialist work (appraisals, surveys)
Dependency Analysis
Dependency Complexity Metrics
Total dependencies: Number of predecessor-successor relationships
Average dependencies per task: Total dependencies ÷ Total tasks
- Simple project: < 1.5 dependencies/task
- Moderate complexity: 1.5 - 2.5 dependencies/task
- High complexity: > 2.5 dependencies/task
Dependency density: Total dependencies ÷ (Total tasks)²
- Measures interconnectedness
- Higher density = more complex, rigid schedule
Bottleneck tasks: Tasks with 3+ dependencies (predecessors or successors)
- High risk: Any delay cascades through project
- Monitor closely, allocate extra resources
Dependency Types
Finish-to-Start (FS): Successor starts after predecessor finishes
- Example: "Prepare plan" → "Review plan"
- Most common dependency type
Start-to-Start (SS): Tasks start together
- Example: "Negotiation" starts when "Appraisal" starts
- Used for parallel work streams
Finish-to-Finish (FF): Tasks finish together
- Example: "Legal review" finishes when "Plan preparation" finishes
- Used for coordinated completions
Start-to-Finish (SF): Rare, successor finishes when predecessor starts
- Uncommon in expropriation projects
Note: Current calculator supports Finish-to-Start only. For other types, model as multiple FS dependencies.
Risk Assessment
Timeline Risk Categories
1. Statutory Deadline Risk:
- Task late finish exceeds statutory deadline
- Severity: CRITICAL (approval expires)
- Mitigation: Crash critical path, expedite reviews, obtain second approval
2. Critical Path No-Float Risk:
- Critical path task with zero schedule flexibility
- Severity: MEDIUM
- Mitigation: Add buffer time, parallel work streams, increase resources
3. Long Duration Risk:
- Task duration > 60 days (potential for unforeseen delays)
- Severity: LOW
- Mitigation: Break into sub-tasks, weekly monitoring
4. Dependency Bottleneck Risk:
- Task with 3+ dependencies (delays cascade)
- Severity: MEDIUM
- Mitigation: Early coordination, dedicated resources
Risk Mitigation Strategies
Crashing the schedule (reduce critical path duration):
- Add resources to critical path tasks
- Work overtime / weekends
- Outsource work to expedite
- Fast-track (overlap dependent tasks if possible)
Fast-tracking:
- Start successor before predecessor 100% complete
- Risk: Rework if predecessor output changes
- Example: Start plan review while plan preparation 80% complete
Buffering:
- Add contingency time to critical path
- Project buffer: 10-15% of critical path duration
- Feeding buffers: Protect critical path from non-critical delays
Worked Example
Sample Input
Project: Transit station property acquisition (see samples/sample_1_simple_acquisition.json)
Key tasks:
- A: Obtain approval (30 days)
- B: Prepare plan (21 days) - after A
- C: Plan review (7 days) - after B
- D: Corrections (10 days) - after C
- E: Solicitor approval (7 days) - after D
- F: Registry scheduling (15 days) - after E
- G: Plan registration (1 day) - after F
- H: Appraisal (30 days) - after A, parallel to B-G
- I: Prepare Form 2 (5 days) - after A
- J: Serve Form 2 (1 day) - after I
Statutory deadline: Task G (registration) must complete by day 90.
Critical Path Analysis
Critical path: A → B → C → D → E → F → G
Project duration: 30 + 21 + 7 + 10 + 7 + 15 + 1 = 91 days
Problem: Critical path (91 days) exceeds statutory deadline (90 days) by 1 day!
Buffer: 90 - 91 = -1 day (CRITICAL risk)
PERT Analysis
Task B (Prepare plan):
- Optimistic: 14 days
- Most Likely: 21 days
- Pessimistic: 35 days
Expected time: (14 + 4×21 + 35) / 6 = 22.2 days (vs. 21 deterministic)
Standard deviation: (35 - 14) / 6 = 3.5 days
Project with PERT estimates: ~92 days (expected)
- 90% confidence interval: 86 - 98 days
- Probability of meeting 90-day deadline: ~30% (not acceptable)
Risk Mitigation
Option 1: Crash critical path
- Reduce Task B (plan preparation) from 21 → 18 days (add surveyor)
- Reduce Task C (plan review) from 7 → 5 days (priority review)
- New duration: 88 days (2-day buffer)
Option 2: Fast-track
- Start Task C (review) when Task B is 90% complete (overlap 2 days)
- Start Task F (registry scheduling) during Task E (parallel booking)
- New duration: 87 days (3-day buffer)
Option 3: Parallel work streams
- Split plan preparation into multiple parcels
- Register parcels as ready (rolling registration)
- Risk: Complex coordination, higher legal costs
Recommended: Combination of Options 1 and 2 to achieve 85-day completion (5-day buffer).
Integration with Other Skills
Complementary skills:
-
expropriation-statutory-deadline-tracking:
- Operational deadline monitoring (weekly checks, escalation)
- This skill: Quantitative schedule calculation
-
expropriation-compensation-entitlement-analysis:
- Legal entitlement to compensation components
- This skill: Timeline for compensation calculation tasks
-
land-assembly-expert:
- Multi-property acquisition strategy
- This skill: Timeline for land assembly projects
Automated Workflow
Calculator follows PDF → JSON → Python → Report pattern:
- Input: User creates JSON file with tasks, dependencies, deadlines
- Validation: Schema validation ensures data integrity
- Calculation: PERT/CPM analysis computes critical path
- Risk Assessment: Identifies deadline compliance and timeline risks
- Output: Markdown report with Gantt chart, JSON data export
No manual intervention required - fully automated from input to report.
Slash Command Integration
Argument hint: <project-milestones-json> [--output <report-path>]
Required tools: Read, Write, Bash
Canonical invocation (how the slash command passes user input):
python plugins/expropriation-law/skills/expropriation-timeline-expert/timeline_generator.py {{arg0}}
Usage examples:
# Generate timeline
/expropriation-timeline project_milestones.json
# Custom output path
/expropriation-timeline samples/transit_corridor_timeline.json --output $CLAUDE_PROJECT_DIR/Reports/timeline.md
Related commands: /briefing-note (include timeline in executive briefing), /board-memo (include timeline in board approval memo), /land-assembly (multi-parcel timeline with phasing)
Related agents: Stevi (compliance and deadline watchdog), Christi (legal procedures), Katy/Shadi (project planning)
Limitations
Current implementation:
- Supports Finish-to-Start (FS) dependencies only
- Assumes deterministic resource availability
- Does not optimize resource allocation (requires manual leveling)
- Weekends/holidays not modeled (calendar days only)
For advanced features:
- Use project management software (Microsoft Project, Primavera P6)
- Resource optimization algorithms
- Monte Carlo simulation (10,000+ scenarios)
- Earned value analysis (budget vs. actual tracking)