City Stories Index · methodology v1.2

How the index is measured

Every number on the index traces to a query we can re-run. This page states what each dimension measures, the floors we apply before publishing, and the limitations we know about.

What the index measures

The City Stories Index measures how rewarding a city is to explore on foot: how much story it holds, how densely it's packed, what it's about, and how people actually experience it. It does not claim to rank which city is "best". It measures the city as a walkable story, which is the one thing Questo's data can support and nobody else measures.

Every dimension belongs to one of four pillars, each answering one question:

  • Depth: how much story does this city hold? (places with a story, historical figures, hours of stories)
  • Density: how rewarding is each step? (a story every N metres)
  • Character: what kind of city is it? (themes, eras, story span, the year its typical story happens)
  • Pulse: how do people actually experience it? (Instagrammability, group outings, international visitors, seasonality)

The source

Questo runs self-guided story routes (quests) in 1,000+ cities. Each route is a walked path through real places, and many stops carry a researched story about that place. Players leave reviews, dated and often with photos. The index is computed from that corpus (walked routes, stop stories, plays, reviews and photos), not from scraped third-party content. Populations used for size brackets come from each country's most recent national census (2021–2022).

What each dimension measures

  • How often you pass a story: places with a story per kilometre of route, computed per route and taken as the city's median. Displayed as "a story every N metres".
  • Places with a story: distinct places where a route tells a qualifying story. One of two totals in the index (with historical figures); everything else is a rate, so big cities can't win on size alone.
  • Historical figures: distinct named people appearing in at least two of the city's stories.
  • Theme concentrations: the share of a city's stories whose text touches each of nine themes (fortifications, royalty, dark history, faith, guilds & trade, legends, arts, industry & the modern era, parks & leisure), matched in English and each edition's own language, with per-story language detection. A stop can touch several themes. Themes under 10% are never awarded. Since method v1.2, English matching reads context rather than bare words: a word that names a thing (a cathedral, a fortress, a guild) counts wherever it appears, while a topic word (king, wall, market, park) counts only outside names of people, streets and businesses — so a story about the walls of York counts toward fortifications and a story set on Wall Street does not, and Martin Luther King's surname no longer reads as royalty. The rule can only reject a match, never invent one.
  • Era profile: each dated story is assigned its earliest mentioned year; shares are reported per period. Mentions of antiquity are counted separately and never set a city's "oldest dated story".
  • Instagrammability: how often players photograph a city. The underlying measure is player photos attached to reviews per 100 plays; reader pages show only the indexed score (leader = 100), never the raw rate. Only cities with 1,000+ plays compete on this dimension.
  • Hours of story: the city's total researched story text, converted to time at a 200-words-per-minute reading pace.
  • Seasonality: the median share of reviews per calendar month across complete recent years (2021 onwards, 60+ reviews each, at least three qualifying years). Median, not mean: a one-off campaign month must not become a city's "season", and the current partial year is excluded entirely.
  • Group outings: of every 100 plays, how many bring a group. A play counts as a group outing when the buyer invited at least one other device into the session (trailing 12 months); since a single device typically carries two players, an invited session means a party of three or more. Only cities with 100+ plays in the window compete on this dimension.
  • International visitors: the share of written player reviews in a language other than the country's own, shown only for cities with 50+ classifiable reviews. A proxy for visitor origin, not a measurement of nationality: English hides several nationalities, and locals who review in English count as international. From mid-2026 the app also records each player's device locale (for example fr_CA or en_RO), a much closer proxy for home country; once a full year has accrued, the next edition will measure visitor mix from that instead.
  • The figure is always measured and always published, but it is not scored in English-speaking editions (the United Kingdom, the United States, Australia, Canada). English is also the language most foreign visitors write in, so there the measure sees only the visitors who write in something else: it reads 0–6% for American cities against 89% for Porto. Those are both real counts of foreign-language reviewers and they are not the same quantity, so putting them in one scored column would be misleading. In officially multilingual countries every domestic language counts as domestic, so reviews in Belgium's Dutch, French and German read as local. Where a country is both multilingual and English-speaking, Canada being the example, no correction rescues the comparison.

How the score works

Every quantitative dimension carries a 0-100 score measured against fixed goalposts: a floor and a ceiling that are the same for every city and stay the same between editions. A city's score is therefore a property of the city, not of the table it appears in. It reads the same on its own page, on its country's page and in the worldwide ranking, and it can be compared with next year's edition. Only the rank changes with the company a city keeps.

This replaced an earlier design that scored each city as a percentage of whichever peer led the table. That made a score depend on where it was read: the same city scored 658 against its own country and 274 against the world, and adding a country edition silently rescored every city already published. Comparable indexes, from the UN's Human Development Index to the liveability rankings, use fixed goalposts for exactly this reason and treat regional tables as filters.

