klaibel

How openings are scored

Every opening is a niche in one market, scored from App Store observations with fixed formulas. The language model writes the summary and groups complaints; it never sets a number. This page describes score version 1.

Sources

Apple’s public App Store endpoints: the top free, paid and grossing charts per category, app search, app lookups (availability, ratings, stars, price, update dates, languages, description) and recent customer reviews. Every response is archived before it is read, so a past week can be checked again.

Reference markets: United States and United Kingdom. Target markets: Finland, Sweden, Norway, Denmark, Germany, Austria, Switzerland, Netherlands, Belgium, France, Spain, Italy, Portugal, Poland, Ireland, Estonia. The reference markets show how big a niche is where it is mature; the target markets are where openings are looked for.

Cadence

Niches and top apps

A language model reads each app’s description and places it in a niche (the job the app does) and says who it is for. An opening needs at least 3 apps in its niche, and at least one with ratings in the US or UK. The top apps are the up to ten niche apps with the most US and UK ratings.

The six components

Each is a whole number from 0 to 100, rounded before it is combined, so the page shows exactly what produced the score.

Demand

60% × reference volume + 25% × local volume + 15% × grossing chart place

Reference volume is 100 × log₁₀(1 + US and UK ratings of the top apps) ÷ 6, capped at 100, so a million ratings is full marks. Local volume is the same with this market’s ratings, divided by 5, so 100,000 is full marks. The grossing part counts in full when any top app held a top-100 grossing chart place in this market, the US or the UK in the last 14 days.

Room locally

100 − 12 × (apps in this market with 50 or more ratings here)

Every app in the niche counts here, not only the top ten. Nine established apps or more and there is no room left in this measure.

Language gap

100 × (US and UK ratings of top apps without the market’s language) ÷ (US and UK ratings of all top apps)

An app speaks a market when it ships at least one of its languages: Finnish or Swedish in Finland, German, French or Italian in Switzerland, Dutch or French in Belgium, the national language elsewhere.

Incumbent weakness

average of: stars signal, low-star review signal, update signal

Stars signal: 100 × (4.6 − the top apps’ average stars, weighted by ratings) ÷ 1.1, held between 0 and 100, so 4.6 stars or more scores 0 and 3.5 or fewer scores 100. Low-star signal: 200 × the share of recent reviews at 1 or 2 stars, capped at 100. Update signal: 100 × the share of top apps with no update in over 365 days. Stars and reviews come from this market when it has them, otherwise the US; a signal we cannot measure is left out of the average.

AI gap

100 × (top apps not built around AI) ÷ (top apps)

Whether an app is built around AI, has an AI feature or has none is read from its App Store description by a language model.

Momentum

1000 × (ratings now − ratings four weeks ago) ÷ ratings four weeks ago, held between 0 and 100

Summed over the top apps, from weekly snapshots in this market, otherwise the US. 10% growth in four weeks is full marks. It needs at least nine weekly points for every top app with a history; until then it is shown as not measured and counts as 50.

The score

gap = 25% × room locally + 25% × language gap + 20% × incumbent weakness + 20% × AI gap + 10% × momentum

score = demand^0.4 × gap^0.6, rounded

Multiplying rather than adding means a niche nobody wants, or one that is already well served, scores near zero whatever else is true. If either demand or gap is 0, the score is 0.

Types

An opening carries every type it qualifies for, strongest signal first.

Not in the local language
language gap of 60 or more
Incumbents without AI
AI gap of 70 or more, and demand of 50 or more
Users unhappy
incumbent weakness of 55 or more
Incumbents not updated
40% or more of the top apps without an update in over a year
Demand rising
momentum of 60 or more

Write-ups

The summary on each opening is written by a language model from the scored facts. A write-up that contains a number not in those facts, or quotes a review we do not hold, is discarded and replaced by a plain template.

What we don’t know

See this week’s openings.