Skip to content

METHOD

How the opportunity score is built, factor by factor

· 9 min read

Every idea in a Scout run carries a 0–100 score. A score like that is easy to fake and hard to trust, so ours is published in full: the whole engine is on one page, weights included, with a sandbox that runs the production formula live while you drag its inputs.

This post is the written walkthrough of that page, section by section: what each factor measures, why it is weighted the way it is, and where the number is weakest. Every weight and threshold printed here is rendered from the scoring code itself, including the factor cards further down, which are the methodology page's own components dropped into the post.

The shape of the formula

Five sub-scores, one weighted sum, one penalty, then a calibration onto the band you see:

raw   = (0.22·Demand·mv + 0.34·Winnability + 0.16·Monetization·mv
       + 0.18·Feasibility + 0.10·Momentum) × giantFactor
score = raw mapped absolutely onto 40–100

Two properties matter more than the arithmetic. It is deterministic: the same measured inputs produce the same number every time, with no hand-tuning of individual ideas. And the lens is deliberately indie: Winnability alone is a third of the score, while raw market size is not a factor at all. A large opportunity nobody small can take is not, for this audience, an opportunity.

Every sub-score is normalised as a percentile across all 75 category × storefront cells, so a 70 means “better than 70% of lanes”, never a gut feeling. Percentiles are taken 75% against every cell and only 25% against the idea's own storefront: grade a market purely on its own curve and a thin one looks as good as a deep one.

Method card, step 4 of 5: score what a solo developer could take. Five sub-scores, weighted toward whether one person can actually win it, with the incumbent's size priced in. Giant line at 700k ratings, penalised not ignored. Every modelled figure labelled estimated.
The five sub-scores and the giant line, in one card. Each factor's exact recipe.

The five factors, as the engine states them

The cards below are the same components the methodology page renders, reading their weights and sub-weights straight from the scoring code. Nothing here is retyped, so a weight change moves this post too. The explanation after each card is the part the card cannot say: why it is built that way.

Demand22% of the score

Is there measurable appetite in this category and market?

68%Category demand: regression-smoothed monthly rating growth across the free top-100, as a percentile of every category×storefront cell.
32%Leader’s size, capped: a big leader is proof the demand exists (the cap stops giants inflating it).
×Market value: US ×1 · UK ×0.71 · TR ×0.25 · DE ×0.65 · JP ×0.88 · KR ×0.94 · CN ×0.61. Demand is a prize, and a prize is smaller in a smaller, cheaper market. The multiplier is the square root of that storefront’s annual spend per iPhone user against the US’s, so it is derived rather than judged.

Winnability34% of the score

Can a small team actually take the lane from whoever holds it?

44%Beatable: the inverse of the leader’s size percentile. Small and mid-sized leaders are winnable; entrenched ones aren’t.
36%Leader is hurting: the worse of two live signals: a recent rating drop (lifetime average vs. current-version average) and the share of recent reviews at ≤2★. This is the only way the reviews we mine reach the score. Measured or nothing: an unmined leader scores zero here, never a default.
12%Chart churn: the average weekly turnover of the free top-100 across the month. Fluid charts admit newcomers.
8%Low entry wall: the inverse of the median rating count of the top-grossing apps.
×The hurting signal is damped by beatable (floor 0.35): anger at a small leader is far more actionable than anger at a titan, but a bleeding giant is a hard opening, not a non-opening, so it never damps to zero.

Monetization16% of the score

Do people pay here, and does the idea's model fit how they pay?

45%Grossing depth: how many charted apps monetize seriously (>20k ratings on the grossing chart).
30%Model fit: Subscription 0.95 · Credits / IAP 0.80 · Ads + IAP 0.80 · One-time 0.66 · Ad-supported 0.58.
25%Indie proof: count of top-grossing apps with <5k lifetime ratings. Small apps earning here is the canonical signal a solo dev can too (3+ = full marks).
×Run-cost multiplier: recurring COGS eat indie margin: none ×1 · low ×1 · medium ×0.93 · high ×0.82.
×Market value: US ×1 · UK ×0.71 · TR ×0.25 · DE ×0.65 · JP ×0.88 · KR ×0.94 · CN ×0.61. Until this landed, TR scored 62 here against the US’s 63, near-identical, though a TR user spends a fraction of what an American one does. It measured “does this category monetize relative to its own market”, never “how much money will I make”.

Feasibility18% of the score

How fast can one developer ship a credible MVP?

