How to calculate the ROI of a LEGO set — and how Cault does it for you
Basic formula, annualised ROI, liquidity signal, sealed premium, theme benchmark, retirement phases, estimated break-even. Everything Cault calculates automatically — explained from A to Z.
Published 20 May 2026 · Updated monthly
A LEGO set is fun. But in some cases, it's also a serious investment. A study of 2,322 sets sold between 1987 and 2015 calculated an average annualised return exceeding 11% — comparable to stock market performance over the same period. So how do you know if your collection is really gaining in value?
The basic formula
ROI (%) = ( Resale price − Purchase price − Fees ) / Purchase price × 100
Concrete example — The Parisian Restaurant #10243
Bought at launch for €149.99. Retired, now trades at €420 on BrickLink sealed. Selling fees: €25.
ROI = (420 − 149.99 − 25) / 149.99 × 100 ≈ 163%
For €150 invested → you recover approximately €395 net.
Annualised ROI: the real comparative measure
A gross ROI of 163% over 8 years is very different from 163% over 2 years. To compare sets against each other — or against other investments — you need to calculate the annualised ROI.
ROI/year = Gross ROI / Number of years held Example: 163% over 8 years → 163 / 8 ≈ 20.4%/year
Methodological note
Cault uses linear annualisation (ROI / years) rather than the exact CAGR formula. The difference is small over 1–5 years but widens over very long periods. For a 163% ROI over 8 years: linear = 20.4%/year vs CAGR = 13.7%/year. Cault displays the linear version for readability — keep this in mind if you compare with stock market indices that use CAGR.
How Cault determines your reference price
Before calculating ROI, you need a price. Cault reads 4 distinct metrics from BrickLink, updated daily:
Listed items (new)
Average of currently requested prices for a sealed new set. Trend indicator — may include speculative prices.
Listed items (used)
Average prices requested for an opened or used copy. Reflects the seller's market state.
Completed sales (new)
Average prices actually paid for sealed new over the last 6 months. The most reliable metric for sealed.
Completed sales (used)
Average prices actually paid for used over the last 6 months. Reference metric for opened condition.
Why prioritise completed sales?
Listed prices reflect what sellers hope to get. Completed sales reflect what buyers have actually paid. Cault prioritises completed sales: max(price_sold, price_new) for sealed, max(price_used_sold, price_used) for used.
The liquidity signal — how easy is it to sell?
A set can have a great ROI on paper but be very difficult to sell. Cault calculates a liquidity signal based on the sales/listings ratio over 6 months:
Ratio = Units sold (6 months) / Units currently listed Sealed new: qty_sold_new / qty_listed_new Used: qty_sold_used / qty_listed_used
High demand
Buyers purchase faster than sellers list. Price increase likely.
Active market
Favourable buyer/seller balance. Good liquidity.
Balanced
Supply and demand balance each other. Stable prices.
Excess supply
More sellers than buyers. Downward price pressure.
The sealed premium — condition changes everything
An unopened set is structurally worth more than an opened one. Cault automatically calculates the sealed premium and contextualises it:
Sealed premium (%) = ( Sealed new price − Used price ) / Used price × 100
A high sealed premium (>40%) is a strong signal: buyers are willing to pay much more for an unopened copy, indicating sustained collector demand. A negative premium (<0%) is rare but can indicate a quality or image problem with the set.
Theme benchmark — your set vs the rest of the theme
Cault doesn't just give you your set's ROI in isolation. It compares it against the average of all sets in the same theme in our database.
For each set in the theme:
roi_set = (market_price − retail) / retail × 100
years = today − retirement_date (or release year)
roi_yr = roi_set / years
Theme average = average(roi_yr) across all sets in the theme
with valid market data (≥ 6 months old)What is it for?
If your Star Wars UCS set shows +12%/year and the Star Wars theme average is +9.5%/year, you know your set outperforms its theme. It's the same reasoning as a fund manager comparing their performance against an index.
The 3 retirement phases
After its end of production (EOL — End Of Life), a LEGO set goes through 3 distinct phases. Cault detects them automatically and adapts its indicators accordingly.
Pop Phase
⚠ Volatile0 – 6 months after EOL
Volatile prices. Post-retirement buying euphoria, residual stock still circulating. Prices can rise quickly or stagnate depending on the set's popularity.
Appreciation Phase
↑ Active6 – 18 months after EOL
Active appreciation phase. Residual stock runs out, secondary demand asserts itself. This is often where value grows fastest.
Mature Phase
~ Stable18 months+ after EOL
Mature market. Appreciation slows and stabilises. Some sets continue growing slowly, others stagnate. This is where you assess whether the set is a "classic" or not.
Estimated break-even — when the set becomes profitable again
For sets in the mature phase whose used price is still below retail, Cault estimates a return-to-positive year. The calculation is based on the observed trajectory since retirement:
Opening baseline = Retail price × 0.70 (−30% = typical loss on opening a set) Estimated annual gain = (Current price − Baseline) / Years since retirement Years to break-even = (Retail − Current price) / Annual gain Return-to-positive year = Current year + Years to break-even
Example
A set retired 3 years ago, retail €200, current price €165.
Baseline = €140 → estimated annual gain = (165 − 140) / 3 = €8.3/year
Remaining years = (200 − 165) / 8.3 ≈ 4.2 years → estimated return to positive ~2030
Your overall portfolio ROI
Across your entire collection, Cault automatically aggregates:
Total invested value = Σ purchase_price of all your items Total market value = Σ market_price of all your items Overall ROI (%) = (Market value − Invested value) / Invested value × 100
This calculation is available per collection (LEGO sets, LEGO minifigs) and globally across all collections. Here is an example portfolio of 3 sets:
| Set | Purchase | Market | Gross ROI | ROI/yr |
|---|---|---|---|---|
| Millennium Falcon #75192 | 799,99 € | 1 450,00 € | +81% | +9.8%/yr |
| Château de Poudlard #71043 | 469,99 € | 980,00 € | +109% | +15.2%/yr |
| NASA Apollo Saturn V #92176 | 119,99 € | 310,00 € | +158% | +18.4%/yr |
| Total collection | 1 389,97 € | 2 740,00 € | +97% | ~14,5%/yr |
Benchmarks to assess your performance
< 5%/an
Disappointing
The set didn't perform as expected
5% – 10%/an
Decent
Within the historical low market average
10% – 15%/an
Good
Above average — a real performer
> 15%/an
Excellent
Top performer — this set is a winner
~7–8%/an
CAC 40
30 years, dividends reinvested
~4–5%/an
Real estate
France, excl. rent
>11%/an
LEGO (avg.)
2,322 sets, 1987–2015
What Cault doesn't yet calculate automatically
Cault calculates the gross potential gain based on semi-real-time market prices. Two things remain manual for now:
- Selling fees — platform commissions (8–15%) and shipping costs are not yet automatically deducted. You can enter them in the transaction interface for a fee-net ROI.
- Taxation — above certain annual disposal thresholds, capital gains may be taxable. Cault does not perform tax calculations.
Integration of automatic fee estimates based on the chosen resale platform is on our roadmap.
Conclusion
Calculating the ROI of a LEGO set is accessible to everyone. The formula is simple: (resale − purchase − fees) / purchase. What changes with Cault is that you no longer have to do it yourself — and you have far more refined indicators than a simple percentage: liquidity signal, sealed premium, theme benchmark, retirement phase, estimated break-even.
Whether you're starting to collect with an investment mindset, or simply want to know if your collection is worth more today than yesterday — that's precisely what Cault was designed for.
Related articles
Les sets LEGO à sécuriser avant le 31 juillet 2026 : la plus grosse vague de retraits mi-année
130+ sets retiring dont 21 exclusifs — Gringotts, D&D Red Dragon's Tale, Jaws, Deku Tree déjà épuisé. Analyse set par set et prise de position sur ce que j'achèterais vraiment.
19 juillet 2026
3 exclusifs LEGO Halloween 2026 dès 19,99€ : le petit budget qui peut rapporter gros
Pumpkin Lantern, Skull Candle, Colorful Lantern — 3 sets accessibles avec un vrai historique de tenue de valeur.
17 juillet 2026
EOL ou fausse alerte ? Ce que l'historique du Faucon Millennium UCS apprend sur les annonces de retrait LEGO
Annoncé retiring au 31 décembre 2026 — déjà repoussé une fois depuis 2025. La méthode pour vérifier une date EOL avant d'acheter.
16 juillet 2026
Enjoyed this article? Find a summary on our social media — and follow us so you never miss anything.
Cault
All these calculations, automatically.
Gross ROI, annualised ROI, liquidity signal, sealed premium, theme benchmark, break-even. Free to start.
Track my collection for free →