The complete plan for the app, written in plain language. Every decision here came from your teardown and the calls we made together — this is the coherent thing we rebuild toward, with the Drop Score engine at its core. Draft for review
Each section says what we're building and — just as important — why. If you ever wonder "wait, why did we decide that?", the answer is here in plain words. Nothing is jargon; nothing is assumed. When it's ready, this becomes the build plan.
1
grade, one engine, shown everywhere
3
core screens — Home · Result · Browse
3
levels of optional personalization
0
forced steps before you get value
01What we're building
An easy-to-use app that tells a LEGO fan how a set rates for them, what makes it good, and the full story behind its value — catered to their interests.
Type in (or tap) any LEGO set and get one honest letter grade, the plain-language reasons behind it, and a downloadable card worth sharing. It works instantly for a total stranger, and gets sharper and more personal for anyone who wants that. The grade is powered by The Drop Score — your review-based engine — with the True Value price math folded in as one of its layers.
The problem this fixes
The old tool grew by accretion: a calculator became an app, the app grew a discovery layer, the revamp piled on navigation. It got noisy, the timeline drifted out of sync, and the grade got buried. This spec is the reset — one coherent app centered on the grade and the person reading it.
02The principles
The rules that keep it from bloating back into a maze. When a future decision is unclear, these break the tie.
One grade, one engine, everywhere. The Result, the Home cards, the Browse tiles, and the share card all read the same grade from the same engine. No second code path — the drift that split the old timeline is designed out.
Open to the grade, not the catalog. The app's front door is finding and grading a set, never a wall of browsing.
Personalization is optional and progressive. Full value with zero setup. Tailoring is something you grow into, never a gate.
Be honest about what we don't know. Show confidence, show receipts, and say "Early read" when the data is thin. Honesty is the brand's edge — never fake certainty.
Let the photo and the grade do the talking. Image-forward everywhere; cut anything that doesn't earn its place.
App feel for fans, web reach for everyone. A PWA with public result pages — no install wall on your most casual traffic.
Plain language only. No engine jargon ever leaks to the user.
Color means something. Near-black ground, LEGO yellow-forward, red second — the Drop Score design system (this document's own look).
03Platform & the shape
It's a PWA with public result pages
One web-based app. Fans can install it to their home screen and it behaves like a native app; strangers who tap a shared card land on an instant public web page for that set — no install, full result. One codebase, web reach and app feel. (Your current tool is already a PWA, so this builds on what exists.)
Why this matters
The share card's whole job is to get tapped by strangers on social. If the core were a native app, that tap would hit an install wall at the exact moment of acquisition. Public result pages remove the wall; the "make it yours / add to home" nudge comes after we've delivered value.
Three core screens, plus two supporting
Screen
What it's for
Nav
Home
Find a set (search) + a curated shelf. "For You" once you have a profile; "Notable drops" if you don't.
Tab 1
Result
The Verdict Card — the grade, the why, the receipts, the decision. The heart of the app.
opens from anywhere
Browse
The timeline, demoted: a calm, accurate month-by-month wall of 2026 drops.
Tab 2
Profile
Set up / edit / reconfigure personalization. Home of the (optional) onboarding.
Tab 3
Share card
A downloadable 4:5 image generated from a Result. Not a screen — an artifact.
from Result
Three tabs, not five. Watchlist/Saved is deferred (see §09), so it isn't a tab yet.
04The two engines
One headline grade, powered by two sources that each shine where they're strongest.
The Drop Score — your holistic, review-based engine (judges, corpus, sentiment). It produces the headline grade, the three reads, and the Hot Take. It's the star when real reviews exist.
True Value — the price-vs-parts math you love, kept intact but surfaced as the "Is the price fair?" read inside the breakdown. It's the one source that works before a set is even released.
How the grade behaves as a set ages (the living grade)
Because the Drop Score needs reviews and most of the timeline is unreleased, the headline adapts to how much we actually know:
Release state
Headline
What's shown
Unreleased no reviews yet
True Value grade
The grounded parts/price grade leads, with a clearly-labeled predicted Drop Score beside it (from theme, designer, price, piece value, leaks). All under an Early read frame.
Just launched a few reviews
Drop Score (emerging)
The real Drop Score appears with a low-confidence label ("Early read · 2 reviews"). True Value stays as the "price fair?" read. The prediction retires.
Well-reviewed
Drop Score
The Drop Score is the confident headline; True Value is one read among the breakdown. Full receipts.
The rule this protects
The app must never look most confident when it knows the least. A bold letter on a set nobody owns would quietly torch trust — so pre-launch we lead with the math and label the prediction honestly.
Single source of truth
Every surface — Result, Home cards, Browse tiles, the share card — reads the same grade from the same engine. One number, computed once. This is what keeps Browse accurate and permanently in sync with the calculator.
05Personalization — optional, in three levels
Nobody is forced to set anything up. Tailoring is something a user grows into, and every level is a fine place to stop.
Level
What it is
Setup
0 · Casual
A general Drop Score (how a set rates for most people) + a home of notable, top-rated drops. Search anything, get a grade.
None
1 · Ad-hoc
On any Result, nudge "what matters to you" and that one set re-grades. The card then offers "save these as my defaults."
One tap, no account
2 · Make it yours
A ~30-second onboarding (or saved tweaks). Home becomes "For You" and grades tune everywhere.
Optional, any time
What the profile captures
Onboarding (tight):why you buy (Display / Play / Collect / Invest) · themes you love · budget comfort. Fast, because friction kills the casual user.
Per-set dials (deeper), only when relevant:how much minifigs matter, do you have space for this. These flip a con into a pro for specific people (a huge set is a con if you're short on space) — so they live on the Result, not in setup.
Personalization must show its work
When a profile shifts a grade, the app proves it, so tailoring never feels like a gimmick:
The pattern
Headline reads "A− for you · B+ overall," and a tap reveals the reason: "+ half a grade because you display, not play; a theme you love." Same shape as the receipts (below): clean by default, proof on demand.
06The screens, in detail
Home — casual and "For You" are the same screen
Search-first: a prominent "search any LEGO set" is always at the top.
The shelf below adapts: "Notable 2026 drops" (general grades) for casual users; "Rated for you" (personalized) once a profile exists. Same layout, different contents and one label.
A soft "Make it yours" nudge sits on the casual home — dismissible, and it also lives in Profile so it's never nagging.
Tightly curated — a few picks, never a noisy feed. The old discovery lanes do not come back.
Result — the Verdict Card, the heart of the app
Image-forward like the share card it produces. The set photo fills the top as a full-bleed hero behind the verdict, with the same gradient overlay; the working controls sit on solid dark below.
The grade leads, colored from the set's photo, over the image. Shows "for you · overall" when a profile changes it; tap for the reason.
Confidence is always visible — "Based on 18 reviews · solid" or "Early read · 2 reviews." Never a bare letter.
The Brick Drop Hot Take — the italic line over the image (this replaces the old "unique fact").
Three expandable reads:💰 Is the price fair? (this is True Value), 🤩 Will you love it?, 📈 Holds its value? Tapping a read reveals real review quotes behind it.
Multi-retailer buy row — LEGO, Amazon, and more. Not LEGO-only.
A buy-timing line — "Retiring soon · $120 off right now" (see §08).
One "scores higher for you" alternative — a single tasteful suggestion, not a lane (see §08).
Per-set tweak — "what matters to you" sliders (Level 1 personalization), which then offer to save as defaults.
Share — generates the downloadable card, delivered via the bottom-sheet pattern.
Every Result has a public web URL — this is the page a shared card opens.
Browse — the timeline, calmed and corrected
Chronological by month, with months as quiet inline dividers (not a sticky jump-rail).
Grid ↔ List toggle — Grid (image-forward, share-card tiles) is the default; List is the scan-fast density option.
One simple filter row — All / Coming / Available / Retiring. Status badges only when they matter.
Same engine, same grades — every tile reads the one true grade; personalized if you have a profile.
Not the homescreen — it's the second tab, a "nice add-on," never the front door.
Onboarding & Profile — invited, never sprung
Reached from the nudge or the Profile tab, never forced on a first-timer. Has a clear "Skip for now."
Reconfigurable any time from Profile — edit or redo it.
07The share card & the Crop Curator
The share card — a downloadable, postable image
4:5 portrait, saved as a hi-res image to the user's phone for social. This is its purpose.
Locked DNA: full-bleed set photo, black gradient overlay, set name in a soft halo, and the grade letter colored from the image.
Carries the Brick Drop Hot Take (not the old unique fact).
Links back to the set's public Result page — the card is the top of the growth loop.
The Crop Curator — ship it as a real tool
Your per-set crop/accent data (173 sets and counting) is the source of truth for how each photo frames on the card.
Productionize it as a /crops page with a real save endpoint (no copy-paste JSON), an "alt image" cycle for photos that don't fit, and auto-save so work is never lost.
08Decision support — beyond the grade
A grade with no next step is a dead end. Two light touches turn a verdict into a decision — one line each, never the old maze.
"Is now the time?" — a price/timing line: retiring-soon urgency and price context ("$120 under usual"). Data note this needs price history over time, so it may land a beat after the core grade.
"Is there something better for me?" — one "scores higher for you" alternative. Comes free it rides on the same recommendation engine as the For-You home.
09What's in v1, and what's later
Your teardown, resolved into scope.
Call
Item
v1
The grade + one engine; Result (Verdict Card) with receipts, for-you/overall, buy-timing, alternative, per-set tweak; Home (casual + For You); Browse (grid/list, month spine, one filter); optional onboarding + Profile; 4:5 share card + image-color grade; Crop Curator as /crops; True Value as a layer; unreleased "Early read" + predicted grade; PWA + public result pages; multi-retailer buy.
Later pillar
Alerts & retention — opt-in "watch this set" for price drops / retiring / new-in-your-themes, which revives Saved/Watchlist. Named now, built after v1. This is the come-back-to-the-app engine.
Later pillar
Price history — the data behind the buy-timing line and price-drop alerts.
Cut
Timeline as homescreen · forced onboarding · calendar countdown hero · editorial discovery lanes · 4-row sticky header · month-jump rail · multi-select chips + sort menus · the separate "giant grade letter" screen · the "Is it worth it?" framing.
10How we'll know it worked, & open questions
Success looks like
A total stranger can land on a shared card and understand a set's grade in seconds, with no setup.
The grade a user sees on Browse always matches the grade on the Result. Zero drift.
Users believe the grade — because the confidence and receipts are right there.
Enough people cross from casual → "make it yours" that the For-You home earns its keep.
Share cards get saved and posted — the loop turns.
Open questions to settle before / during the build
The predicted-grade model — which signals, and how loudly do we label a prediction so it never reads as fact?
Grade honesty vs. affiliate buy links — the buy row likely earns revenue; we must keep a hard wall so commerce never bends a grade (your "do not lie" rule).
Coverage — "search any LEGO set" is a promise; where's the honest edge of what the engine can grade well, and how do we set expectations at that edge?
How much a profile actually moves a grade — tune it so "for you" is meaningful but never feels arbitrary.
That's the whole thing: one app, one grade, made for you — the calm reset of everything that drifted, with the Drop Score engine at its heart.
one engineimage-forwardhonest by defaultoptional personalizationPWA + public pagesplain language