Solo build time to a shippable MVP: weekend 0.95 · week 0.86 · month 0.72 · quarter 0.45.
Older runs without a build-time token fall back to the effort class sniffed from the build note: light 0.92 · moderate 0.72 · heavy 0.45.

Momentum10% of the score

Is the lane heating up right now?

The leader’s grow potential: regression acceleration of its rating trend (0.5 steady, >0.5 speeding up): is the lane itself accelerating? Falls back to the category’s grow potential when no leader matched.
×0.9Shaved when a giant guards the lane: a giant’s tailwind is only partly yours to inherit.

Winnability is the heaviest, on purpose

A third of the score sits on one question, whether a small team can take the lane. That is the whole editorial position of the product: an opportunity nobody small can win is not an opportunity for this reader. The dominant input inside it is the leader's size, and the review evidence we mine reaches the score through the leader is hurting slice and nowhere else, damped by how beatable that leader is. Anger at a titan is real but it is an uphill fight, so it is worth less than the same anger at somebody catchable.

Demand pays for the same thing Winnability punishes

Most of Demand is rating growth across the free top 100, fitted by least squares over each app's daily series rather than compared first-to-last, which is why the pipeline wants a month of snapshots and not two. The rest is the leader's size: a big incumbent is proof the market exists. That is deliberately the opposite reading of the number Winnability uses, and the consequence shows up at the end of this post.

Feasibility prices a long build, it does not veto one

One value, taken from the build time the idea committed to. A quarter-long build still scores; it just scores lower than a weekend, by roughly half the factor. For a solo developer the binding constraint is calendar time, not ambition, and the spread between those two values is what that costs.

Monetization asks whether small apps earn here, not whether the category is big

Grossing depth proves the lane monetizes at all, model fit prices how the idea plans to charge, and indie proof counts the small apps already earning in that lane, which is the closest thing to evidence that a newcomer can. Then a run-cost multiplier takes a bite: an idea needing a hundred dollars a month of inference to exist is a worse business than one needing nothing, and the score should say so.

Momentum is acceleration, not headroom

The single most common misreading in the whole report. A grow potential of 0.5 means steady, above means speeding up: it answers “is this lane heating up right now”, never “how much room is left”. An app can be growing hard and decelerating at the same time, and the number will say so.

Then two multipliers on the finished composite

These act on the whole score rather than on one factor, which is why they sit apart. Both cards are live too: the storefront values and the giant ladder are read from the engine, so what you see is what the last run applied.

Which storefront× multiplier

The same app is not worth the same everywhere. A win in a small, cheaper market is a smaller win, but it is no easier to build for, and the leader is exactly as hard to beat.

×1
US
×0.71
UK
×0.25
Turkey
×0.65
Germany
×0.88
Japan
×0.94
South Korea
×0.61
China
prizeIt scales Demand and Monetization, never Winnability or Feasibility. TR’s market is a twentieth of the US’s, yet the engine used to score it identically: Winnability handed it +13 for its small, beatable leaders while Monetization came out level, because it measured “does this lane monetize for Turkey”.
A judgement, not a measurement. Apple publishes no revenue, so per-market spend cannot be derived from anything we hold. The UK is level with the US because a British user pays like an American one; its gap is size, and size barely binds a solo dev chasing a niche.

Giant penalty× multiplier

Going head-to-head with an entrenched leader is the classic indie mistake. Anchor size already sinks Winnability on its own, so this multiplier is a deliberate nudge on top, not a second full penalty.

×1.00
700k ratings
×0.94
700k+ ratings
×0.88
1.5M+ ratings
×0.80
4M+ ratings
Anything over 700k lifetime ratings is also flagged Giant leader on the report, its lane’s momentum shaved ×0.9, and its modeled user reach halved.

Market value scales the prize and never the fight. Until it landed, Turkey scored within a point of the US on Monetization, because the engine was answering “does this category monetize relative to its own market”, which is not the question a developer is asking. It is a judgement rather than a measurement, and it is labelled that way on the card: Apple publishes no revenue, so per-market spend cannot be derived from anything we hold.

The giant ladder is the smaller of the two, deliberately. Anchor size has already sunk Winnability by the time an app is that big, so this is a nudge on top rather than a second full penalty, plus a flag on the report, a shaved momentum and a halved reach estimate. Going head-to-head with an entrenched leader is the classic indie mistake, and it is the one thing a scoring engine can talk a hopeful person out of.

Calibration: from raw to the number on the page

