Concepts → Dragon Age stunt economy

Dragon Age stunt economy — when P(stunt) ≠ P(success) × P(doubles)

The AGE system fires Stunt Points on success AND any-two-of-three dice matching. The naive estimate P(stunt) = P(success) · P(doubles) is exactly right at TN=11 with no modifiers — and wrong everywhere else, because doubles cluster on the modal sums of 3d6. Worked out with exact rationals: TN=10 sits 1/72 below independence, TN=12 sits 1/72 above, and E[SP | stunt] is 217/48 ≈ 4.52 — well above the unconditional stunt-die mean of 3.5.

The short answer

In the AGE system, every test rolls 3d6 + ability + focus vs. TN. One of the three d6s is the stunt die (a different colour). On a successful test where any two of the three dice match, the stunt die's face becomes Stunt Points to spend on combat manoeuvres.

The trigger conditions on both success and doubles. If they were independent, P(stunt) would always be the product. They aren't — doubles configurations like (5, 5, b) have a much higher mean than (1, 1, b), so the doubles distribution is centred tightly on the modal sum. Picking a TN above 11 over-counts the high-doubles families inside the success half; picking a TN below 11 under-counts them. Only at TN=11 with no modifiers does 3d6's mirror symmetry split the doubles mass exactly in half.

Independence works at exactly one TN

3d6 is symmetric around 10.5 — the joint distribution of (a, b, c) is invariant under (a, b, c) → (7 − a, 7 − b, 7 − c), which maps doubles to doubles and sums to 21 − sum. Success at TN=11 means sum ≥ 11; the symmetry maps that to sum ≤ 10, the failure half. Every doubles outcome has exactly one mirrored partner across the threshold, so the doubles mass splits exactly evenly:

P(success ∧ doubles) = 1/2 · P(doubles) = 1/2 · 4/9 = 2/9.

And P(success) · P(doubles) = 1/2 · 4/9 = 2/9 too. Independence holds — but as a coincidence of two separate facts (P(success) = 1/2, mirror symmetry of the doubles set), not because the events are actually independent.

Move off TN=11 in either direction and the trick stops working.

Where the correlation shows up

Three exact-rational results, no modifiers, computed by direct enumeration of the 216 outcomes of (a, b, c):

TN P(success) Independence prediction Actual P(stunt) Δ vs. independence
10 5/8 = 62.5% 5/18 = 27.78% 19/7226.39% −1/72
11 1/2 = 50.0% 2/922.22% 2/922.22% 0
12 3/8 = 37.5% 1/616.67% 13/7218.06% +1/72

The deviation is small in absolute terms — about 1.4 percentage points — but the sign carries information. Below TN=11 the success cutoff is in the lower half of the doubles distribution and excludes more of it; above TN=11 the cutoff sits in the upper half and includes proportionally more. The modal-sum clustering of doubles is the entire effect.

The 39 success-doubles triples at TN=12 enumerated explicitly: (3,3,6), (4,4,5), (4,4,6), (5,5,2), (5,5,3), (5,5,4), (5,5,6), (6,6,1), (6,6,2), (6,6,3), (6,6,4), (6,6,5) (3 permutations each = 36) plus (4,4,4), (5,5,5), (6,6,6) (1 each) = 39. None of (1,1,b) or (2,2,b) qualifies — the cutoff has eaten the low-double half of the doubles distribution.

The conditional SP distribution isn't uniform either

Even after a stunt fires, the stunt die's value is not uniformly distributed. The same clustering effect that biased P(stunt) upward at high TN biases the stunt-die value upward whenever a stunt fires at all. At TN=11 with no modifiers, the 48 success-doubles outcomes bucket like:

SP value Outcomes (of 48) P(SP = k | stunt)
121/244.17%
221/244.17%
377/4814.58%
493/1618.75%
5147/2429.17%
6147/2429.17%

The expected value works out to exactly:

E[SP | stunt at TN=11]
  = (1·2 + 2·2 + 3·7 + 4·9 + 5·14 + 6·14) / 48
  = 217 / 48
  ≈ 4.5208.

Substantially above the unconditional stunt-die mean of 3.5. Climb to TN=12 and the cutoff selects more of the (5,5,·) and (6,6,·) families: E[SP | stunt at TN=12] = 184/39 ≈ 4.72. Harder tests don't just trigger less often — when they do trigger, the stunts are more expensive on average.

What you can afford on a triggered stunt

Most published Dragon Age stunts cost between 1 and 5 SP. The reachability table at TN=11, no modifiers — given that a stunt fires:

Cost P(SP ≥ cost | stunt) Example stunt
1 SP100%Skirmish, Knock Prone
2 SP23/2495.83%Mighty Blow, Disarm, Pierce Armor
3 SP11/1291.67%The Upper Hand
4 SP37/4877.08%Lethal Blow
5 SP7/1258.33%Dual Strike
6 SP7/2429.17%(stunts at this cost are rare)

Combine with the P(stunt) = 2/9 headline number for the unconditional reach:

P(SP ≥ 4 across all rolls)
  = P(stunt) · P(SP ≥ 4 | stunt)
  = 2/9 · 37/48
  = 37/216
  ≈ 17.13%.

About one in six tests at TN=11 lets you afford a 4 SP stunt. One in three triggered tests is a 6 SP haul. The economy is more generous than the 2/9 trigger rate suggests because the conditional distribution skews high.

