Skip to content
All posts

August 11, 2026 · 5 min read

Weighted Percent Complete: Why Simple Averages Get Rollups Wrong

A worked example of weighted percent-complete rollups — and the quiet failure that makes unweighted trackers overstate readiness.

Most spreadsheet trackers roll up progress with AVERAGE(). That's fine exactly as long as every child item is the same size — which, on a facility project, is never. The result is a summary that overstates readiness whenever the small easy items finish first, which is always.

The worked example

Milestone 1
├─ Activity 1.1 (weight 3)
│   ├─ Task A (weight 1, 100%)
│   └─ Task B (weight 1,   0%)   → Activity 1.1 = 50%
└─ Activity 1.2 (weight 1)
    └─ Task C (weight 1,  80%)   → Activity 1.2 = 80%

Simple average:   (50 + 80) / 2           = 65%
Weighted rollup:  (3·50 + 1·80) / (3 + 1) = 57.5%

Activity 1.1 is three times the work of 1.2, and it's half done. The simple average hides that behind Task C's easy 80%. Seven and a half points may not sound like much — until it's the difference between “we start up Thursday” and “we don't”.

The formula

parent % = Σ(child.weight × child.%) / Σ(child.weight)

Applied bottom-up: tasks → activities → milestones → phases → project. Two properties matter in practice: only leaf tasks take a manual percent (everything above is computed, so nobody can hand-tune a summary), and weights default to 1 so the scheme degrades to a plain average until someone deliberately says otherwise.

Choosing weights without a fight

  • Weight by rough effort share, not precision — 3-to-1 beats arguing about 3.2-to-1.
  • Set weights when the tree is built, review them when scope changes, and record who changed what.
  • Watch the edge cases: siblings that are all zero-weight, empty parents (“no work defined” is not “0% done”), and deleted items that must leave both the numerator and denominator.

Fieldcurve computes exactly this rollup transactionally on every edit — and every computed number can show its contribution breakdown (weight × percent, child by child), so when a manager asks “why is this milestone only 57.5%?”, the answer is a hover, not an afternoon.

Fieldcurve puts these ideas to work: weighted rollups, first-class blocked status, Excel round-trip, and an audit trail under every number.

See it with your own tracker →