Mission
Make bond order flow legible.
Equity markets have a tape. Bonds don't. We're building one — and rendering it as positioning, conviction, and unusual activity. If something material is happening in your bond, you should be the first to know.
About SherpaBonds
Bonds are the largest, most opaque asset class on Earth — and the one where order flow is hardest to see. SherpaBonds makes it visible.
Mission
Equity markets have a tape. Bonds don't. We're building one — and rendering it as positioning, conviction, and unusual activity. If something material is happening in your bond, you should be the first to know.
Vision
A credit PM, a family-office allocator, and a curious investor should all reach for the same tool — and each get the bonds that match their taste, their constraints, and where the smart money is going. One product, sharpened by the differences in what each user wants.
01 · Sherpa Signal
Equity markets have a tape. Bond markets don't — until now. We reconstruct one from real institutional positioning data, isolate the idiosyncraticcomponent (the par-change in each bond beyond what the fund's overall AUM growth or shrinkage explains), and flag it with a cohort z-score so you can tell a real outlier from market noise. Three views read the same tape three different ways.
View · Aggregates
View · Today
View · Wire
Six tape tags · the day's flow, classified
Every bond on the tape gets a behavioral label that summarizes howthe day's flow happened, not just how much. A $50M move that comes from one fund unwinding looks very different from $50M of broad-based new buying.
Accumulation. Funds are net-buying — more dollars flowing in than out.
Distribution. Funds are net-selling — more dollars flowing out than in.
Almost everyone is buying, very little selling on the other side. Looks like fresh allocations.
Almost everyone is selling. A coordinated unwind, not portfolio housekeeping.
Buying and selling roughly cancel out. Active interest, no clear direction.
Modest net flow with mixed direction. Background trading, not a thesis change.
What it actually reads like
Today · auto-narrative
“5 bond funds lightened on US Treasury N/b 05/46 2.5's line in today's session, totaling −$141M. Net selling dominated the tape — 67% of active funds were on the same side.”
Generated from data — funds count, side, issuer, signed flow, and dominance share are all real values for the selected day.
Wire · ALERT row
ALERTVistajet 8.75 01/32 · +19.78σ — buying pressure outside the 95% band.
Cohort z-score is hover-explained: “Most days land between −1 and +1. Anything past ±2 is in the most-active 5% of days. Past ±3 is roughly a 1-in-100-day event. +19.78σ is essentially off the chart.”
Glossary built into the surface
Sigma, idiosyncratic flow, cohort z-score, rotation velocity, crowding alert, sherpa coverage, accumulation, distribution, derisk, new money — every label that could intimidate a first-time bond investor has a hint chip attached. Hover brings up a definition, an example, and (where it matters) a “practical take” line on how to read it.
Roughly 25 entries today, growing with the product. The glossary lives next to the code that renders the surface, so a new term and its definition ship in the same commit.
Methodology
Flow = AUM-normalized par change in USD per bond per fund per day. We strip the AUM-mechanical component so a fund that doubled in size doesn't look like a buyer of every bond it holds. Cohort z-scores are computed cross-sectionally within each (asset class × region × duration × style) bucket so you can compare a $20M move in Treasuries against a $20M move in EM HY honestly.
Access
Bond movements — what moved, by how much, in which cohort — are free to read. The names behind those moves (which fund bought, which fund sold, in what size) unlock on Pro. Holdings/Watchlist scope on the Wire is signed-in only; positions in your portfolio additionally bypass the bond-detail paywall on the bonds you own, because P&L math needs real prices.
02 · For You
Every bond carries a 768-dimensional embedding generated from its issuer, sector, country, currency, maturity, rating, and security description by Gemini's gemini-embedding-001. Your portfolio and watchlist are folded into a single user vector — weighted by position market value, with a generous floor so small holdings still register, and a flat watchlist weight for taste signals you haven't yet bought. We then ask Postgres, via the bonds_by_user_vector RPC, for the closest cosine matches to that vector across the entire universe. No thumbs. No follows. The algo learns from what you actually do.
Gemini gemini-embedding-001 · 768 dims, L2-normalized · stored in bonds.embedding · refreshed nightly when issuer, sector, or description fields change.
Weighted average of your bond vectors. Position weight = max(floor, qty × cost_basis ÷ 100); watchlist flat weight = 25. Rebuilt nightly after bond embeddings finish.
pgvector cosine similarity (1 − distance) returns a similarity score per candidate bond. Cold-start fallback uses an issuer/sector heuristic for users with no signals yet.
Each suggestion is classified
A vector match is a vector match — but it can be a vector match for very different reasons. We label every card with the kind of fit it represents, so you know whether you're looking at a same-issuer add-on, a missing rung in your ladder, or a deliberate diversifier.
An exact issuer match for a bond you already hold or watch
Same issuer family as something on your saved list
A maturity year your portfolio doesn't yet cover
A sector neighbor of your existing holdings
High-yield candidates that pass your filters
A sector your portfolio is currently underweight in
Cold-start: highest-similarity result on first visit
Cold-start: high-yield universe favorites between 4-12%
Match score · 50–99
Top suggestion gets a score-plus-bars panel: issuer affinity, sector alignment, country / region, currency match, and yield pickup— the yield-pickup factor is computed against your portfolio's weighted YTM, not a fixed benchmark, so a 6% bond reads differently for a 4% book than for an 8% book.
If you add 100K par
Hover the top suggestion to see what happens to your book when you add 100K par at the bond's mid: weighted YTM, portfolio market value, annual coupon income, top-sector concentration, and bonds-maturing-in-60-days — each shown as a real before → after pair, in your chosen display currency.
Slice by intent
Your portfolio in context
What's inside
Sherpa Signal and For You are the intelligence layer. Everything below — Radio, plain-English search, the screener, the bond detail page, portfolios, watchlists, currency conversion — exists to render those two engines as something you can actually browse, search, compare, hold, and pay for. Discovery on top, workspace underneath, coverage at the bottom.
03 · Discovery surfaces
A Pandora-style endless stream of bonds. Stations for For You, issuer, country, sector, signal, yield bracket, and any seed bond. Keyboard-driven (← → W O R), watchlist inline, comparison chips against the seed — discovery that doesn't end at the bottom of a table.
“BB-rated EM corporates maturing 2028-2030 in USD under 90.” Gemini 2.5 Flash parses your sentence into screener filters; heuristic fallback when AI is unavailable. The fastest path from a thought to a bond list — invocable from the search bar on every page (or ⌘K on desktop).
On every bond detail page, anchor on its 768-dim vector and surface neighbors via the bonds_by_bond_vector RPC — issuer family, sector, duration, credit, and the subtler features the embedding picks up. Heuristic fallback when the seed has no vector yet.
A real screener when you want one — every column tradable. The bond detail page wires price, yield, holders, issuer curve, peer comparison, and Sherpa Signal into a single answer per bond. Canonicalized for UUID, ISIN, CUSIP, and local IDs.
04 · Your workspace
Track as many portfolios as you run — model book, IRA, family-office sleeve. Per-row inline edit, cost-basis P&L from real prices, and a default-portfolio guarantee enforced at the database. Positions unlock the bond-detail paywall on bonds you actually own.
Save bonds with free-form notes. Your watchlist quietly feeds the recommendation engine — what you watch shapes what you see next.
One toggle re-prices every surface in 12 fiat currencies plus BTC and ETH. ECB Frankfurter rates for fiat, CoinGecko for crypto, cookie-persistent across sessions.
05 · Coverage & data
Any country, any currency. Emerging markets are a first-class citizen — not the afterthought tab. Country and currency are backfilled nightly through a four-pass enrichment chain (sibling-issuer copy, ISIN-prefix decode, fuzzy issuer match, AI cache) so coverage keeps widening on its own.
Market-observable prices only. If a bond didn't trade or wasn't held, the field shows a dash — no FRED-curve interpolation, no theoretical YTM. Yield, duration, and convexity computed from observed prices via a hand-built bond-math library. No modeled or theoretical pricing, ever.
Founder note
“The question that matters is which bonds matter — and you can't answer it without knowing who owns them, in what size, and how that's changing. SherpaBonds is the answer.”
14-day free trial of Pro. Full Sherpa Signal, full screener.