A pipeline reads announcements, prices and broker-level flow every morning; deterministic rules decide what matters; an LLM adds context and never overrides the rules. This page is the manual.
Philosophy
Reading the ASX before the market reacts.
Everything's algorithmic. The more AI enters the market, the more patterns it leaves behind. I use LLMs to read mass amounts of data — announcements, volume, broker flow — and interpret it before it shows up in price.
>20%
Retail share of daily ASX flow — institutions move the rest. A small, concentrated pool where interpretation pays.
T+3
Broker-flow lag tracked — net buying & selling by group, reconstructed from the tape.
100s
Stocks read at once. By hand the ceiling was ~20 a morning; the repository removed that bottleneck.
$ cat thesis.md
The ASX has a small retail liquidity pool. There are no official reports, but retail holds only ~20%+ of daily flow — institutions, banks and funds move the vast majority. That imbalance is where this began: tracking volume on individual stocks, watching for spikes on random days. Done by hand, the ceiling was about 20 stocks a morning. The bottleneck wasn't the idea — it was doing it manually.
$ why llm
Pattern recognition is one of the strongest use cases for LLMs: reading mass amounts of data, interpreting it, making sense of announcements faster than any one person can. Read the whole information surface at once and you see the picture the market is still assembling piece by piece.
$ what changed
The measurement layer changed the project: every flagged name-day now gets stamped with its forward returns as they mature, and most of what I believed didn't survive the counting. What did survive is tracked in public on the track record page — wins and losses alike.
How to read the letter — 60 seconds
The homepage is a morning letter rebuilt from the day's data. Top to bottom:
Read theseToday's announcements worth minutes, not seconds — triaged by deterministic rules (a raise, a result into live flow, quantified materiality). The LLM annotates; it never picks the bucket.
Also worth a skimPrice-sensitive but routine — quarterlies and updates worth a headline-level pass.
Skip pileCollapsed on purpose: ownership notices and admin filings. The flow data already captures what these would tell you.
Broker tapeWho bought and sold, by broker cohort, on a T+3 lag — spikes vs each stock's own baseline, multi-session streaks, and warnings where 'buying' is likely someone absorbing an exit.
Pattern trackerThe pre-registered quiet pattern, tallied out-of-sample since 2026-07-03 — every hit counted in public, wins and losses. Small n, on purpose.
What changedNew names versus yesterday's letter, so a continuing story doesn't read as fresh news.
The one rule underneath everything: READ / SKIM / SKIP is decided by deterministic rules (a capital raise, a drilling result into live institutional flow, quantified materiality, an ownership notice). The LLM writes the takeaway, materiality and priced-in lines — it never picks the bucket and never overrides a classification. When a number it would need is missing, it says "insufficient data" rather than guessing.
The broker groups — who's actually in them
Every trade settles through a broker; the flow source splits the tape into five panels. Why resource specialists are treated differently: resource specialists are a small set of ~5 brokers whose order flow concentrates in mining and exploration names. Because the group is small and focused, their net buying is a concentrated indicator — when they lean on a stock it means something. Investment banks are ~20 desks serving every kind of client, so their flow is more diluted and needs a higher bar (we require 2× the flow-to-volume ratio) before it counts as conviction.
Resource specialists5 members
A small set of brokers whose order flow concentrates in mining and exploration names. Small and focused, so their net buying is a concentrated indicator.
The big institutional desks — funds, corporates, index flow and internal books all at once. Diluted flow, so it needs a higher bar (2× the flow-to-volume ratio) before it counts as conviction.
ABN AMRO ClearingBarclays CapitalBarrenjoeyBNP ParibasCitigroupCLSACredit SuisseDeutsche SecuritiesGoldman SachsJ.P. MorganJardenJefferiesMacquarie SecuritiesMerrill LynchMoelisMorgan Stanley SecuritiesRBC SecuritiesUBS SecuritiesVelocity Trade
Market makers14 members
Liquidity providers quoting both sides. Their flow is inventory management, not opinion — market-maker-only days classify as noise.
Wealth managers and advisory desks executing for private clients. Slower-moving allocation flow, grouped with retail for classification.
Argonaut SecuritiesAscotBaker YoungBell PotterBridgesBurrell StockbrokingCCZ StattonEL&C BaillieuEL&C Baillieu OldEuroz HartleysEuroz Hartleys OldEvans and PartnersJBWereMacquarie EquitiesMacquarie RMorgan Stanley Wealth ManagementMorgansNine MileOrd MinnettPetra CapitalPhillip CapitalShaw and PartnersState One StockbrokingTaylor CollisonUBS Wealth ManagementWilsons Advisory
Membership as configured in MarketLens, 2026-07-06. Four firms appear in both resource specialists and wealth & advisers (Argonaut, Bell Potter, Euroz Hartleys, Morgans) — that is deliberate, not an error: the same firm's flow can express through different desks. "Old" and numbered entries are feed artifacts of the data source. Groups are defined in one place in the pipeline and never re-sorted per result.
Scraped every morning, cross-checked between independent sources, and normalized into one data lake.
↓
CLASSIFY — DETERMINISTIC
Ratio-based rules over broker-group flow, volume and catalysts produce a tier per ticker. Rules only — no model in the loop.
↓
LLM CONTEXT — NEVER OVERRIDES
An LLM reads the filings and writes the narrative: takeaways, materiality, priced-in, why-dossiers. It decorates the deterministic output; it cannot change a label.
↓
MEASURE
Every flagged name-day is stamped with +1/+5/+10/+20-session forward returns as they mature — the feedback loop the claims live or die by.
↓
Daily letter · radar · track record
The exact feeds stay private — the edge is in the interpretation, not the source.
Glossary
RSI
Relative Strength Index compares recent up-days to down-days over 14 sessions. Low values (<40) mean the stock has been persistently sold; high values (>70) mean it has run hard. It describes where price has been, not where it's going — oversold stocks can keep falling for a long time.
Volume ×ADV
2× means twice the typical day's turnover. Unusual volume says someone is doing something — it never says who, or which direction. High volume at a low price is just as often an exit finding its buyer as an entry.
Broker groups
Every trade settles through a broker. We reconstruct net buying and selling per stock across five cohorts — resource specialists, investment banks, market makers, retail brokers, wealth & advisers — because who is moving matters more than that something moved. The tape is T+3 lagged and broker identity is a proxy: a bank desk executes for many kinds of clients, so group flow is attribution, not certainty.
Resource specialists
A small set of brokers whose order flow concentrates in resources. Because the group is small and focused, their net buying is a concentrated indicator — when they lean on a stock it tends to mean something. It is still one group's positioning, not information about the deposit; specialists alone hit at the sector's base rate in our sample so far — the edge only shows up in combination (both groups buying, quiet tape).
Investment banks
The big institutional desks. They serve funds, corporates, index flow and internal books all at once, so their net flow is diluted — we require roughly twice the flow-to-volume ratio before it counts as conviction. Bank 'buying' can also be the mechanical other side of someone else's exit, which is why big prints here get extra scrutiny, not extra trust.
Market makers
Market makers quote both sides and profit from the spread. Their net flow reflects mostly inventory management, not a view on the company. When market-maker activity is the only thing on the tape, we classify the day as noise — historically these names have gone on to underperform, which is the classifier's most consistent finding so far.
Price-sensitive announcement
The exchange requires companies to flag announcements that could affect price — drill results, raises, contracts. The flag is set by the company and the rules, not by importance: routine quarterlies carry it, and genuinely material detail sometimes hides in unflagged filings.
Priced in?
A one-line read of the pre-announcement run-up: a stock up 40% into a halt has often already paid for the news that follows — a heuristic, not a rule. Computed from 5- and 20-day returns into the announcement date. It's an inference from price, not knowledge of who knew what — quiet run-ups also happen by coincidence.
Materiality
A $2.7m asset sale is transformative for a $5m shell and a rounding error for a $70m company, so we quantify against market cap, cash and float where the numbers exist. Where they don't, it says 'insufficient data' rather than guessing. The line is written by an LLM from the filing — it sizes the announcement, it does not verify it.
Free float
We estimate float as shares on issue minus the Top-20 register (founders, cornerstones, escrow). A tightly-held explorer with 30% float moves on a fraction of the money a liquid name needs, so flow is normalised by float where we have a confident register read. Register data is disclosed sporadically — estimates go stale between filings. Where we don't have a confident register read, we don't use it — no estimate beats a bad denominator.
Quiet pattern
The pre-registered setup: resource specialists AND investment banks both net-buying the same day, volume ≥2× average, and no price-sensitive announcement in the prior 7 days. The silence is the point — volume at the lows after news has historically been distribution; before news, accumulation. Found by exploring the data (11 hits, membership frozen before pre-registration), which is exactly why it's tracked out-of-sample in public.
Momentum states
COILED (flat base, RSI 40–60; no recent directional move) · BREAKOUT (pushing highs with trend) · UPTREND / PULLBACK / DOWNTREND (as named) · EXTENDED (RSI ≥70 or +25% in 5 days — has risen sharply in recent sessions) · NEUTRAL / NO_DATA. Derived purely from past prices; a state describes what has already happened, it doesn't predict what comes next.
Flow surge / spike / reversal
Today's institutional net dollars against the same stock's trailing 5-session baseline: a flow spike is ≥2.5× baseline, a flow surge ≥5×, and a flow reversal means a net seller flipped to buyer. These measure acceleration, not size — and a big print can be one fund absorbing another's exit, which reads as 'buying' while meaning the opposite; the exit-absorption warnings alongside the tape flag when that is likely.
Win rate / median forward return
Every flagged name-day is stamped with its forward return at 1, 5, 10 and 20 sessions as those windows mature. Win rate is the fraction above zero; the median is the middle outcome, which one +42% winner can't drag around the way an average can. Both are only meaningful against the watchlist baseline (which was falling over the measured window), and n matters most: a 3-of-4 win rate is an anecdote.
Episode (14-day dedupe)
Flags recur daily while a condition persists, which silently multiplies the same trade in the stats. Where marked, we dedupe to one episode per ticker per 14 days. The window is a judgment call — a slow accumulation over five weeks still counts two or three times.
Pre-registration / out-of-sample
Anything found by exploring past data is suspect — toggle enough filters and something always shines. So the quiet pattern's exact definition was frozen on 2026-07-03 and every qualifying hit since is tallied publicly, wins and losses alike. Out-of-sample results are the only numbers here that can't have been curated; the cost is that n grows slowly.
Logged
A radar appearance whose 5-session forward return has been measured and moved to the track record. Names leave the radar when they log — the radar shows open questions, the track record keeps the answers. Flow data runs ~3 sessions behind, so a hit often arrives already part-way through its window.
5d price
Price change over the trailing 5 trading sessions, computed from the most recent price snapshot — the 'prices' as-of date in the page header. Trailing, not forward: it says what the stock just did, unlike the forward returns on the track record, which are measured from a flagged day onward.