From thinking-frameworks-skills
Models FIFA World Cup Fantasy field ownership, computes effective ownership, template set, differential list, and leverage math for rank-relative analysis.
How this skill is triggered — by the user, by Claude, or both
Slash command
/thinking-frameworks-skills:wc-ownership-metaThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Implements `footballfantasy/context/frameworks/game-theory-meta.md`. This game is scored against the whole field at once, not a weekly opponent, so the entire opponent collapses into one number per player: **ownership.** This skill is the engine that turns ownership into the rank-relative leverage the system runs on — the `ownership_leverage` term in `wc-fitness-eval`, the differential/cover re...
Implements footballfantasy/context/frameworks/game-theory-meta.md. This game is scored against the whole field at once, not a weekly opponent, so the entire opponent collapses into one number per player: ownership. This skill is the engine that turns ownership into the rank-relative leverage the system runs on — the ownership_leverage term in wc-fitness-eval, the differential/cover read on the decision board, and the per-pick leverage multiplier the strategists weight by.
The one sentence that governs everything below: rank moves on the gap between your points and the field's points, so what matters is never "did my player score?" but "did my player score relative to what the field owns?"
wc-ownership-analyst calls this to build its read; the strategists call it to weight picks; wc-fitness-eval calls it for the rank term. Never re-derive ownership downstream — read this skill's ownership signal.
- [ ] 1. Gather field ownership% per relevant player (web search — public ownership trends) and captaincy share for the round
- [ ] 2. Compute EO = field_ownership% x (1 + captaincy_share) for every player in play; classify each into the 3 regimes vs our squad
- [ ] 3. Build the TEMPLATE SET (high-EO core you cannot afford to miss) and the DIFFERENTIAL LIST (live-ceiling low-ownership picks)
- [ ] 4. Run the FIELD MODEL — project "what will most managers do?" this round; flag over-concentration (fade) and under-reaction (get-there-first)
- [ ] 5. Compute ownership_leverage(c | θ) for wc-fitness-eval: cover-penalty when θ=protect, differentiate-reward when θ=gain
- [ ] 6. Overlay mini-league rival-relative leverage (block a rival you lead; match a rival's punt you trail)
- [ ] 7. Emit the `ownership` signal with field_ownership, effective_ownership, template_set, differential_list, and the flags
Captaincy doubles a player's points, so a player the field both owns and captains hurts your rank far more if you miss him than one merely owned. EO folds the captaincy multiplier into ownership:
EO[player] = field_ownership%[player] x (1 + captaincy_share[player])
where captaincy_share = the fraction of owners who captain him this round (0–1), web-searched from captaincy-poll trends or estimated from the chalk-captain logic in §4.
Worked example. A forward owned by 50% of the field, captained by 30% of those owners:
EO = 50 x (1 + 0.30) = 65%. Effectively 65% of the field's scoring exposure sits on this player once the armband is counted. A 40%-owned mid captained by only 5% of owners: EO = 40 x 1.05 = 42% — heavily owned but not a captaincy threat, so missing him costs floor, not the doubled swing. A 6%-owned differential captained by 1% of its owners: EO ≈ 6.06% — missing him costs almost nothing to your rank; owning and it hauling is where rank is won.
EO is the quantity every other section consumes. It is capped conceptually at the doubling ceiling (a player 100% owned and 100% captained has EO = 200%, i.e. the field's entire doubled exposure).
For each player, cross "do we own him?" with "is his EO high or low?" and read the rank consequence of a haul:
| Our holding | Player EO | If he HAULS | Read |
|---|---|---|---|
| We own | high-EO | We hold station — everyone else got it too | Necessary to not fall behind; insufficient to climb. This is the cost of staying in the race. |
| We MISS | high-EO | We drop, hard | The template-protection risk. The single reason a leader covers chalk. The doubled chalk captain we don't own is the classic lead-killer. |
| We own | low-EO | We leap the field | Where rank is won. The differential. One of these per round jumps thousands of places. |
| We own | low-EO | (he blanks) | Costs us almost nothing vs the field — the field didn't have him either. The cheap downside that makes differentials asymmetric. |
High vs low EO is relative to the round's distribution, not a fixed cutoff: treat the top decile of EO as template-grade (miss-risk dominates), and anything below ~10–15% EO as differential-grade (leap-potential dominates). The middle band is contested — own it if cheap, fade it if it crowds out a sharper differential.
The sign of the leverage flips with the rank objective (cover the high-EO regime when protecting; hunt the low-EO regime when gaining) — formalised in §5.
These are the two lists every consumer reads off this signal.
TEMPLATE SET = the high-EO core you cannot afford to miss when protecting. Construction:
captaincy_share alone makes him a doubled-haul threat even at moderate ownership).EO, miss_risk = EO x ceiling[player] (the rank damage if he hauls and we're not on him — ceiling from the player-ev signal), and whether we currently cover him.θ=protect (§5). The chalk captain is its most important single entry.DIFFERENTIAL LIST = the live-ceiling, low-ownership picks that gain rank when chasing. Construction:
leap_value = ceiling[player] x (1 − EO[player]) — the rank-gain weight, high when the ceiling is real and the field isn't there. This is exactly the weight θ=gain rewards in §5.A picked-over differential (one whose ownership is rising round on round — see §4 under-reaction) is annotated "closing": its leverage decays as the field arrives, so its value is highest now.
The field is predictable in aggregate. Project its likely moves each round from four regularities, then flag the two exploitable distortions.
The four regularities:
captaincy_share for that player high (often 25–40%+) even before polls confirm; this is usually the single highest-EO entry in the template set.The two flags (the deliverable):
These two flags are the actionable output of the field model: fade the over-loved chalk, front-run the under-reacted edge.
wc-fitness-eval calls this skill for the rank term in fitness(c | θ). The sign and shape are set entirely by the rank objective θ (the protect-vs-gain dial, identical to the fitness selection-pressure dial). For a candidate c:
θ = protect (leading the mini-league) — cover-penalty. Penalise being underweight the template. Missing a haul the field captained drops you; owning it only holds station. So fitness rewards covering chalk:
ownership_leverage(c | protect) = − w_protect · Σ_{p ∈ template_set, p ∉ c} miss_risk[p]
= − w_protect · Σ_{uncovered template p} EO[p] · ceiling[p]
Every uncovered template member subtracts; the chalk captain (highest EO·ceiling) dominates the sum. A protect-candidate scores well by leaving no high-EO haul uncovered.
θ = gain (chasing) — differentiate-reward. Reward being overweight low-ownership pieces with live ceilings. A differential haul the field doesn't own is where rank is won:
ownership_leverage(c | gain) = + w_gain · Σ_{p ∈ differential_list, p ∈ c} leap_value[p]
= + w_gain · Σ_{owned differential p} ceiling[p] · (1 − EO[p])
Every owned, live-ceiling differential adds; the term is largest when the ceiling is real and EO is near zero. A gain-candidate scores well by carrying differentials the field is not on.
θ = neutral (mid-table / early) — small symmetric term. A light version of both, scaled down, mostly deferring to raw xEV:
ownership_leverage(c | neutral) = ½ · [ gain-term(c) + protect-term(c) ] · w_neutral (w_neutral small)
w_protect, w_gain, w_neutral are the leverage weights; they scale with how extreme the standing is, mirroring fitness's k (a big lead with few rounds left pushes w_protect high; a large deficit late pushes w_gain high). Return the chosen weight and the per-player breakdown so wc-fitness-eval can show the decomposition on the board — never just a bare number.
The global field sets ownership, but the manager's prize is the mini-league of friends (context/manager-profile.md, context/rivals/). Against a handful of named rivals the calculus sharpens, and can override the global read. Using whatever we can see of rival squads (coarse — only what's visible):
block_set (their high-EO pieces to mirror when ahead) and chase_set (their differentials to match when behind), and let these override the global template/differential lists where they conflict.Emit the rival-relative overlay alongside the global lists so the strategists and wc-fitness-eval can apply whichever the standing demands. When rival squads are only partially visible, mark the overlay's confidence accordingly (§Guardrails).
ownership signalEmit via wc-signal-emitter (validated against signal-framework.md; type ownership, consumed by wc-fitness-eval and the strategists).
---
type: ownership
round: <round id, e.g. 2026-grp-md2>
date: <YYYY-MM-DD>
emitted_by: wc-ownership-meta
confidence: <0.00–1.00> # cap per Guardrails when ownership is estimated / national-only
source_urls:
- <ownership-trend source url> # or manager-provided
---
objective: { theta: protect|gain|neutral, leverage_weight: <w> }
field_ownership: # field ownership %, 0–100, web-searched
<player>: { own_pct: <0–100>, captaincy_share: <0–1>, source: <url|estimated|manager-provided> }
effective_ownership: # EO = own_pct x (1 + captaincy_share)
<player>: <EO 0–200>
template_set: # high-EO core you cannot afford to MISS (protect shopping list)
- player: <name>
EO: <0–200>
miss_risk: <EO x ceiling>
we_cover: <true|false>
is_chalk_captain: <true|false>
differential_list: # live-ceiling low-ownership picks (gain shopping list)
- player: <name>
EO: <0–200>
own_pct: <0–100>
leap_value: <ceiling x (1 − EO)>
ceiling_basis: <pen taker | set-piece threat | CS defender vs weak attack | xGI vs soft opp>
trend: <stable|closing> # "closing" = ownership rising, value is highest now
field_concentration_flags: # FADE ops — over-loved chalk; not owning gains rank if he blanks
- player: <name>
EO: <0–200>
why_mispriced: <one line — fixture tougher than reputation, coin-flip captain, etc.>
rank_gain_if_blank: <qualitative or estimated>
under_reaction_flags: # GET-THERE-FIRST ops — field hasn't priced the catalyst yet
- player: <name>
catalyst: <fixture swing | role/rotation change | injury return | confirmed pen duty>
own_now: <0–100>
own_projected_next: <0–100>
buy_window: <this round | before [event]>
ownership_leverage: # the term wc-fitness-eval folds into fitness, with breakdown
theta: protect|gain|neutral
value: <+/- n>
per_player: { <player>: <+/- contribution> }
rival_overlay: # mini-league rival-relative leverage (overrides global where it conflicts)
- rival: <name>
standing_vs_us: ahead|behind
block_set: [<their high-EO pieces to mirror — when we lead>]
chase_set: [<their differentials to match — when we trail>]
visibility: full|partial # how much of their squad we can actually see
own_pct and captaincy_share traces to a public ownership-trend source URL or is marked estimated / manager-provided. An ownership table with no source is not persisted as fact.estimated and cap the signal confidence at 0.35 with a "needs ownership confirmation before lock" flag — per the load-bearing-fact rule in signal-framework.md. Do not let a guessed ownership number drive a high-confidence fade.ownership_leverage doesn't change sign between a leader and a chaser, the term is mis-wired (the symmetric check wc-fitness-eval relies on).rival_overlay.visibility honestly: rival squads are only partially observable, so rival-relative leverage carries lower confidence than global EO and must say so.player-ev signal and clean-sheet probabilities from clean-sheet; do not recompute them here — this skill turns ownership into leverage, nothing else.npx claudepluginhub lyndonkl/claude --plugin thinking-frameworks-skillsComputes a single player's expected FIFA World Cup Fantasy points per round (xEV) by combining start probability, minute-based scoring tiers, fixture-scaled npxG/xA, defensive floors, set-piece premium, and downside risks.
Builds a tactical game plan by analyzing opponent weaknesses, team strengths, and match context using performance indicators and decision rules.
Analyses football match and season data: shot maps, xG timelines, passing networks, pressing, and team comparisons. Adapts depth to user experience level.