The goalposts, held constant for the 2026 edition: places with a story 10–600, historical figures 1–200, hours of stories 0.1–8, metres between stories 500–100 (lower is better), years covered 0–1,000, Instagrammability 0–12, group outings 0–35, international visitors 0–100. The first three are measured on a logarithmic scale, because story counts are heavily skewed (a median city holds 31 places with a story and the largest holds 594, so a linear scale would score the median city 5 and tell a reader nothing). A city beyond a ceiling scores 100 until the ceiling is raised in a new method version.

A city's overall score is the average of its dimension scores. A dimension the city genuinely has nothing on, such as no recurring historical figures, counts as zero: that is a real answer about its stories. A dimension the city was never allowed to compete on leaves the average instead, because it measures missing opportunity rather than missing depth. That applies to Instagrammability below 1,000 plays, group outings below 100 plays, and international visitors in an English-speaking edition, where the measure does not work at all. Because the denominator can differ, every scorecard states how many of the eight measures the city is scored on, and the measures that leave its average appear greyed in its table with the reason.

Ranks are always within the city's population bracket, and each table says whether it ranks a country or the whole index. Scores are recomputed from the frozen dataset at publish time, never stored.

Medals, brackets and floors

Medals are separate from the score, and answer a different question: not how deep a city's stories are, but which city leads its own country on a given measure. A theme medal additionally requires at least six places with a story behind the share that wins it. Without that floor a city at the publication minimum could take a theme on five stops, and one did: Honolulu was America's most-decorated city on a ten-stop corpus, where "50% royalty" meant five places and "20% faith" meant two. The floor counts the evidence behind the medal rather than the city's total size, so a small city with a genuinely concentrated character still wins. Each dimension has a winner per size bracket (100,000+ residents vs under), and differences within 5% are shared as ties. A city is published with at least 2 active routes, at least 10 places with a story, at least 50 player reviews and an average rating of 4.2 or higher. It is ranked and scoredonly once its corpus can carry a score: 30 places with a story for a big city, 20 for a small town. That floor differs by bracket because the constraint is physical rather than editorial, since a town of 15,000 cannot hold 30 storied places, and 22 places in Siena is a proportionally richer corpus than 30 in Rome. Below the floor a city keeps its page and every measured fact on it, with no score and no rank: with that little to go on, saying so is more honest than publishing a low number. Rating is a floor, not a dimension, because nearly all cities rate in a narrow band just below 5.0 and ranking on it would be noise. The floor sits below that band on purpose: it exists to keep out places whose product genuinely underperforms, not to encode one market's rating culture.

Cities whose story coverage is unrepresentative are shown without a rank and marked as such on their page.

Sample sizes: Romania, 2026 edition (frozen 2026-08-21)

Across Romania: 38,293 plays, 17,927 reviews and 777 places with a story measured. Per-city usage is published in bands; exact per-city counts are commercial data we keep private; the bands are what the floors below are checked against.

CityPlaysReviewsPlaces with a story
Bucharest10,000+1,000+410
Brasov5,000+1,000+94
Sibiu5,000+1,000+92
Iasi1,000+500+11
Cluj-Napoca1,000+1,000+56
Sighisoara1,000+500+23
Alba Iulia100+100+14
Bran100+50+20
Constanta100+100+29
Ploieștiunder 10050+28

Sample sizes: France, 2026 edition (frozen 2026-08-21)

Across France: 25,530 plays, 8,613 reviews and 394 places with a story measured. Per-city usage is published in bands; exact per-city counts are commercial data we keep private; the bands are what the floors below are checked against.

CityPlaysReviewsPlaces with a story
Paris10,000+1,000+167
Lyon1,000+1,000+44
Carcassonne1,000+500+10
Toulouse1,000+500+22
Montpellier1,000+100+40
Bordeaux1,000+100+23
Nice500+100+33
Marseille500+100+10
Dijon500+100+20
Tours100+50+25

Sample sizes: Germany, 2026 edition (frozen 2026-08-21)

Across Germany: 16,896 plays, 5,890 reviews and 366 places with a story measured. Per-city usage is published in bands; exact per-city counts are commercial data we keep private; the bands are what the floors below are checked against.

CityPlaysReviewsPlaces with a story
Berlin5,000+1,000+119
Munich1,000+1,000+75
Frankfurt1,000+1,000+52
Cologne1,000+500+22
Hamburg500+100+25
Heidelberg100+100+24
Rheine100+100+26
Dusseldorf100+50+23

Sample sizes: Hungary, 2026 edition (frozen 2026-08-21)