Raw composites cluster in a narrow band, so the displayed score is a fixed, absolute map: a raw of 32 reads 40, a raw of 72 reads 100, straight-line in between. Tiers sit at 75 (prime), 62 (strong) and 52 (workable).

Absolute matters. It used to be rank-calibrated, which pinned every run's median to roughly 62 whatever the run actually contained: a weak month read exactly like a strong one. Now the same raw always shows the same score, across categories and across runs, so a run's median moves with its quality. The calibration line is plotted here, and you can drag any raw along it.

The pipeline that feeds it

Scoring is the fifth of six stages. Four are deterministic code; two are judgement calls, and we name which.

Method infographic: Apple's data, turned into scored app opportunities. 1 snapshot the charts, 546 feeds a day across US UK TR DE JP KR CN. 2 mine the reviews, 60,000+ live per storefront. 3 cluster by root cause, counted with verbatim quotes. 4 score for a solo dev, 5 sub-scores with giants priced in. 5 check then publish, all 25 categories or none.
No paid data provider anywhere in the chain, and one full run is free.
  1. Extract (deterministic). A month of daily chart snapshots for every category × storefront collapses into one cell of measured signals.
  2. Reviews (deterministic). Around 200 recent reviews each from the top 10 grossing apps and the top 10 decliners, pulled from that storefront so Turkish complaints about Turkish charts are not missed, then digested down to the evidence an analyst would actually cite.
  3. Review analysis (one agent). Complaints clustered by root cause, counted, with verbatim quotes and stated sample windows. A leader only survives as an opening past the gate: at least 25 recent reviews at two stars or below, and at least 25% of the sample. These cluster counts are the analyst's own tally and are not independently recounted; the measured figures beside them are copied from the data and are exact. We would rather say that than imply a check that does not run.
  4. Ideas (two agents). A strategist writes one idea per genuinely distinct opening, each naming who switches, why now, the complaint it exploits and the exact charted app it competes with. An integrity judge then cuts any idea whose anchor, numbers or effort claim does not hold up, even if that leaves a market thin.
  5. Score (this engine). Everything above, plus the planning metrics: build time, modelled agency quote, run cost, reach.
  6. Publish (deterministic). The scored Markdown is committed and mirrored into the database, and that mirror is what the report page reads. It ships all 25 categories or none of them.
Method card, step 5 of 5: check the integrity before anything ships. An idea that invents an incumbent or picks a fight with a surging giant is cut, and a part-built atlas never publishes. Anchor must exist, publish 25 or none, run cost recorded.
An honest two beats a padded three. Every stage, in order.

Where the numbers come from

All first-party, all from Apple's own public endpoints: daily chart snapshots across every category and seven storefronts, the lookup API for app metadata and rating slides, and the live customer-reviews feed for the charting leaders. No paid data provider, no bought-in download estimates. The signals are listed one by one, with their sources, on the page.

Two things Apple does not publish, and neither do we pretend to: revenue and search volume. Anything derived from those is labelled an estimate everywhere it appears.

Where the score is weakest

A methodology that only explains its formula teaches you to trust it further than it deserves. Three limits, all of them structural:

  • Reviews shape the idea; charts set the score. Mining reviews is the slowest, most expensive stage, and it is what gives an idea its wedge. But it reaches the score through exactly one term, capped at 12.2 of 100 points, and near 4.3 against a giant. Read the score as “how winnable”, never as “how strong is the evidence”.
  • Some ideas have no measured leader. When the strategist names no single charted app to take the lane from, Winnability falls back to a flat 0.55 beatable prior. That is a default, not a finding. Trust an anchored score far more, and check which app it names before you read the number.
  • Demand and Winnability pull against each other. Demand pays for a big anchor, Winnability for a small one, so no idea can max both. The arithmetic ceiling lands in the low 90s (the methodology page prints it exactly, derived from the live constants), at a corner that cannot exist. A mid-70s score is not mediocre; it is near the practical top of the scale. Judge an idea against the month's field, never against 100.

Those three are measured against the current run on the methodology page, so the percentages there are live rather than illustrative.

Go and break it

The most useful thing on the methodology page is the sandbox. Take a real idea out of the current run, watch its score rebuilt from its five sub-scores step for step, then switch to the sliders and move the engine's actual inputs: leader size, negative-review share, churn, build time, storefront. Every dial is a real term in the formula and none is decorative.

Then read a complete run for free and check the scores against the ideas they belong to. That is the point of publishing the engine: a score you cannot audit is just a number somebody chose.