How these values are calculated

Every number on this site is solved from real player trades. Nothing is hand-set, and no other site's list is used as an input. Here is exactly how it works — including where it stops.

1. Collect real trades

We continuously read public trade posts from the official Murder Mystery 2 trading community. Roughly two thirds of that traffic is the same posts reposted, so it is deduplicated before anything else happens. Scam posts, cross-game adverts and real-money listings are stripped out — they are a different market and would distort an in-game value.

2. Turn posts into equations

A post like "trading celestial and heartwand for sakura set" is a statement that two bundles are roughly equal. We parse it into celestial + heartwand ≈ sakura set. Posts with vague sides ("for offers", "for downgrades"), alternatives ("A or B"), or unstated extras ("+ adds") are discarded — they don't state a ratio, so treating them as one would be inventing data.

Item names are messy: gscope, g scope, gs and gingerscrope are all the same item. We maintain an explicit alias table, and a name we don't recognise is logged and the trade dropped — never silently ignored, which would quietly under-count one side of a bundle.

3. Solve the whole system at once

With 8,534 equations across hundreds of items, we solve them simultaneously rather than one at a time. The solve runs in log space, because a value list spans items worth 16 and items worth 27,000 — what matters is proportional error, not absolute.

One item is pinned as an anchor to fix the scale, and the solver finds the set of values that best satisfies every observed trade at once. Observations that disagree with the emerging consensus are progressively down-weighted, so a single troll offer can't drag the system.

4. Only publish what the data actually determines

This is the part most value lists skip. Consider chroma raygun + chroma heartwand ≈ gingerscope. That is one equation with two unknowns — the solver can split gingerscope's value between them any way it likes and still satisfy it. The number would look confident and mean nothing.

So an item only publishes when observations actually determined its value: trades where everything else was already known. Counting how often an item merely appears is not good enough, and we measured the difference — appearance-counting produced values that failed our external check badly, while determination-counting passed it cleanly.

5. Check it against something independent

Values are cross-checked two ways. First against numbers traders quote themselves — used only when several independent people agree, never a lone claim. Second against real-money resale prices from third-party marketplaces, which never feed the solver and so form a genuinely independent test.

That test is a rank correlation: if our in-game ordering is real, it should track the real-money ordering. It currently does, closely. When a value disagrees with its cross-checks beyond tolerance, we publish nothing and flag the item instead.

The plainest version of that check: of the 93 published items where independent traders state a value themselves, every one of ours lands within 25% of what they say, and 50 land within 10%. The median gap is 9.5%. We did not tune for that — the quote signal and the barter graph are computed without reference to each other, which is what makes them worth comparing.

What we refuse to do

  • We don't copy other value lists. Not as a seed, not as a blend, not as a fallback.
  • We don't guess. An item without enough evidence gets a page saying how much data we have, not a number.
  • We don't hand-tune. Nobody here decides a knife "should" be worth more.
  • We don't hide disagreement. When our own methods conflict, the item is withheld.

Current state

Items published
130
High confidence
87
Trades analysed
8,534
Items withheld
136
Conflicts flagged
5
Last solved
Aug 22, 2026, 12:18 AM UTC

Values in MM2 value units. The full dataset is available as JSON, free and CORS-open.