Across Hungary: 3,542 plays, 1,202 reviews and 94 places with a story measured. Per-city usage is published in bands; exact per-city counts are commercial data we keep private; the bands are what the floors below are checked against.

CityPlaysReviewsPlaces with a story
Budapest1,000+1,000+94

Sample sizes: Italy, 2026 edition (frozen 2026-08-21)

Across Italy: 30,362 plays, 10,609 reviews and 649 places with a story measured. Per-city usage is published in bands; exact per-city counts are commercial data we keep private; the bands are what the floors below are checked against.

CityPlaysReviewsPlaces with a story
Rome10,000+1,000+150
Florence5,000+1,000+71
Bologna1,000+1,000+47
Milan1,000+1,000+105
Siena1,000+500+22
Venice1,000+500+32
Turin1,000+100+23
Pisa1,000+100+36
Genoa500+100+36
Palermo100+50+27
Cagliari100+50+15
Naples100+50+60
Catania100+50+25

Sample sizes: Netherlands, 2026 edition (frozen 2026-08-21)

Across Netherlands: 16,195 plays, 5,870 reviews and 247 places with a story measured. Per-city usage is published in bands; exact per-city counts are commercial data we keep private; the bands are what the floors below are checked against.

CityPlaysReviewsPlaces with a story
Amsterdam5,000+1,000+120
Utrecht1,000+1,000+40
Rotterdam1,000+1,000+19
Haarlem500+100+34
Breda100+100+34

Sample sizes: United Kingdom, 2026 edition (frozen 2026-08-21)

Across United Kingdom: 33,743 plays, 11,181 reviews and 1109 places with a story measured. Per-city usage is published in bands; exact per-city counts are commercial data we keep private; the bands are what the floors below are checked against.

CityPlaysReviewsPlaces with a story
London10,000+1,000+594
Cambridge1,000+100+33
Manchester1,000+1,000+65
Glasgow1,000+1,000+52
Edinburgh1,000+1,000+55
Birmingham1,000+500+20
Bristol1,000+500+42
Liverpool1,000+500+34
Norwich1,000+100+39
Nottingham500+100+27
Colchester500+100+54
Brighton500+100+38
Oxford500+100+26
Belfast500+100+19
Ipswich100+50+11

Sample sizes: Australia, 2026 edition (frozen 2026-08-21)

Across Australia: 10,065 plays, 3,386 reviews and 200 places with a story measured. Per-city usage is published in bands; exact per-city counts are commercial data we keep private; the bands are what the floors below are checked against.

CityPlaysReviewsPlaces with a story
Melbourne1,000+1,000+47
Sydney1,000+500+97
Brisbane1,000+500+10
Perth1,000+100+33
Adelaide100+100+13

Sample sizes: Canada, 2026 edition (frozen 2026-08-21)

Across Canada: 7,670 plays, 3,020 reviews and 198 places with a story measured. Per-city usage is published in bands; exact per-city counts are commercial data we keep private; the bands are what the floors below are checked against.

CityPlaysReviewsPlaces with a story
Ottawa1,000+500+32
Toronto1,000+500+25
Montreal1,000+100+41
Quebec City500+100+21
Vancouver500+100+37
Mississauga100+100+12
Winnipeg100+100+11
Saskatoonunder 10050+19

Sample sizes: Belgium, 2026 edition (frozen 2026-08-21)

Across Belgium: 3,752 plays, 1,297 reviews and 99 places with a story measured. Per-city usage is published in bands; exact per-city counts are commercial data we keep private; the bands are what the floors below are checked against.

CityPlaysReviewsPlaces with a story
Brussels1,000+1,000+85
Antwerp100+100+14

Sample sizes: Portugal, 2026 edition (frozen 2026-08-21)

Across Portugal: 2,693 plays, 1,035 reviews and 227 places with a story measured. Per-city usage is published in bands; exact per-city counts are commercial data we keep private; the bands are what the floors below are checked against.

CityPlaysReviewsPlaces with a story
Lisbon1,000+500+100
Porto1,000+500+127

Sample sizes: United States, 2026 edition (frozen 2026-08-21)

Across United States: 33,387 plays, 14,468 reviews and 1528 places with a story measured. Per-city usage is published in bands; exact per-city counts are commercial data we keep private; the bands are what the floors below are checked against.

