Trade Calculator
Math-driven GPO trade values.
Recent value changes
Items that moved most between our last two solver runs. Click a row to open details.
How this site works
Every number on this page is derived from observed Discord trades. No values are typed in by hand. The pipeline parses ~1M trade messages from 7 Discord channels and produces the values.json you're seeing.
1 · Scrape
A scraper pulls every message from the GPO trading Discord channels — trade-1, trade-2, booster, premium, certified, winloss, and the rumbling channel — and saves (timestamp, author_id, content) rows to a CSV. Author IDs are critical: without them, one bumper posting "1 ASE FOR 7 MC" every hour would skew every ratio they touch.
2 · Parse
Each message gets tokenized: emojis are resolved against a 237-entry item dictionary, text is matched against ~970 aliases (PCC, ICC, ASE, CQASE, PCHAK, etc), and the FOR separator splits offering from wanting. Quantities (1️⃣..🔟, "300x", "2M") and modifiers (+Adds) are captured.
Then two layers of dedup kill spam:
- 60-second bump filter — same author posting the same content within a minute counts once.
- Per-user-per-day cap — each
(author_id, message_hash)pair counts AT MOST once per calendar day. A bumper posting "1 ASE FOR 7 MC" every hour for a week contributes 7 trades, not 168.
A cleanup pass then drops the :Peli: emoji (GPO's in-game currency, not an item — previously polluted 23K trades with nonsense "1 Peli = 1 LFC" ratios) and splits lumped "(any)" buckets into their real color variants (Blue Valk → Ice Valkyrie, Azure Kraken → Kraken Blade (Azure), etc.).
3 · Filter scams
Posts like 1 PCC FOR 1 SGC or 1 MC FOR 1 ASB are scammer lowballs — the items are 2+ tier letters apart with no compensating modifiers. These get dropped before any math runs.
4 · Solve — chain + bundle
Anchor: Mythical Fruit Chest = 10,000. Every other value is derived as a multiple of this anchor. Then:
- Ratio chain — Dijkstra walks a graph where edges are 2-item-each ratio trades (1 ASE = 8 MC, 1 Dragon = 4 MC, etc). Same-item lists collapse so "DFR FOR MC + MC" counts as 1 DFR = 2 MC.
- Bundle propagation — multi-item trades like PCC FOR PFL + PWE say "1 PCC = sum of those two." The solver derives values for items that appear ALONE on one side of a bundle.
- Iterative re-valuation with damping — the weighted-percentile value across all qualifying bundles runs up to 10 rounds. Each round is blended 35% new + 65% old and capped at ±30% per step (±60% for thin-data items) — prevents the oscillation you get with ~1M interdependent trades.
- Scarcity-aware percentile — scarce Collectables (rarity = Collectable, <1K bundle evidence) use the 85th percentile instead of median, because holders don't offer them cheap. Well-traded items use the plain median.
5 · Two-window time decay
Every bundle carries two weights: a long one (30-day half-life) and a short one (12-hour half-life). Per item the solver picks whichever is more trustworthy right now:
- If recent bundle weight ≥ 5: use the short window — values respond fast to market shifts.
- If recent weight is 3–5: blend 30% short + 70% long.
- If < 3: stick with the long window — one person's weird offer last hour can't move the price.
6 · Post-process — 1:1 alignment
Some items get stuck at a bad Dijkstra estimate because their trades are mostly 1:1 (not bundles). For any item with ≥50 trades against a single clear partner where values disagree by >2×, we pull it halfway toward the partner's value. This catches cases like Megalodon (stuck at 10, but trades 1:1 with Legendary Fruit Chest which is worth 71 — so Megalodon gets pulled up to ~50).
7 · Wiki + demand + confidence
Every item is cross-referenced against the GPO Fandom wiki — rarity, drop rate, trade level, images are scraped from index pages (Swords, Devil Fruits, Accessories, Fishing) which carry the clean -nobg.png item sprites. The demand tag compares wanted vs offered across posts; confidence is a traffic light (high ≥1K trades, medium 200–999, low <200) — the orange ⚠ LOW DATA badge means don't treat the number as gospel.
Discord bot
We also run GPO VALUES, a Discord bot that exposes these values in chat. In a designated channel it auto-parses natural-language trades: type pcc for pfl and it replies with both sides, the verdict, and flags any tokens it couldn't resolve. Slash commands: /value, /trade, /search, /browse, /config. Autocomplete works on names and shortcuts.
What's intentionally NOT here
- No editor's opinion. No "we think PCC is worth X." If the data says X, it's X.
- No external value lists. We don't reference any other community price guide — the math stands or falls on the trade evidence alone.
- No fake confidence. Items with thin trade data get the LOW DATA flag and wider confidence intervals.
Caveats
- These are trade offerings, not closed deals. The math weights what the community is asking, not what actually clears.
- Exclusives (Marine Cap, Marine Cape, Cool Shades) trade rarely — holders don't sell, so posted offers under-price them vs. community consensus. Solver caps out where the actual bundle evidence does.
- Adds value isn't fixed — at the prestige tier "+Adds" can mean another full prestige worth of fillers. The solver excludes mod-bearing trades from bundle math entirely so that ambiguity doesn't pollute the values.
- Items with very few trades (<200) can swing a lot day-to-day — the LOW DATA badge marks them.