Percentages that always total 100

Type one stage's percentage and the rest rebalance automatically; anything you typed stays pinned.

What it is

SetStagePercent clamps the value you type to whatever is left after the pinned stages, marks that stage pinned, and hands the remainder to the last unpinned stage. Adding or removing a stage re-runs the same rebalance, so the list can never be saved at 97% or 104%.

Also called: stage percentages · pinned stages · auto balance · payment split

See it
Percentages that always total 100
Apr
May
Jun
Jul
Delia Yoder — Equipment Storage
Framing
Ivy Brubaker — Equipment Storage
Concrete
Marlin Hoover — 40×64 Shop
Trim
Sutter Kline — 40×64 Shop
Framing
Marlin Hoover — Equipment Storage
Concrete
Framing crewConcrete crewTrim crew
Typing 40 into the Down stage and watching Final drop to absorb the difference while Delivery, which was typed earlier, stays put. src/lib/paymentSchedule.ts. Sample data — no customer information appears here.
How it works
  1. 1rebalancePayment() finds the last unpinned stage and sets it to 100 minus everything else.
  2. 2setStagePercent() computes the maximum available (100 minus pinned others) and clamps to it.
  3. 3addPaymentStage / removePaymentStage both rebalance after the change.
  4. 4A single-stage list refuses to be emptied.
Why we built it

A percentage schedule that does not total 100 either underbills the job or overbills the customer, and the arithmetic was being done in a builder's head between phone calls. Stages rebalance themselves so the list always adds to 100, and any stage can be pinned — a builder who types 30% means 30%, so the remainder moves somewhere else instead of quietly rewriting their number.

The problem
  • Schedules saved with percentages that do not total 100.
  • Editing one stage silently changing a figure the builder deliberately set.
Sound familiar?
What you get
No mental arithmetic to make a schedule balance.
Deliberate figures are respected; only the remainder moves.

See it on your own jobs

Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.

or keep browsing features →