Multiple weapon profiles into one shared defender. Exact distribution, the per-profile breakdown, and the points-efficiency view — not just “on average.”
The interactive companion to On Average. Build a full attack from several weapon profiles at once, fold in modifiers, re-rolls, −1 damage, and Feel No Pain, and see the full exact distribution — mean, median, mode — for the whole attack. The math is exact: no Monte Carlo. The Archive holds no datasheet or points database; you type every value off your own datasheet / MFM and the tool stays on the right side of the IP line.
The distribution is computed by probability convolution and dynamic programming — not by Monte Carlo simulation. The hit, wound, save, damage, and allocation stages are explicit; B.1 keywords (the ±1 hit / wound modifiers, the four standard re-rolls, −1 damage with the 10th-edition floor of 1, and Feel No Pain N+) compose without crit-stream splitting, so the per-attack unsaved probability stays a clean single number and the unsaved-wound count is exactly Binomial(A, q). The total damage is a compound sum of the per-wound damage distribution; the models-destroyed view is the no-spillover allocation DP. Multiple profiles convolve their damage and chain through one allocation DP. Every probability the chart shows is exact to floating-point precision.
The current build (Phase B.1) covers the non-critical keywords. The critical-interaction keywords — Sustained Hits, Lethal Hits, Devastating Wounds, Anti-X — remain for Phase B.2 (the staged pipeline is built to host them without another refactor).
The math is independently verified by npm run verify:damage against scripts/damage_phase_b_reference.py — two implementations of the same algorithm cross-checking each other on every commit, plus a regression cross-check against scripts/on_average_examples.py (the Phase A reference the On Average article cites).