Shapley value is framed as an average over orderings and compared against an exact precomputed value
Your three GTM channels - paid ads, content marketing, and outbound sales - generated $700K in Pipeline last quarter. The VP of Marketing claims credit for $500K because removing content collapses the Pipeline. The sales lead says outbound is worth $350K because without it those deals never close. Add up everyone's claimed contribution and you get $1.2M on $700K of actual Pipeline. Someone is wrong - or more precisely, everyone is measuring their marginal contribution against a different baseline, and the total doesn't add up.
The Shapley value fairly allocates total value among contributors by averaging each one's marginal contribution across every possible ordering they could have joined. It's the only Allocation that sums exactly to the total, treats symmetric contributors equally, and gives zero credit to contributors who add nothing.
You already know that the marginal contribution of player i to coalition S is v(S ∪ {i}) - v(S). The problem: that number changes depending on what's already in S. Paid ads add $200K when they're the first channel live, but $400K when content and sales are already running (because the traffic has somewhere to convert).
The Shapley value resolves this by asking: what if we averaged over every possible order the contributors could have arrived? For each ordering (permutation), you record what i adds when it's their turn to join. Then you take the Expected Value across all orderings.
Formally, for n contributors, there are n! orderings. The Shapley value of contributor i is:
φ_i = (1/n!) × Σ [marginal contribution of i in each ordering]
There's also an equivalent exact formula that groups by coalition size instead of enumerating orderings:
φ_i = Σ over S⊆N\{i} of [ |S|! × (n-|S|-1)! / n! ] × [ v(S ∪ {i}) - v(S) ]
Both give the same number. The ordering version is easier to reason about. The coalition formula is what you'd precompute in a spreadsheet or script. For 3 contributors, the ordering approach walks through 6 permutations. The coalition formula evaluates, for each contributor, the 4 subsets of the other two players - one of size 0, two of size 1, and one of size 2. Both are tractable by hand. For 10+ contributors, you'd sample thousands of random orderings rather than enumerate all 3.6 million, and average the samples.
Three P&L problems that Shapley solves cleanly:
1. Attribution across channels. Giving 100% credit to the last channel that touched a deal ignores every channel that built awareness and interest upstream. Giving 100% credit to the first channel ignores everything that converted and closed. Both are wrong when channels have synergies. Shapley gives you a defensible split that sums to the actual total - whether you're attributing Pipeline, Revenue, or any other shared outcome. No double-counting, no undercounting.
2. Cost sharing across business units. If three product lines share a platform team, how do you allocate that Cost Center? Splitting evenly ignores that one product line drives 80% of the platform complexity. Splitting by usage ignores that the platform wouldn't exist without the first product line's initial investment. Shapley accounts for both by considering every possible ordering of who showed up first.
3. Headcount and Budget decisions. When you're running a P&L and need to cut one channel or team, the naive move is to cut whoever has the lowest standalone value. But standalone value ignores synergies. Shapley tells you who's genuinely contributing the least in the context of everything else you're running. That's the difference between cutting the channel that looks cheap and cutting the channel that actually adds the least marginal value.
Step 1: Define the value function. For every possible subset (coalition) of your contributors, determine the total value that subset produces. This is v(S). With 3 contributors (A, B, C) you need 8 values: the empty set, three singletons, three pairs, and the full set.
Step 2: Enumerate orderings (or use the formula). Write out every permutation. For each, walk through the ordering left to right, recording what each contributor adds when they join.
Step 3: Average. Each contributor's Shapley value is the mean of their marginal contributions across all orderings.
Step 4: Sanity check. The Shapley values must sum to v(N) - the total value of the full coalition. This is called the efficiency property. If they don't sum correctly, you have a calculation error.
Key properties that make Shapley the right choice:
Use Shapley when:
Don't use Shapley when:
v(S) is just the sum of individual values, marginal contribution is constant across orderings and Shapley reduces to each contributor's standalone value. You don't need the machinery.v(S) for subsets. If you can't measure what happens when you remove a channel - what Pipeline looks like without channel X - you can't populate the value function. This often requires Sensitivity Analysis: toggling contributors on and off and measuring the result. Consider a simpler Scoring Model or Conjoint Analysis instead.You run three GTM channels: Paid Ads (A), Content/SEO (B), and Sales Outreach (C). You've estimated the Pipeline each subset would generate (via Sensitivity Analysis - toggling channels on and off across test windows last quarter):
| Coalition | Pipeline |
|---|---|
| None | $0 |
| {A} | $200K |
| {B} | $150K |
| {C} | $100K |
| {A, B} | $500K |
| {A, C} | $350K |
| {B, C} | $300K |
| {A, B, C} | $700K |
Note: $200K + $150K + $100K = $450K, but the full coalition produces $700K. There's $250K of synergy value that needs to be attributed somewhere.
List all 6 orderings and compute marginal contributions for A:
φ_A = (200 + 200 + 350 + 400 + 250 + 400) / 6 = 1,800 / 6 = $300K
Repeat for B:
φ_B = (300 + 350 + 150 + 150 + 350 + 200) / 6 = 1,500 / 6 = $250K
Repeat for C:
φ_C = (200 + 150 + 200 + 150 + 100 + 100) / 6 = 900 / 6 = $150K
Verify efficiency: $300K + $250K + $150K = $700K ✓
The $250K in synergy value got distributed: A gets $100K above its standalone ($300K vs $200K), B gets $100K above its standalone ($250K vs $150K), and C gets $50K above its standalone ($150K vs $100K). The biggest synergy beneficiary is whoever creates the most lift in combination with others.
Insight: Paid Ads gets the largest Shapley value ($300K) despite only generating $200K alone - because it amplifies every other channel. If you used standalone value for Budget decisions, you'd underinvest in Ads by $100K. If you used naive equal splits ($233K each), you'd overinvest in Outreach and underinvest in Ads. Shapley gives you the Allocation that matches actual contribution including synergies.
Three product lines (P1, P2, P3) share a $600K/year platform engineering Cost Center. You estimate the platform cost each subset would need if they built independently:
| Coalition | Platform Cost |
|---|---|
| {P1} | $300K |
| {P2} | $250K |
| {P3} | $200K |
| {P1, P2} | $400K |
| {P1, P3} | $380K |
| {P2, P3} | $350K |
| {P1, P2, P3} | $600K |
Cost sharing means allocating $600K. Define v(S) as the cost savings from sharing vs building separately: v(S) = Σ standalone costs in S - shared cost of S.
Compute the savings value function:
Notice: the grand coalition saves $150K total, and {P1,P2} alone already saves $150K. Adding P3 to {P1,P2} creates zero additional savings. This will show up in P3's marginal contributions.
List all 6 orderings and compute marginal contributions for P1:
φ_P1 = (0 + 0 + 150 + 50 + 120 + 50) / 6 = 370 / 6 = $61.67K in savings
Repeat for P2:
φ_P2 = (150 + 30 + 0 + 0 + 30 + 100) / 6 = 310 / 6 = $51.67K in savings
Repeat for P3:
φ_P3 = (0 + 120 + 0 + 100 + 0 + 0) / 6 = 220 / 6 = $36.67K in savings
Verify efficiency: $61.67K + $51.67K + $36.67K = $150K ✓
Convert savings Allocation to cost Allocation:
Verify: $238.33K + $198.33K + $163.33K = $600K ✓
Insight: Equal splitting ($200K each) would subsidize P1 at P3's expense. Proportional splitting by standalone cost ignores the ordering effects - P1 creates $150K of savings when joining P2 alone, but only $50K when joining after both P2 and P3 are already sharing. Shapley captures this by averaging across all orderings. Every product line pays less than their standalone cost (everyone benefits from sharing), but P1's larger savings Allocation ($61.67K vs P3's $36.67K) reflects that P1's complexity creates more sharing opportunities when it enters a coalition.
Shapley value is the only Allocation method that sums to total value, treats equals equally, and gives zero to contributors who add nothing. When you need all three properties - especially the first - it's the right tool.
The computation is an average of marginal contributions over all possible orderings. For small problems (under 10 contributors) you can compute exactly. For larger problems, sample random orderings and converge on the answer.
The hardest part is not the math - it's populating the value function. You need v(S) for subsets, which means measuring what happens when you add or remove each contributor. If you can't run those measurements - toggling a channel off, isolating a team's impact via Sensitivity Analysis - Shapley can't help you.
Using standalone value as a proxy for Shapley value. Standalone value (v({i})) ignores synergies and redundancies. A channel that generates $50K alone but lifts every other channel by $200K will have a Shapley value far above $50K. Cutting it based on standalone value would be a costly error.
Skipping the efficiency check. If your allocated values don't sum to the total, you have a bug. This is the first thing to verify and the most common thing people forget. Every attribution system that doesn't enforce this property is leaking or double-counting value somewhere.
Two sales reps (A and B) and a solutions engineer (SE) work deals together. Their Pipeline numbers by subset:
Compute the Shapley value for each contributor. Who should get the largest share of the Commissions pool?
Hint: Write out all 6 orderings. For each ordering, walk left to right and record what each person adds when they join. Remember that SE alone generates $0 but dramatically amplifies both reps.
Shapley for A (averaging marginals across 6 orderings):
Shapley for B:
Shapley for SE:
Check: $466.7K + $316.7K + $216.7K = $1M ✓
A gets the largest share. The SE generates $0 alone but has a Shapley value of $216.7K because they unlock massive value in combination with either rep. This justifies the SE headcount even though their standalone Pipeline is zero.
You're the CFO reviewing Marketing Spend across four channels. Computing Shapley exactly for 4 contributors requires evaluating 2^4 = 16 coalition values and 4! = 24 orderings. Your analyst says they can only estimate 6 of the 16 coalition values with confidence. Can you still compute Shapley? What would you do instead?
Hint: Think about what missing coalition values mean for the averaging process. Consider whether you can bound the Shapley values with partial information, or whether a simpler Allocation method might be more honest.
You cannot compute exact Shapley values with only 6 of 16 coalition values - the average-over-orderings formula needs every marginal contribution, which requires every coalition value. You have three options:
The key insight: Shapley is only as good as your value function. A precise formula on imprecise inputs gives false confidence. Know when to use a simpler decision rule.
Shapley value directly extends the marginal contribution concept - instead of measuring contribution relative to one specific coalition, it averages across all possible coalitions weighted by ordering. This averaging is itself an Expected Value computation: if you pick a random ordering uniformly, the Shapley value is the expected marginal contribution of player i. It inherits from Game Theory the core insight that your value depends on what others are doing - Shapley gives you a principled way to collapse that dependency into a single number.
Downstream, Shapley connects to Efficient Allocation and cost sharing problems. When you're doing Capital Allocation across business units, Shapley-based cost sharing ensures every unit pays less than their standalone cost (everyone benefits from joining the coalition) and the total is fully covered (efficiency). It also informs weighted voting in consortium decisions and M&A due diligence scenarios where you need to determine how much value each acquired entity contributes to the combined Portfolio. In practice, the hardest step is building the value function - which often requires Sensitivity Analysis (toggling contributors on and off) or backtesting against historical periods where different subsets were active.
Disclaimer: This content is for educational and informational purposes only and does not constitute financial, investment, tax, or legal advice. It is not a recommendation to buy, sell, or hold any security or financial product. You should consult a qualified financial advisor, tax professional, or attorney before making financial decisions. Past performance is not indicative of future results. The author is not a registered investment advisor, broker-dealer, or financial planner.