A guided tour
The front board
/The board is the front page: one cell per tracked figure, ranked by nothing but reading order. It answers a single question at a glance — when this person posts about an asset, how hard does that asset move on the first day anyone could trade the news?
sig-mover†2
8.0%1
MEAN |AR| DAY 0
▲ dir 6.2% · hit 83%3
→ /figure/sig-mover4
fig. 1 — one board cell
- 1The big number is the figure's average |event-day abnormal return| — the size of the day-zero move with the market's own drift subtracted, direction ignored.
- 2The dagger means the record is statistically significant: fewer than 1 in 20 random-date re-runs of the same events (the placebo test) produce a move this large. Without it, a muted “n.s.” says the number looks like chance.
- 3The footer is direction, never rank: green or red only says whether the market tends to go the way the posts imply, with the day-one hit rate alongside.
- 4The whole cell is a link — click through to the figure's drilldown.
The rankings ledger
/ (below the board)Beneath the board, the same figures appear as a proper ledger with every statistic the engine emits. Click any column head to sort; the oxblood underscore marks the active column.
| figure | |ar| d01 | n / clean2 | hit | p3 |
|---|
| sig-mover | 8.0% | 6 / 5 | 83% | .030† |
| noise-figure | 1.1% | 4 / 4 | 50% | .610 n.s. |
fig. 2 — two ledger rows
- 1Sortable column heads; the active sort carries the oxblood underscore.
- 2n / clean counts all scored events against those free of confounding corporate news — trust figures whose clean count is close to their total.
- 3The placebo p-value, with the dagger repeated at p < 0.05. A gaudy |AR| on four events and p = .61 is a shrug, not a signal.
The figure drilldown
/figure/[id]Clicking a cell opens the figure's own page: a chart of directional cumulative abnormal returns by week, and the event log behind it. The chart settles the question the board can't — does the move stick, or does the market take it back?
fig. 3 — directional CAR, weeks 0–13
- 1A line that jumps on day zero and holds above the zero rule through week thirteen: the market kept moving the post's way. That is persistence.
- 2A line that pops and bleeds back through zero: a splash, retraced. The event log below flags confounded dates where earnings or a split muddy the attribution.
Congress
/congressThe second half of the paper. Every row is one STOCK Act disclosure, followed forward from the reported execution date. Note the basis: returns run from the day the member traded, not the (often much later) day the filing made it public — the gap between the two is the lag, and disclosure-basis returns are what a copier could actually have earned. Below the trades, a members ledger totes up each member's year against SPY and the Dow over identical windows.
J. Q. Member · senate · 2025-01-141 · TSLA · buy · $50,001–$100,0002
+365d +12.7%3
armed services
4earnings +12d
5fig. 4 — one disclosure, folded
- 1The execution date — the day the trade happened. All printed returns start here; the public only learned of it on the disclosure date, weeks later.
- 2Amounts are disclosed bands, not position sizes; the paper equal-weights every trade.
- 3Forward return of the underlying at +30/90/180/365 days; blank until the horizon has elapsed.
- 4The overlap chip — the one loud mark in the paper — means the member sits on a committee that oversees the sector they traded.
- 5News chips within ±45 days are a caution: a nearby earnings date may explain the move better than the member does.
Confluence
/confluenceWhere the two halves touch: a tracked figure's post and a congressional trade on the same ticker within thirty days of each other. Each pairing is scored on a five-dagger checklist; the sort puts the strongest coincidences first.
†††††1TSLA
sig-mover 2025-03-02 · bullish × J. Q. Member 2025-02-26 · buy
gap −42✓3
fig. 5 — one pairing
- 1Strength, one to five daggers: base one, plus one each for direction agreement, a gap within seven days, committee overlap, and an amount band starting at $50,000. One dagger is a coincidence of ticker and month.
- 2The gap is signed — negative means the member traded before the post existed.
- 3Agreement: the post's sentiment and the trade's side point the same way (bullish + buy, bearish + sell).
The indicator desk
/indicatorsFor every post and trade, roughly 100 textbook technical indicators are evaluated on the ticker's daily bars as of the prior close — no lookahead — and each is scored a go (its condition agrees with the call) or a miss (it fights it). The desk holds two things: a leaderboard of the most common go-senders, and a list of every event where more than ten indicators piled in at once. A concurrence chip rides each row of the event log and the congress ledger too.
PODD · trade · 2026-05-07 · bearish
go — technicals agree2
rsi_14_osasof macd_12_26_9asofw53
fig. 7 — a concurrence chip, unfolded
- 1The chip is asof n_go / n_evaluated — gos out of the indicators with enough history. Over ten agreeing turns it oxblood: the concurrence flag, the same loud mark as the overlap chip. No match at all (the event predates the cached bars) shows nothing, not a zero.
- 2Click the chip to unfold the firing list, grouped go versus miss and family-ordered.
- 3Each indicator carries small asof / w5 tags: asof is the headline prior-close reading; w5 means it also fired somewhere in the prior five sessions. No single indicator is the edge — the busiest hover near a 53% go-rate — so read the count, not any one name.
The signal tape
/signals (top five above the board)The desk's live summary, printed as of the last run: every ticker with recent activity, scored by decayed figure posts and decayed congressional disclosures. The top five run above the front board; the full ranked ledger, with every score's contributors, is the /signals page.
NVDA
▲ BULL2
1.84signal3
aligned
1post sig-mover 2026-07-10 +0.038 · trade J. Q. Member 2026-07-14 +0.9124
fig. 6 — one tape row
- 1The ALIGNED flag — the tape's one loud mark, echoed by the double oxblood rule at the row's edge: posts and trades point the same way at once, and the score carries a ×1.5 premium. It is a flag, never a data color.
- 2Direction, bull or bear, from the sign of the larger component — the only place green or brick appears.
- 3The signal score ranks the loudness of current agreement, not an expected return; every contribution fades on a half-life (posts 14 days, trades 21).
- 4The contributor line names the top post and top trade behind the score; the /signals ledger expands the full list per row.
How the data gets here
Nothing on this site fetches the market. Hand-verified post dates live in seed/posts.csv; congressional filings are scraped from the Senate eFD and the House Clerk. The engine runs offline, prices everything, and writes plain CSVs to results/ — which these pages re-read on every request, so a fresh engine run appears on the next refresh, no rebuild required. From the repo root:
npm run corporate # splits + earnings context (confounder flags)
npm run run # post event studies -> results/events.csv, rankings.csv
npm run congress # STOCK Act trades -> results/congress_trades.csv, _members.csv
npm run confluence # posts x trades join -> results/confluence.csv