Each hand-off resends context the next step needs: the task slice, the relevant files, and prior results. That context costs tokens and latency on every hop, and the exact overhead varies by tool: measure it.
example parameters: 10 hand-offs, 2000 tokens resent per hand-off,
assume 1 million input tokens cost 3 units
tokens resent = 10 x 2000 = 20000
cost = 20000 x 3 / 1000000 = 60000 / 1000000 = 0.06 units
latency illustration: 10 hand-offs x 4 units of waiting each = 40 unitsWhen each of n steps succeeds with probability p, and steps fail independently, the chain succeeds with probability p^n. The formula needs that independence assumption: inherited defects break it.
p = 0.9, n = 5:
0.9^2 = 0.81
0.9^3 = 0.729
0.9^4 = 0.6561
0.9^5 = 0.59049
share succeeding = 59.049%, share with at least one miss = 40.951%
check: 59.049 + 40.951 = 100.000
p = 0.8, n = 3: 0.8^2 = 0.64, 0.8^3 = 0.512
reviewer with catch rate q on defect rate d: residual = d x (1 - q)
d = 0.3, q = 0.8: residual = 0.3 x 0.2 = 0.06
two independent reviewers: residual = 0.3 x 0.2 x 0.2 = 0.012The program below checks the chain arithmetic with exact fractions. It stands in for step outcomes with scripted values and proves nothing about any real model.
from fractions import Fraction
def check(cond, msg):
if not cond:
print("FAIL: " + msg)
raise SystemExit(1)
chain = Fraction(9, 10) ** 5
check(chain.numerator == 59049 and chain.denominator == 100000, "chain value wrong")
short = Fraction(4, 5) ** 3
check(short == Fraction(64, 125), "short chain wrong")
residual = Fraction(3, 10) * (1 - Fraction(4, 5))
check(residual == Fraction(3, 50), "residual wrong")
print("PASS: 5-step chain at 0.9 per step is 59049 of 100000 with residual 3 of 50")The common slip is adding success rates instead of multiplying them. Rates near 1 look harmless per step and still collapse over long chains.
0.512. It is 0.8^3: 0.64 times 0.8.
0.012. It is 0.3 times 0.2 times 0.2.