CityPlaysReviewsPlaces with a story
New York City1,000+1,000+369
Chicago1,000+500+94
Philadelphia1,000+500+58
Austin1,000+500+34
Boston1,000+1,000+46
San Francisco1,000+500+60
Savannah1,000+500+19
San Diego1,000+500+50
Sacramento1,000+500+10
New Orleans1,000+500+83
Detroit1,000+500+10
Washington D.C.1,000+100+63
Pittsburgh1,000+500+24
Seattle1,000+100+46
Houston1,000+100+31
Los Angeles1,000+100+52
Charleston500+100+15
San Antonio500+100+22
Atlanta500+100+45
Las Vegas500+100+21
Nashville500+100+22
Mesa500+100+15
Portland, OR500+100+36
Orlando100+100+45
Phoenix100+500+21
Honolulu100+100+10
Winston-Salem100+100+12
Tacoma100+100+10
Waco100+50+17
Birmingham, Alabama100+50+15
Williamsburg100+100+22
Alexandriaunder 10050+17
Knoxvilleunder 100100+10
Annapolisunder 100100+11
Jersey Cityunder 10050+54
Scottsdaleunder 10050+25
Elginunder 100100+12
Newportunder 10050+11
Springfield, Illinoisunder 10050+11

Sample sizes: Spain, 2026 edition (frozen 2026-08-21)

Across Spain: 13,148 plays, 6,001 reviews and 588 places with a story measured. Per-city usage is published in bands; exact per-city counts are commercial data we keep private; the bands are what the floors below are checked against.

CityPlaysReviewsPlaces with a story
Barcelona1,000+1,000+130
Madrid1,000+1,000+100
Toledo500+100+21
Seville500+100+31
Bilbao500+100+21
Valencia500+100+34
San Sebastián100+100+27
Malaga100+500+26
Palma100+100+40
Alicante100+50+14
Cádiz100+100+10
Marbella100+100+20
Fuengirola100+100+10
Algeciras100+100+10
Granada100+50+15
Benalmádena100+100+21
Benidorm100+50+14
Zaragoza100+50+24
Córdoba100+50+20

Sample sizes: Mexico, 2026 edition (frozen 2026-08-21)

Across Mexico: 506 plays, 275 reviews and 62 places with a story measured. Per-city usage is published in bands; exact per-city counts are commercial data we keep private; the bands are what the floors below are checked against.

CityPlaysReviewsPlaces with a story
Mexico City500+100+62

Sample sizes: Switzerland, 2026 edition (frozen 2026-08-21)

Across Switzerland: 4,002 plays, 1,549 reviews and 88 places with a story measured. Per-city usage is published in bands; exact per-city counts are commercial data we keep private; the bands are what the floors below are checked against.

CityPlaysReviewsPlaces with a story
Zürich1,000+500+53
Geneva1,000+500+35

Sample sizes: Austria, 2026 edition (frozen 2026-08-21)

Across Austria: 8,148 plays, 3,076 reviews and 123 places with a story measured. Per-city usage is published in bands; exact per-city counts are commercial data we keep private; the bands are what the floors below are checked against.

CityPlaysReviewsPlaces with a story
Vienna5,000+1,000+80
Salzburg1,000+100+20
Hallstatt100+50+23

Sample sizes: Poland, 2026 edition (frozen 2026-08-21)

Across Poland: 2,476 plays, 1,386 reviews and 97 places with a story measured. Per-city usage is published in bands; exact per-city counts are commercial data we keep private; the bands are what the floors below are checked against.

CityPlaysReviewsPlaces with a story
Gdansk1,000+500+47
Kraków500+500+39
Warsaw100+100+11

Sample sizes: Sweden, 2026 edition (frozen 2026-08-21)

Across Sweden: 3,370 plays, 1,369 reviews and 90 places with a story measured. Per-city usage is published in bands; exact per-city counts are commercial data we keep private; the bands are what the floors below are checked against.

CityPlaysReviewsPlaces with a story
Stockholm1,000+1,000+90

Sample sizes: Denmark, 2026 edition (frozen 2026-08-21)

Across Denmark: 3,675 plays, 1,264 reviews and 86 places with a story measured. Per-city usage is published in bands; exact per-city counts are commercial data we keep private; the bands are what the floors below are checked against.

CityPlaysReviewsPlaces with a story
Copenhagen1,000+1,000+86

Known limitations

  • Stories are written by Questo's creators, so themes measure what our creators chose to write about. That correlates with a city's character but is not identical to it.
  • Where route coverage is thin, several measures partly reflect our own content supply rather than the city. The floors above exist for exactly this reason.
  • Review language is a proxy for visitor origin; English hides many nationalities.
  • Player photo rates mix how photogenic a place is with how much a specific quest prompts photography.

Citing this index

Every figure the index publishes is on the city pages themselves, and the index is versioned annually, so scores within an edition do not change and are safe to quote. Cite the edition and the city page you took the number from, and link to questoapp.com/city-index. Journalists who need a figure that is not on a page, or a cut of the data for a story, can ask us at explore@questoapp.com.