How modifiers reshape the picture

ability + focus shifts the effective TN linearly: ability +2 and focus +2 against TN=11 is mathematically identical to +0/+0 against TN=7. That moves the success cutoff into the lower-doubles half of the distribution — well below the symmetry centre — and the correlation flips negative.

For a trained PC (focus +2, ability +3) facing a typical TN=11 obstacle, the effective TN is 6, which means success ≈ 95% and the stunt-trigger rate climbs to around 40% of all rolls. But the conditional E[SP | stunt] drops back toward 3.5 — the easier the test, the closer the stunt-die conditional gets to the unconditional uniform. Hard tests trigger stunts less often but pay better when they do.

The engine surface that backs every number on this page is one function call, exposed via NIF and cached in ETS:

{:ok, r} = Diceplots.Engine.analyze_3d6_test(ability_mod, focus_mod, tn)
r.p_stunt_exact            #=> "13 / 72"  (at TN=12, +0)
r.expected_sp_given_stunt  #=> 4.5208... (at TN=11, +0)

Trigger defaults to :success_and_doubles (standard AGE). :any_doubles is the variant where doubles fire a stunt regardless of success — useful for house-rule analyses and for confirming the trigger probability is exactly 4/9 uniformly across modifiers.

Where this matters in practice

Stunt-economy reasoning shows up in three places worth modelling with the exact-rational substrate rather than the product-law approximation.

Encounter design. Dropping a TN from 13 to 11 doesn't just make the test easier — it changes the shape of the stunt economy because the success cutoff moves through the doubles cluster. Tests that sit on either side of the TN=11 symmetry centre have meaningfully different stunt-frequency vs. stunt-richness tradeoffs. Boss fights at high TN trigger fewer stunts but, conditional on a trigger, are more likely to deliver a Lethal Blow.

Focus value. Picking up a focus is usually framed as +2 on the test — but it also moves the effective TN, which moves the success-doubles correlation sign. Focus on a TN=13 test pulls you toward the symmetry centre and trades a small amount of conditional stunt richness for reliability. Focus on a TN=9 test pushes you below centre and trades the other way. The reliable-vs-nuke tradeoff applies here at the stunt-economy level.

Cross-system: any "success-AND-trigger" mechanic. The product-law assumption fails the same way for any system where a secondary trigger condition correlates with the success threshold — Pendragon's critical-success rules, FATE's bonus effects on success-with-style, Cthulhu's hard/extreme success bands (covered in Call of Cthulhu's success bands). The symmetry-at-the-modal-sum trick is specific to 3d6, but the "naive product overstates by some fraction of a percentage point" pattern is general.

Common questions

Why isn't P(stunt) just P(success) × P(doubles)?
Because the success and doubles events aren't independent. Doubles outcomes (a,a,b) cluster on the middle sums of 3d6 — the (5,5,b) and (6,6,b) families pull the doubles distribution above the modal sum of 10–11, and (1,1,b) / (2,2,b) pull it below. Once the success threshold sits anywhere off the symmetry centre (TN=11 with no modifiers), success either over- or under-counts the doubles outcomes relative to the product. At TN=10 actual P(stunt) is 19/72 vs. 20/72 from independence; at TN=12 it's 13/72 vs. 12/72. Same magnitude, opposite sign.
Where does the symmetry-at-TN=11 result come from?
3d6 sums are symmetric around 10.5 — the joint distribution of (a, b, c) is invariant under (a, b, c) → (7-a, 7-b, 7-c), which maps doubles to doubles and sums to 21-sum. Success at TN=11 means sum ≥ 11; the symmetry sends that to sum ≤ 10, the failure half. So every doubles outcome has exactly one mirrored partner across the threshold, and the doubles mass splits exactly evenly. P(success ∧ doubles) = 1/2 · P(doubles), which equals P(success) · P(doubles) precisely because P(success) = 1/2. With ability and focus modifiers the symmetry centre shifts — independence holds at the effective TN that lands the cutoff at sum=11 (e.g. TN=13 with focus +2).
Why is E[SP | stunt] above 3.5?
The stunt die alone is uniform on 1..6, so its standalone mean is 3.5. Conditioning on (success ∧ doubles) biases the conditional distribution upward because most qualifying triples come from the (5,5,b) and (6,6,b) families — bucketing the 48 success-doubles outcomes at TN=11 by the stunt die value gives c=1: 2, c=2: 2, c=3: 7, c=4: 9, c=5: 14, c=6: 14. The expected value works out to exactly 217/48 ≈ 4.5208. At TN=12 it climbs further to 184/39 ≈ 4.72 — moving the cutoff up selects against the (1,1,b)/(2,2,b) families and concentrates the doubles mass on high c.
How does this change with focus and ability modifiers?
Modifiers shift the effective TN linearly: ability +2 / focus +2 vs. TN 11 is mathematically identical to ability 0 / focus 0 vs. TN 7. So a +4 PC against a TN=11 obstacle is at effective TN=7 — well below the symmetry centre, with P(stunt) coming in below independence. As characters tier up, the success-doubles correlation flips sign more often than untrained tests at the modal TN — and the most counterintuitive cases (high deviation from independence) cluster at the extremes of the effective-TN range.