GPO VALUES trade calculator

loading…

Trade Calculator

Math-driven GPO trade values.

Every number derived from real Discord trades — not editor guesses. Build a trade below, check if it's a win, fair, or lose.
You
Total Value 0
𝓑 0
VS
Them
Total Value 0
𝓑 0
verdict
Search or paste a trade to start.
Updated — · Values v2026.04 · Balanced-250 windows · How confidence works · Recent changes →

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.
0 0