Methodology
How LEGO® Minifigure Prices Are Calculated — Our Valuation Methodology
A valuation you cannot interrogate is a number you should not act on. This page sets out where our figures come from, how often they change, and where they stop being reliable.
The short answer
Brick Loupe values a minifigure from recent sold prices — what buyers actually paid — rather than from active listings. A price counts as fresh only if it was fetched that day; older values display immediately and refresh behind you. Values are stored per condition, New and Used separately, and converted to your currency at European Central Bank daily reference rates.
Key takeaways
- Sold prices, not asking prices. An unsold listing can sit at an unrealistic number for years without correcting.
- Freshness is defined as fetched today, not "recently" or "within 24 hours".
- New and Used are priced separately, because they are different markets.
- Currency conversion uses European Central Bank daily reference rates, applied server-side at display time.
- Every valuation is an estimate with a date attached. It is not an appraisal and not an offer.
Most price tools ask you to trust a number. This page exists so you do not have to.
Below is the actual method: what data a valuation is built from, how often it changes, what it splits on, and — the part that matters most — where it stops being reliable.
Where the price comes from
Recent sold transactions
A Brick Loupe value is derived from recent completed sales of that specific catalogue item. Not listings. Not averages of listings. What buyers paid.
This is the single most consequential choice in the whole pipeline, and it is worth being explicit about why.
An active listing records one seller's asking price. Nothing in the mechanics of a marketplace corrects an unrealistic one — an overpriced figure simply sits there, unsold, indefinitely, continuing to publish a number nobody ever agreed to. Average a set of listings and you get the average hope of the sellers who have not yet sold, which is systematically higher than the market.
A completed sale records an agreement between two parties. It is the only observation that tells you what the item is worth.
The practical consequence: our numbers are often lower than the prices you can see listed. That is the method working, not failing.
Per catalogue item, not per category
Prices attach to a specific catalogue identity, not to a description. Two figures that look similar to you but are separate catalogue entries get separate values — which is exactly why identification accuracy matters as much as price data quality. A perfect price on the wrong figure is a wrong answer.
How fresh a price is
Freshness has a precise definition here: a price is fresh if it was fetched today (UTC date). Not "in the last 24 hours", not "recently".
The rolling-window alternative sounds equivalent and is not. A 24-hour window means a price fetched at 23:00 yesterday is fresh at 22:00 today and stale at 00:00 — freshness that depends on when you happen to look. A calendar-day definition is one you can reason about.
What happens when you open a collection of 200 figures:
- Every cached value is served immediately, stale or not, so nothing on screen blocks on the network.
- Anything not fetched today is queued for refresh in the background.
- The screen updates in place as fresh values arrive.
- A figure with no cached value at all is the only case that waits.
There is also a nightly refresh job, so most values in an active collection are already current before you open it.
The design principle: a stale number now beats a fresh number in nine seconds, as long as we go and get the fresh one immediately and tell you when it lands.
What the price splits on
Condition
New and Used are stored and priced as separate rows, because they are separate markets. On a collectible figure the difference between a sealed, never-assembled example and a played-with one with softened printing can be most of the value.
A collection can hold the same figure in both conditions as two rows with two quantities and two values. Totals sum correctly across them.
Not on region
We do not currently price by region. Collector markets do differ geographically — shipping costs and local demand are real — but a single global market value is both more stable and more honest than a regional estimate built on too few observations.
Currency
Underlying sales data arrives in one currency. Your display currency is almost certainly a different one.
Conversion happens server-side, at display time, using the European Central Bank's daily euro foreign exchange reference rates — a published, independent, freely checkable source. Fourteen currencies are supported: USD, EUR, GBP, CAD, AUD, DKK, NOK, SEK, CHF, JPY, CNY, SGD, KRW and ILS. All fourteen appear in the ECB feed, which is why that list is what it is.
Two rules that follow from this, and that matter more than they look:
- Cached prices are stored in the source currency, never yours. Conversion is applied when a value is emitted. A shared cache holding pre-converted values would show one user's currency to another.
- Historical records are stored in the source currency too, and converted per data point at that day's rate. Storing history in your display currency would make your own past move every time you changed a setting.
There is also an age ceiling on the rates themselves: if the reference-rate feed were to stall, conversion refuses stale rates rather than quietly applying week-old ones.
What identification contributes
A price is only as good as the identity it is attached to, so the identification path is part of the methodology.
A scan runs in two stages. A detector, trained in-house on real photographs of real piles, finds and crops each figure in the frame. Each crop then goes to identification, which matches it against a reference library.
The design choice worth stating: identification commits or abstains. It returns a match it believes in, or it returns nothing. It does not pad results with plausible near-misses. When it abstains you get a search box over 19,041 minifigures and 24,888 sets, not a guess.
This makes the product look less capable in a demo and makes it more useful in practice. A confident wrong answer and a confident right answer are indistinguishable three weeks later, when you are pricing a sale.
Where a valuation stops being reliable
The honest limits, stated plainly:
- Thin markets. A figure that trades rarely has few recent sales behind its number. Fewer observations means a wider real range than the single figure suggests. Roughly a quarter of the more obscure catalogue entries have no reliable sales data at all and will not return a price — we show you what the item is rather than inventing what it is worth.
- Condition is self-reported. We price the condition you set. We cannot see your figure. Over-stating condition is the largest single source of inflated collection totals.
- Completeness is invisible to us. A figure missing its correct cape, headgear or accessory is a different item at a different price, and a scan cannot tell whether the accessory is in the photo or in a drawer.
- Reproductions price as genuine. An identifier matches appearance. If a counterfeit looks like the real figure, it will be valued like the real figure. Check anything that scans high — how to spot a fake covers the physical tells.
- Mash-ups have no correct answer. A figure assembled from three different figures exists in no catalogue.
- The market moves. Retirements, re-releases, an adaptation announcement. A total from three years ago is a historical note, not a current value.
What the number is for
A Brick Loupe valuation is a well-informed estimate of current open-market value, adequate for pricing a sale, evaluating a lot before buying, documenting a collection for insurance, or simply finding out what is in a box.
It is not a formal appraisal, not an offer, and not a guarantee of sale price. What you actually receive depends on your platform, your photographs, your description, fees, shipping and patience. Two identical figures sold in the same week by different sellers routinely differ by a third.
For context on how differently the research treats this asset class: the peer-reviewed study most often cited on LEGO® as an investment (Dobrynskaya & Kishilova) measured sets on the secondary market from 1987 to 2015 and found average returns of at least 11% annually. That is a finding about sealed sets over a long horizon — not about minifigures, and not a forecast. We discuss what it does and does not imply in are minifigures a good investment.
Corrections
If you believe a valuation is wrong, tell us — the feedback page reaches us directly. Identification errors are the more common cause, and correcting one improves the model for everyone: confirmed identifications are kept as labelled examples and are what the identifier learns from.
Frequently asked questions
How does Brick Loupe calculate minifigure prices?
From recent completed sales of that specific catalogue item — what buyers actually paid — rather than from active listings. Values are stored separately for New and Used condition, treated as fresh only if fetched that calendar day, and converted to your display currency server-side at European Central Bank daily reference rates.
Are Brick Loupe valuations accurate?
They are accurate as estimates of open-market value, within limits we state openly: thinly traded figures have fewer sales behind them, condition is whatever you set because we cannot inspect your figure, missing accessories are invisible to a photo, and a good reproduction prices like the genuine item. Treat a valuation as a well-informed estimate with a date on it.
Why is the Brick Loupe price lower than what I see listed?
Because listings are asking prices and nothing forces an unrealistic one to correct — an overpriced figure sits unsold indefinitely while still publishing its number. Sold prices record what a buyer agreed to pay, which is lower and far closer to what you would actually receive.
How often are prices updated?
A value counts as fresh only if it was fetched on the current UTC date. Stale values are shown immediately so nothing blocks, then refreshed in the background and updated in place. A nightly job refreshes values in active collections ahead of time.
What exchange rates does Brick Loupe use?
The European Central Bank's daily euro foreign exchange reference rates, applied server-side when a value is displayed. Fourteen currencies are supported, all of them published in that feed. Cached and historical values are stored in the source currency and converted per data point, so changing your display currency never rewrites your history.
Is a Brick Loupe valuation an official appraisal?
No. It is an estimate of current market value suitable for pricing a sale, assessing a purchase, or documenting a collection. It is not a formal appraisal, not an offer, and not a guaranteed sale price. A high-value collection being insured may still require a professional appraisal.
Sources
Scan your minifigures now
Point your camera at a pile of figures, or drop a photo into the browser. Every figure gets identified and priced — free to try, no account needed for your first scans.