Methodology
The whole point of adhdeck is that you don’t have to take our word for it. Here is exactly how the numbers are made — and what they deliberately exclude.
How a call becomes a number
Entry price
The official closing price on the call’s publish date (entry_date). If that date isn’t a trading day, we use the next trading day’s close.
Marking open positions
Open calls are marked to market at the latest available close (the “as-of” date of the most recent pipeline run). Closed calls are marked at the close on their exit_date.
Short returns
A short’s return is the negative of the price change: if the asset falls 10%, the short call is +10%.
Model portfolio
Equal-notional per call (each call’s weight defaults to 1). Each call contributes one equal-weighted position from its entry date. The equity curve is the combined, daily-rebalanced mark-to-market value of all open positions, rebased to 100 at the first call. Cash drag and financing/borrow costs are ignored in this version.
Benchmark
Each call is compared to its asset-class benchmark: equities, ETFs and ADRs vs the S&P 500 (SPY); crypto vs BTC. The portfolio-level benchmark is the S&P 500, with crypto calls individually benchmarked to BTC.
Unresolved calls
If price data is missing for a call, its status is unresolved: it is excluded from aggregate statistics and surfaced visibly in the table. We never silently drop or interpolate data to flatter the curve.
Data sources
- Equities / ETFs / ADRs — daily closes from Yahoo Finance.
- Crypto — daily closes from the CoinGecko API.
- Calls — hand-authored YAML in
/data/calls, committed to git (tamper-evident timestamps).
What we do and don’t count
- Public, time-stamped calls with a link to where we said it.
- Both open and closed positions (open marked to the latest close).
- Longs and shorts, equities and crypto.
- Private or undated opinions, or anything we can’t link to.
- Cash drag, leverage, financing, slippage, or fees (yet).
- Backdated, edited, or deleted calls — history is never rewritten.
Exposure Graph — relationship map, not a forecast
The Exposure Graph is a hand-curated, sourced web of who-depends-on-whom. Many things people want exposure to can’t be bought directly (Anthropic, OpenAI, private labs); the graph traces every buyable path to them — equity holders, suppliers, partners, and the themes they ride.
What the score means
An impulse on one node propagates across directed edges, decaying with distance, flipping sign on inverse (competitor/substitute) links, and scaling by each edge’s weight × confidence. A node’s exposure is the sum over every path, normalised so the strongest reached node sits at ±1. It is a qualitative measure of relationship strength and distance — never a predicted return.
Two directions
Downstream proxies trace outward from an entity to the buyable things it drives (how to get exposure to it). Upstream drivers trace inward to what moves a ticker — its dependencies, suppliers, and themes.
Every edge is sourced and dated
No unsourced relationships: each carries a source_url and an as_of date, with a confidence weight shown on selection. Private-company links come only from public disclosures. An LLM may propose candidate edges, but a human curates every one — the curated graph is the moat.
Buyable and liquid only
Public tickers are validated against a committed registry; illiquid or untradeable “proxies” are flagged, because fake exposure is worse than none.
The compiled graph behind the explorer is available at /api/graph.json.
The derived data behind every chart and stat is available at /api/portfolio.json.
Not investment advice. Past performance is not indicative of future results.