BullzeyeBULLZEYE
Join the waitlist
Catalyst Calendar

What is scheduled, what broke, and what is building

Three things in one board. The scheduled structure, organised by float band: earnings, FDA decisions, compliance cures, offerings, reverse splits, lockups, index rebalances, short-interest prints. The overnight and intraday news attached to the names it belongs to. And the themes gathering across several names before any single one moves.

Catalyst Calendarweek of 17 Aug · 41 scheduled
Float bandNANO<2MLOW2 to 10MMID10 to 50MLARGE50M+
11:00TODAYTNXPFDA DECISIONPDUFA on a 6M float. Plan the halt, not the entry.BASE RATE nano · +48% median 60m max gain · 62% halted · n=13
16:05TODAYSGLYEARNINGS AMC3.4M float reporting into the AI-freight run. Crowded long into a print.BASE RATE low · +15% median · −9% drawdown · n=47
13:00THUBTAISHORT INTERESTBi-monthly print. Confirms or kills the 27.6% positioning.BASE RATE low · +33% median · 29% halted · n=12
08:00FRIGNLNREVERSE SPLIT1-for-15 effective at the open: float drops under 1M.BASE RATE nano · +12% median · −24% drawdown · n=11
Base rates measured per float band from historical catalyst episodes. Duds included. n is always shown.
What it does
  • Median 60-minute max gain and drawdown per event type, per float band
  • Share of past episodes that halted, and the sample size behind it
  • Headlines joined to the ticker, with the source that published them
  • Trends: sectors and narratives accumulating attention across multiple names
  • Dilution structure joined in: active ATM, shelf on file, months of cash
Exposed as MCP tools
calendar.events(from, to, bands?) → Event[]
calendar.baseRate(type, band) → BaseRate
All 13 tools →

News belongs next to the schedule, not in a separate feed

A headline is only useful when you can see it against what was already due. An 8-K on a name with a reverse split effective Friday is a different read from the same 8-K on a name with nothing on the calendar, so both live on one board rather than in two tabs you have to correlate yourself.

Trends are cross-sectional, not per-name

Individual names get loud all the time. What is worth catching earlier is a theme spreading: three unrelated shipping microcaps bid on the same tariff story, or a cluster of biotechs moving on one FDA decision precedent. Trends measures attention accumulating across names before any single one is obviously moving.

Every base rate carries its n

A +41% median from 19 episodes and a +15% median from 47 are different kinds of claim. Sample size is on screen next to every figure, permanently, because a calendar that shows only the headline number is lying by omission.

Duds are in the sample

Episodes qualify on event type and float band, not on outcome. That is why some of the medians are negative: offerings, lockups and ATM-active reverse splits genuinely lose money on average, and a calendar that hid that would be worse than no calendar.

Float band is the primary axis

The same event does entirely different things at different float bands. An FDA decision on a sub-2M float has a +48% median 60-minute maximum gain and a 62% halt rate; the same event on a 10 to 50M float has +14% and 12%. Sorting a calendar by time alone throws that away.

The founding cohort is 1,000 seats.

We admit 1,000 traders at a time because that is the largest number whose feedback on radar accuracy we can actually work through before opening the next batch. Applications are admitted in order; the intake asks what you trade, and answering it moves you up.

No card at application. Founding price locked for the life of your account. The full intake asks what you trade and moves you up the queue.

Founding cohort · 1,000 seatsApplications open

Admitted in order of application · momentum traders who complete the intake go first · founding price locked for the life of your account