The premise
Every market on Hero Market is a question with a clear yes-or-no answer and a hard deadline. Will Olipop hit 75K doors by Q1? Will the FDA approve a generic semaglutide before July 31? Will Liquid Death announce a non-water beverage in 2026?
You buy YES or NO shares. The price moves with the trades. When the market resolves, the winning side cashes out at face value and the losing side goes to zero.
There is no real money. We measure who has the most signal, not who has the most chips. Hero Market exists because operators often spot shifts before headlines do.
The signal stack
Hero Market is not vibes. Four layers run underneath every price you see; each is described in detail in its own section below, but here’s how they compose.
- 1 · IngestionReal-time pulls across three streams: a curated set of CPG trade publications (BevNET, Food Dive, Retail Dive, Beauty Independent, BoF, Modern Retail, The New Consumer, Puck, etc.), a curated set of industry handles on X via the official API (Snaxshot, NielsenIQ, Circana, Startup CPG, This Week in CPG, et al.), and brand-account posts on Instagram. Run on independent crons; outages on one rail don't blank the others.
- 2 · AttributionEvery ingested item runs through a keyword matcher against the active market roster, then a per-(article, market) LLM verifier that writes a one-line 'Move: what happened. Implication: how it shifts YES.' verdict. Trusted publishers (~17 outlets editor-curated for CPG signal) skip the LLM gate. Items that clear both gates anchor matched stories on market detail pages; the rest fall to the wire.
- 3 · CalibrationEvery trade is a forecast. Every forecast is scored on a Brier basis the moment the market resolves. The score is published on every handle, on the leaderboard, and on the per-trader calibration curve. Hundreds of resolutions in, the calibrated operators are visible without anyone pointing at them.
- 4 · AuditEvery market carries explicit resolution criteria + a primary source URL. Resolution is reading the criteria literally against the source; no interpretation. Markets where the source turns out ambiguous get voided rather than resolved against thin information.
The composite is what prices the tape. News tells you what just happened, the wire tells you what is about to land, calibrated operators tell you which of the possibilities the room is actually pricing, and the audit closes the loop honestly. None of the four layers alone is the signal. The composite is.
See the wire for the ingestion + attribution detail, accuracy for the Brier methodology, and resolution for the audit rule.
Anatomy of a market
Every market shows you the same three things up front: the question, the price, and the deadline. The price is quoted as a percent. Price is probability. A YES at 72% means traders collectively put the chance at 72%.
Will Magic Spoon land in Target’s main cereal aisle by Q1?
Closes in 6 weeks · YES if SKUs appear in the main aisle (not end-of-aisle) before Mar 31.
Read the price as a probability, not a stock quote. A share that resolves YES pays exactly 1 SP. Buying at 22¢ when the true probability is closer to 50% is good business; buying at 95¢ on a coin flip is not.
Underdog
Market thinks it's unlikely. YES is cheap; NO is the consensus.
Coin flip
Market hasn't decided. Both sides cost the same.
Heavy favorite
Market believes it. YES is expensive; NO is the contrarian play.
Events: multi-outcome markets
Some questions don’t fit a binary. First major CPG IPO filing between May 16 and July 31, 2026: Glossier, Olipop, Magic Spoon? needs three possible answers in one place, not three disconnected yes/no markets.
An event bundles one shared question with N outcomes. Each outcome is its own underlying market with its own YES/NO pool and its own price; the event page renders them stacked so you can read the whole field at a glance and trade any single outcome from one view. The event resolves when the parent question does - the winning outcome’s YES side pays, every other outcome’s YES side goes to zero.
The shorthand on /markets is the “View all N outcomes →” affordance under the top three. The full event page at /events/[slug] gives you the chart, the per-outcome ladder, and one discussion thread shared across outcomes (because the interesting argument is usually which of the outcomes wins, not any one in isolation).
When to use which: a binary market when there’s a clear yes-or-no resolution, an event when the question naturally enumerates a shortlist. Pricing is the same Maniswap AMM in both shapes.
Lifecycle
Every market follows the same four-stage arc. It opens with a seed price and seed liquidity, traders push it around, the clock runs out, and we resolve against the stated criteria.
- Open
Market launches at 50% with seed liquidity from the house.
- Trade
Traders buy YES or NO. Every trade moves the pool, and the price.
- Close
Trading halts at the close date. Positions are locked.
- Resolve
Admin reads the criteria literally. Winners get 1 SP per share.
The price at any moment is a live snapshot of the crowd. The price at resolution is just a memorial; what counts at that point is whether the outcome was YES or NO.
Trading mechanics
Hero Market uses a Maniswap AMM, the same constant-product market-maker pattern Manifold popularized. You trade against the pool, not a counterparty. Each trade moves the pool, which moves the price.
Bigger trades move the price more. The cost of 100 shares isn’t a flat price × 100. The pool rebalances as you go, so the average cost rises. The trade form shows the realized average cost before you commit.
Small trade
Buy 25 SP of YES
Before
50%
After
52%
YES shares received
49
Avg cost / share
51¢
Large trade
Buy 250 SP of YES
Before
50%
After
69%
YES shares received
417
Avg cost / share
60¢
Same pool, same direction. The 10× larger trade pushes the price 17 points further and pays 9¢ more per share. That gap is slippage; it’s real money in real markets, play money here.
Sells are first-class. If you bought YES at 30% and the market climbs to 70%, you can sell back to the pool to lock in the gain instead of waiting for resolution.
Where the liquidity comes from
The most common question about a play-money prediction market is, fairly: is the pool deep enough for the price to mean anything?Here’s the answer in three parts.
You trade against the pool, not a counterparty. The Maniswap AMM is always quoting both sides, so a fill is always available. You don’t wait for an order to match; you don’t need the other side of your view to be sitting at your price. Trade size moves the pool (that’s the slippage from the Trading section), but the trade itself always lands.
Every market opens with seeded liquidity. The house drops a starting subsidy into the pool when a market goes live, so the first trader has something real to trade into. Subsidies are how prediction markets bootstrap depth before crowd volume shows up. They’re also how the price stays sensible if a market goes quiet for a stretch: the pool is still there.
Sells are first-class.You can exit any position back to the pool whenever the price moves your way. You don’t have to hold to the close to realize a gain, and you don’t have to find a buyer. The pool buys back at the current AMM price.
This won’t feel like Polymarket on a presidential race. The room is small and the currency is play money, so you won’t see seven-figure pools. What you will see: enough depth for prices to land in the right neighborhood when operators have a real view, and a clean exit whenever the wind changes. The moat we’re building is calibration, not turnover.
Sugar Points
Sugar Points (SP) are the site’s currency. Play money. No real cash, no withdrawals, no regulator. New traders start with 1,000 SP. Winning trades add to your balance; losing trades come out of it. Liquidity subsidies pay the early trader and keep the spread tight.
You never run out. Your balance is floored at 1,000 SP. A user who buys 500 SP of YES and loses stays at 1,000; the same user who wins gets the payout added on top. SP is the ammo that lets you trade, not the scoreboard. The real scoreboard is realized P&L on the leaderboard and the Brier calibration on /accuracy. Those numbers track your actual edge, can go negative, and aren’t restocked.
Real-money prediction markets in the US carry a regulatory tax that compresses the surface to a few big questions. We care about signal in the long tail: beverage launches, retailer category shifts, founder moves. Play money lets us cover that surface freely.
Resolution
Every market has explicit resolution criteria printed on the page and a primary source. After the close date, an admin reads the criteria literally and resolves YES, NO, or invalidates the market.
- Step 1
Read the criteria
Open the market page. The resolution criteria are printed verbatim under the question.
- Step 2
Check the source
Each market names a primary source: SEC filing, FDA approval, BevNET, retailer announcement.
- Step 3
YES, NO, or Invalid
Source confirms the criteria → YES. Contradicts → NO. Criteria too ambiguous → Invalid, all positions refunded.
We do not interpret. We do not extrapolate. If the criteria say “reports 75K+ doors”, that’s what we look for. Ambiguity is a market-design failure. Flag it in the comments and we’ll fix the criteria before close, or invalidate at resolution if we missed it.
Winning shares convert to 1 SP each and land in the holder’s balance. Losing shares vanish.
Accuracy
Volume isn’t skill. Anyone can fire 10,000 SP at a coin flip. We score traders on calibration: a Brier score over the price you traded at versus the actual outcome, surfaced alongside SP on the leaderboard.
A calibrated trader who says YES at 70% should win about 70% of the time. The accuracy page plots the global calibration curve, Metaculus-style, so you can see how the platform is doing in aggregate.
When traders said
10%
resolved YES
12%
When traders said
30%
resolved YES
28%
When traders said
50%
resolved YES
51%
When traders said
70%
resolved YES
68%
When traders said
90%
resolved YES
92%
When the red tick lands near the top of the blue fill, the crowd was right on average. Persistent gaps in one direction mean Hero Market is over- or under-confident, and the Brier score on every trader profile is built from exactly this comparison.
Tiers and badges
Every handle on Hero Market sits on one of three visible rungs. The badge next to a handle is the at-a-glance signal of which one.
- Consumer · no badgeThe default. Brand-curious traders, friends-of-friends, people kicking the tires. Same trading mechanics, same access to every market, same calibration scoring on the leaderboard.
- Insider · blue checkOperators in consumer brands - founders, brand leads, retail buyers, investors, the press that covers them. Hand-picked at invite. The blue mark next to a handle says we vouched for this person's domain access, not their record.
- Admin · red checkThe Hero Market team. Trades alongside everyone else but also approves proposals, resolves markets, and curates the news pipeline. Red is the brand color, so the top rung flies it.
Tier is an invite call, not a Brier score. An admin sets your tier when they release you from the waitlist (typically Consumer for cold inbounds, Insider for credentialed operators). Calibration on /accuracy is the separate public scoreboard - a Consumer with a 0.18 Brier outranks an Insider with 0.30 on the accuracy leaderboard regardless of which check sits next to their handle. We keep the two separate on purpose: tier signals industry standing, calibration signals record. Conflating them turns the leaderboard into a status game and the calibration math stops meaning anything.
Moving up happens by email, not by grinding. If you’re cold-listed as Consumer but you’d read as Insider, write hello@heromarket.com with the one-line version of who you cover. There are also three staff rungs above Insider (moderator, operator, admin) that gate the back-of-house tooling; those exist for ops reasons and aren’t visible to other traders.
Profiles
Every trader has a public profile at /@handle. Pseudonymous by default - traders pick a handle at onboarding and the handle is locked after that, so what’s on the profile is a permanent record attached to a stable identity.
The header carries the handle, tier badge, optional display name, and the trader’s headline record: Brier score, resolved-market count, win rate, realized P/L in SP. To the right, a Track button toggles whether you get notified on their sizable trades (see Watchlist and digests).
Below the header, three tabs:
- Positions · defaultOpen YES/NO holdings, sorted by exposure. Each row shows the market, side, average cost, current price, and unrealized P/L. The grid is the audit: exactly the bets they're still on the hook for.
- ActivityTrade-by-trade history. Buys and sells, timestamps, sizing. The chronological tape of how they got to the current positions.
- CommentsEverything they've said in the room, on which markets. Pairs with the positions tab to gut-check whether their commentary tracks their actual money.
Lower on the page, a per-trader calibration curve plots their predicted-vs-actual line against the platform aggregate. Above the diagonal means they ran hot (predicted higher than reality); below means they ran cold. A flat trader with high volume is doing better than a loud one with a handful of correct shouts. The audit favors receipts.
Search and ⌘K
Two keyboard shortcuts cover the entire navigation surface.
- ⌘K · global command paletteThe Linear-style modal. Searches markets, traders, categories, brands, news, all in one box. Arrow keys to navigate, Enter to jump. Works from anywhere in the app, signed-in or not.
- / · focus the header searchDrops focus into the search input in the top nav. Same query targets, just inline instead of modal. Use it when you've already got the header in view and don't want the page to dim.
The palette pins exact-slug matches to the top (so typing olipop-walmart-q1-2026 jumps you straight to the market) and surfaces your last 5 searches as quick recalls. The result rows are kind-typed so a trader, a market, and a brand are visually distinct in the list - no guessing which row opens what.
Press Esc to close. The palette is a tool, not a screensaver - no spring animations, no flash; just a 100ms fade so you stay in flow.
Discovery
Four discovery shelves sit at the top of /markets. Below them is the full slate, filterable by status, category, and close window.
- On the wireThe markets the consumer-brand press is covering most right now. News-momentum driven; auto-refreshes as stories land.
- TrendingVolume and price movement over the last 24 hours.
- Closing soonMarkets resolving inside the next 7 days. Last chance to take a position.
- Most discussedWhere the comment activity is happening right now.
The categories are how operators organize their attention. Pick the beat you know best; that’s where you have edge.
- Beverage
- Snack
- Beauty
- Retail
- Capital
- Regulation
The other lever is following the people. Hit Track on any trader’s profile to pin them to your watch. Their new positions land in your notifications as they happen, so the operators you trust become a live shortlist of where to look next.
/activity is the live tape: every trade, real time. The tape tells you what the crowd is doing right now, not what they did last week.
Hover to pause. The real tape on /activity is filterable by side, category, and trade size.
Brand pages
Every brand the site covers has its own page at /brands/[slug]. Think of it as a Bloomberg ticker view for one consumer brand: the open markets that mention it, the resolved markets that already settled, and the news stories the wire matched to it.
Useful entry points for a brand page:
- Open marketsEvery active market where the brand is the subject. The price-and-volume snapshot for the brand's near-term outlook in one scroll.
- Resolved marketsWhat the room called right and wrong about this brand in the past. Useful before you take a position - the platform's record on a brand is itself signal.
- Wire mentionsRecent news, tweets, and IG posts the matcher attributed to this brand. Gives the context behind any price move on the live markets above.
Find a brand page via search (typing the brand name in ⌘K or /), via the brand logo on any market card (clicking the logo navigates to its brand page), or via the brand roster surfaced inside a category view.
The wire
/news is the room’s shared information surface. Every article, tweet, and Instagram post in the consumer brands beat passes through one of three crons and lands in one of two places.
- RSS · every 15 minA curated set of CPG, retail, beauty, food, beverage, apparel, media, tech, and auto feeds. Trade press is weighted higher than consumer media.
- Twitter · hourlyA curated set of industry handles (Snaxshot, BevNET, Beauty Independent, Modern Retail, NielsenIQ, The New Consumer, etc.). Pulled via the Xpoz social API.
- Instagram · hourlyBrand-account posts that hit one of the active brand profiles. Used for product launches, partnership reveals, and the visual side of the beat.
Each item runs through a keyword matcher against the active market roster. A clear hit gets a second pass from a per-article LLM that writes a one-line Move: what happened. Implication: how it shifts YES. verdict. Items that clear both gates become matched storiesand anchor the featured strip plus their market’s detail page. Items that don’t clear fall to the wire, the unfiltered firehose available behind the “Wire” chip.
A small tier of trusted publishers (Puck, BoF, The New Consumer, BevNET, Food Dive, Retail Dive, Beauty Independent, Brewbound, This Week in CPG, and a dozen more) skip the LLM gate entirely. Their editors have already done the “is this CPG signal” filter, so a keyword match is enough.
The Moversstrip at the top of /news ranks the last 12 hours of matched stories by how much their linked market’s price actually moved. That’s the cleanest read on what the room is acting on, not just talking about.
Filter chips on /news scope the feed by source (matched stories, tweets, IG, the raw wire, or everything), category, and time window (12h, 24h, 7d). The default view is matched stories in the last 24h - the wire is one chip away when you want the firehose.
The activity tape
/activity is the live trade tape - every YES/NO buy and sell as it lands, streamed via Supabase Realtime. No batching, no aggregation; one row per trade, newest first. The tape is the rawest read on what the room is actually doing right now, and it pairs with the wire for the full picture: news on one side, money on the other.
Filters are URL-driven so any view you build is a shareable link:
- SourceEveryone, just the traders you Track, or a single category. Tracking-only is the fastest way to convert your watchlist of operators into a personal squawk box.
- SideYES, NO, or both. Use to scan one-sided conviction - 30 minutes of all-YES on Olipop looks different than balanced two-sided flow.
- SizeMin trade size in SP. Floor at 100 SP to cut out the noise of micro-trades and surface the moves that actually shift price.
Each row carries the trader, side, shares, average cost, the market title (linked to the market page), and the time. Click the handle to land on their profile and audit the position; click the market to join the action.
Watchlist and digests
Two different bookmark verbs live on the site and they do different things.
The bookmark icon on a market adds it to your watchlist. That’s a saved-for-later list of questions you’re actively tracking. It’s also the implicit opt-in for the weekly digest below.
The Track button on a trader’s profile is the other watchlist: you’re following the operator, not the market. Track an insider whose calls you respect and you get notified when they take a sizable position, so the people you trust become a live shortlist of where to look.
Three digests run on cron and land in your inbox unless you turn them off:
- Watchlist digest · weeklyMonday 9am PT. Per-market activity from the last 7 days for everything you've bookmarked: price moves, biggest trades, new comments, brand-level news that hit those markets.
- Discussions digest · daily7am PT. Threads you follow that have moved in the last 24 hours. Following a thread is implicit when you comment or hold a position in the linked market.
- Daily wire digest · 4x per dayThe 12-hour window's biggest brand-level news, scored against your watchlist's category mix. Goes to onboarded users only.
Per-event push notifications (proposal approved or rejected, mentions in comments, sizable trades by people you track, markets closing in 24h) ride a separate rail. Everything above is configurable at /settings/notifications. The two unsubscribe verbs in-product are removing the bookmark (kills the watchlist digest for that market) and untracking the trader (kills their trade notifications).
Proposing markets
The slate isn’t fixed. If there’s a question you want priced, you can put it in front of the operators. There are two ways.
From inside the app. Hit Propose in the top-right of /markets. You write the question, the resolution rule, the category, and an approximate close date. It lands in the admin queue. Approved proposals open with seed liquidity and are credited to you on the market page.
From Twitter. Tweet @HeroMarketHQ with the question in plain English:
“@HeroMarketHQ make a market on whether Olipop hits 75K Walmart doors by Q1 2026”
Every 15 minutes a cron pulls mentions, parses each one into a binary YES/NO spec, and drops it in the same admin review queue as in-app proposals. Your @handle surfaces on the approved market so attribution closes the loop. The parser skips replies, jokes, news shares, and anything that doesn’t read as a real forecastable question.
What makes a good proposal. A clear YES/NO outcome, a real deadline, and a public source the resolver can point at. “Will Magic Spoon hit 10K Walmart doors by Q4 2026?” resolves against a press release. “Will Glossier announce IPO plans by July 31, 2026?” resolves against a public filing. Vague feels-like questions get bounced back.
Proposal review
Every proposal - in-app, sim-drafted, or tweet-sourced - lands in a single moderator queue at /admin/proposals with status pending. A Hero Market moderator reads each one and does one of three things.
- ApproveFills in the canonical fields: cleaned title, resolution criteria, primary source URL, category, close date, resolves-by date, and seed-liquidity subsidy. The proposal becomes a live market (or a draft if it needs a final eye). You and the original asker both get email.
- RejectOne short reason saved on the proposal. You get email with the reason so you can revise and resubmit, or just learn what we won't take.
- HoldLeaves the proposal pending while the moderator chases context (waiting on a press release, a brand confirmation, a parallel market resolving). No email; the proposal just sits.
Latency. Pending queue is usually drained inside 24 hours during weekdays, longer over weekends. Tweet-sourced proposals run on the same queue, same SLA - the cron writes them in but a human still reads them.
The bar: smart, engaging, timely. Every market that goes live has to clear all three. The wedge is calibrated operators marking each other’s homework - that breaks the moment a visitor sees a market the room reads as stupid, stale, or unresolvable. One bad market on launch day damages trust more than ten missing markets. We’d rather void aggressively than ship debt.
What we approve.Binary outcomes, public resolution sources, reasonable deadlines, a premise the room can actually price (someone has to have a view), and a fact-check that the outcome hasn’t already happened or been crossed by someone else in the category. Brand-specific is fine; category-wide trend questions usually get rephrased as a binary ("Will X exceed Y by date") before approval.
What gets rejected, hard.
- StaleOutcome already determined by an event that pre-dates the proposal.
- Broken premise"First X to do Y" where the threshold was already crossed by someone in the category.
- UnresolvableNo public source to read against. Sentiment, vibes, private data.
- VagueFeels-questions without a measurable threshold or deadline.
- Out of scopeAbuse, impersonation, off-topic, or anything that lives in a legal grey zone.
Rejection isn’t personal - the queue is a market-quality filter, not a user-quality filter, and a rejection on one proposal says nothing about your next one. The same standard applies to existing markets: if a live market drifts across one of these failure modes (an acquisition lands, a threshold gets crossed, a new public source surfaces that changes the read), we void it and refund every position at average cost rather than resolve against thin information.
Mobile and Add to Home Screen
Hero Market is a PWA. iOS: open hero.market in Safari, share sheet, Add to Home Screen. Android Chrome prompts you after a few visits. Push notifications work in the installed app on iOS 16.4+ and Android Chrome; toggle per-device at /settings/notifications. No native app, no app store, no IAP. The browser is the runtime.
The beta
Hero Market is an invite-only closed beta, currently scoped to operators in consumer brands: founders, brand leads, retail buyers, investors, the press that covers them. Across consumer brands: apparel, beverage, media, retail, tech, auto. The Hero Market team runs the site and trades alongside everyone else; the prices you see are the trader base’s collective belief, not a curated view.
We’re intentionally small. The signal is only as good as the trader base, and we’d rather have 200 sharp operators than 20,000 noise.
To request an invite, ask a current trader for their referral, or write us at hello@heromarket.com with a sentence on what category you cover.
Glossary
The vocabulary, defined once so the rest of the site doesn’t need to keep redefining it.
- Sugar Points (SP)
- Site currency. Play money. New traders start with 1,000 SP, and the balance is floored at 1,000: you can lose down to the floor, never below.
- YES / NO share
- A claim that pays 1 SP if the market resolves to that side; 0 if it doesn't.
- Maniswap AMM
- Constant-product market maker that prices YES/NO from the pool ratio.
- Brier score
- Calibration metric. Lower is better. Penalizes overconfidence and underconfidence.
- Subsidy
- House liquidity seeded into the pool at open so early traders have a counterparty.
- Liquidity
- How easily you can get in or out of a position without the price moving against you. Deeper pool, less slippage.
- Resolution criteria
- The written rule that decides YES or NO. Read literally, never extrapolated.
FAQ
The questions we get most often.
Comments and mentions
Every market and event detail page carries a page-level discussion thread at the bottom. Threaded replies, reactions (👍, 👀, 🎯, 🚩 - small set, no emoji-soup), and a composer with mention support.
Mentions use the standard
@handlesyntax. Typing@in the composer pops an autocomplete that searches the active trader roster. A mention notifies the target in their bell and (if they have email notifications on) in their inbox. Self-mentions are a no-op so you can’t farm your own notifications.The other layer is annotation comments. On a market detail page, the news rail and the trade tape both expose a small “Discuss · N” affordance under each card. Clicking expands a single-tier thread anchored to that specific article or trade, so a conversation about “why did the price move 7pp on this Bloomberg story” stays attached to the story, not buried at the bottom of the market thread. Replies are flat at the annotation layer; the page-level thread owns deep threading.
Comment moderation is light by design. The Hero Market team can hide individual comments and shadow-ban handles in egregious cases; the goal is to keep the signal-to-noise ratio high without policing tone. Hard rule: no impersonation. Handles are locked at onboarding for exactly this reason.