Data report · July 2026
The World's Cosiest Hotel Towns: a guest-review-language analysis of 17,700 hotels
Small, old towns beat the big cities. Alberobello (6.75) and San Gimignano (6.72) both outscore Rome (6.05), Paris (6.00) and Vienna (6.10), and Romania (6.67) and Morocco (6.63) are the two cosiest countries in the world, ahead of every country in Western Europe. Barcelona sits 5th from the bottom of all 164 qualifying cities, with zero hotels scoring 7.0 or higher. The means span 5.68–6.75across those 164 cities, a real but narrow spread, which is why the tables below group cities into tiers rather than presenting a false-precision rank order.
What makes a hotel cosy? The answer is a person.
Across the 10 cosiest towns in this dataset, 74% of hotels' review evidence mentions a host, owner, family member or named person, against 26% in eight large, heavily-visited cities (Barcelona, Paris, Rome, London, Amsterdam, Vienna, Prague, Florence). That's 180 qualifying hotels in the towns against 509 in the cities, so the gap isn't a small-sample fluke; it's the largest, most consistent signal in the whole dataset.
The same pattern shows up in what these hotels are called: 31% of town hotels carry a guesthouse/B&B-type name (casa, guesthouse, inn, maison, pensione…) against 10% in the big cities, roughly three times the rate. The town cohort's supply is structurally dominated by small, personally run properties where the owner is the service, rather than staff-mediated luxury.
One number runs the other way, and it's worth stating plainly rather than hiding: the word "boutique" appears far more often in the big cities' review evidence than in the towns' (53 mentions vs 3). That's not a mark of failure: the big cities' boutique-tagged hotels average 6.30 against 6.01 for the rest of the city cohort. It's a different route to the same warmth: big-city hotels earn a cosy score by shrinking scale and naming individual staff inside a big-city shell, towns earn it by being small and family-run to start with.
Review-derived evidence from the analysis, condensed by the scoring model from guest-review text, not verbatim guest quotes:
- Casa Adam, Sighișoara (7.1): homemade cakes and coffee served by attentive host Alina.
- Casa Steluța, Sighișoara (7.0): warm, welcoming hosts described as exceptional and like visiting best friends.
- Trullicolarossa B&B, Alberobello (7.2): daily homemade breakfasts prepared by Donato's mother.
Every qualifying city, by tier
All 164 cities with at least 10 qualifying hotels (score ≥5.0), grouped into tiers by mean cosy score. The means span 5.68–6.75 across these 164 cities, and many small towns qualify with n's of only 10–15 hotels, so treat adjacent ranks as ties within a tier rather than a strict ladder. Individual rank numbers are shown for reference; the tier is the more honest read. Where we have a full city guide, the city name links to it.
Download the full city table as CSVThe top tier against four famous big cities, for scale; axis honestly starts at 5.0, not zero:
| # | City | Country | n | Mean | % ≥7.0 |
|---|---|---|---|---|---|
| Top tier (mean ≥ 6.5): 19 cities | |||||
| 1 | Alberobello | Italy | 11 | 6.75 | 27.3% |
| 2 | San Gimignano | Italy | 14 | 6.72 | 28.6% |
| 3 | Sighișoara | Romania | 15 | 6.66 | 20.0% |
| 4 | Matera | Italy | 21 | 6.64 | 14.3% |
| 5 | Fez | Morocco | 18 | 6.64 | 33.3% |
| 6 | Avignon | France | 14 | 6.64 | 21.4% |
| 7 | Marrakech | Morocco | 48 | 6.61 | 18.8% |
| 8 | Pitlochry | United Kingdom | 18 | 6.59 | 11.1% |
| 9 | Como | Italy | 15 | 6.57 | 20.0% |
| 10 | Antwerp | Belgium | 23 | 6.55 | 13.0% |
| 11 | Siena | Italy | 42 | 6.55 | 26.2% |
| 12 | Kinsale | Ireland | 17 | 6.54 | 17.6% |
| 13 | Keswick | United Kingdom | 17 | 6.54 | 17.6% |
| 14 | Sorrento | Italy | 27 | 6.53 | 11.1% |
| 15 | Cork | Ireland | 17 | 6.52 | 5.9% |
| 16 | Stowe | United States | 10 | 6.52 | 30.0% |
| 17 | Hamburg | Germany | 13 | 6.51 | 15.4% |
| 18 | Lucca | Italy | 25 | 6.50 | 16.0% |
| 19 | Thira | Greece | 10 | 6.50 | 10.0% |
| Upper (mean 6.2–6.49): 79 cities | |||||
| 20 | Bali | Indonesia | 78 | 6.48 | 15.4% |
| 21 | Kyoto | Japan | 17 | 6.48 | 5.9% |
| 22 | Inverness | United Kingdom | 24 | 6.47 | 4.2% |
| 23 | Ravello | Italy | 13 | 6.47 | 7.7% |
| 24 | Bruges | Belgium | 87 | 6.47 | 17.2% |
| 25 | Cape Town | South Africa | 36 | 6.46 | 8.3% |
| 26 | Ronda | Spain | 24 | 6.46 | 12.5% |
| 27 | Sintra | Portugal | 20 | 6.46 | 5.0% |
| 28 | Ghent | Belgium | 25 | 6.45 | 12.0% |
| 29 | Galway | Ireland | 30 | 6.45 | 13.3% |
| 30 | Perugia | Italy | 27 | 6.45 | 18.5% |
| 31 | Évora | Portugal | 13 | 6.44 | 7.7% |
| 32 | Hoi An | Vietnam | 34 | 6.44 | 0.0% |
| 33 | Cologne | Germany | 11 | 6.44 | 9.1% |
| 34 | Bacharach | Germany | 18 | 6.44 | 5.6% |
| 35 | Carcassonne | France | 11 | 6.44 | 9.1% |
| 36 | Füssen | Germany | 14 | 6.43 | 0.0% |
| 37 | York | United Kingdom | 43 | 6.43 | 7.0% |
| 38 | Montepulciano | Italy | 10 | 6.43 | 10.0% |
| 39 | Imerovigli | Greece | 14 | 6.43 | 0.0% |
| 40 | Portree | United Kingdom | 15 | 6.43 | 0.0% |
| 41 | Positano | Italy | 32 | 6.42 | 6.2% |
| 42 | Taormina | Italy | 41 | 6.42 | 9.8% |
| 43 | Utrecht | Netherlands | 11 | 6.42 | 0.0% |
| 44 | Santorini | Greece | 44 | 6.41 | 6.8% |
| 45 | Tenby | United Kingdom | 14 | 6.40 | 0.0% |
| 46 | Palermo | Italy | 28 | 6.40 | 3.6% |
| 47 | Il-Belt Valletta | Malta | 15 | 6.39 | 0.0% |
| 48 | Whitby | United Kingdom | 14 | 6.39 | 0.0% |
| 49 | Takayama | Japan | 15 | 6.38 | 13.3% |
| 50 | Rovinj | Croatia | 10 | 6.37 | 0.0% |
| 51 | Stratford-upon-Avon | United Kingdom | 24 | 6.37 | 0.0% |
| 52 | Chicago | United States | 11 | 6.36 | 9.1% |
| 53 | Bath | United Kingdom | 38 | 6.36 | 7.9% |
| 54 | Genoa | Italy | 23 | 6.36 | 0.0% |
| 55 | Cardiff | United Kingdom | 13 | 6.35 | 0.0% |
| 56 | Nafplio | Greece | 15 | 6.35 | 0.0% |
| 57 | Charleston | United States | 29 | 6.35 | 3.4% |
| 58 | Cadaqués | Spain | 16 | 6.34 | 0.0% |
| 59 | New York | United States | 23 | 6.33 | 13.0% |
| 60 | Vancouver | Canada | 18 | 6.33 | 5.6% |
| 61 | Granada | Spain | 31 | 6.33 | 3.2% |
| 62 | Banff | Canada | 27 | 6.33 | 7.4% |
| 63 | Pokhara | Nepal | 13 | 6.33 | 7.7% |
| 64 | Aix-en-Provence | France | 15 | 6.33 | 20.0% |
| 65 | Assisi | Italy | 15 | 6.32 | 0.0% |
| 66 | Mykonos | Greece | 18 | 6.32 | 0.0% |
| 67 | Rothenburg ob der Tauber | Germany | 19 | 6.31 | 0.0% |
| 68 | Verona | Italy | 22 | 6.31 | 0.0% |
| 69 | Venice | Italy | 137 | 6.30 | 8.0% |
| 70 | Dresden | Germany | 20 | 6.30 | 0.0% |
| 71 | Honfleur | France | 15 | 6.29 | 0.0% |
| 72 | Canterbury | United Kingdom | 20 | 6.29 | 5.0% |
| 73 | St Andrews | United Kingdom | 12 | 6.29 | 8.3% |
| 74 | Ubud | Indonesia | 31 | 6.29 | 3.2% |
| 75 | New Orleans | United States | 24 | 6.28 | 12.5% |
| 76 | Oban | United Kingdom | 17 | 6.28 | 0.0% |
| 77 | Bangkok | Thailand | 12 | 6.28 | 0.0% |
| 78 | Cordoba | Spain | 18 | 6.28 | 5.6% |
| 79 | Edinburgh | United Kingdom | 44 | 6.28 | 4.5% |
| 80 | Bled | Slovenia | 24 | 6.27 | 4.2% |
| 81 | Garmisch-Partenkirchen | Germany | 12 | 6.26 | 0.0% |
| 82 | Savannah | United States | 14 | 6.26 | 7.1% |
| 83 | Óbidos | Portugal | 11 | 6.26 | 0.0% |
| 84 | Austin | United States | 10 | 6.26 | 0.0% |
| 85 | Asheville | United States | 13 | 6.26 | 7.7% |
| 86 | Sydney | Australia | 16 | 6.26 | 6.2% |
| 87 | Galle | Sri Lanka | 14 | 6.25 | 0.0% |
| 88 | Stockholm | Sweden | 29 | 6.24 | 3.4% |
| 89 | Montreal | Canada | 13 | 6.24 | 0.0% |
| 90 | Cusco | Peru | 27 | 6.23 | 3.7% |
| 91 | Freiburg im Breisgau | Germany | 13 | 6.23 | 0.0% |
| 92 | St. Moritz | Switzerland | 10 | 6.22 | 10.0% |
| 93 | Bellagio | Italy | 13 | 6.22 | 0.0% |
| 94 | Queenstown | New Zealand | 31 | 6.22 | 9.7% |
| 95 | Kilkenny | Ireland | 13 | 6.22 | 0.0% |
| 96 | Crete | Greece | 22 | 6.21 | 4.5% |
| 97 | Seattle | United States | 18 | 6.20 | 5.6% |
| 98 | Budapest | Hungary | 16 | 6.20 | 0.0% |
| Mid (mean 5.9–6.19): 58 cities | |||||
| 99 | Naples | Italy | 52 | 6.19 | 1.9% |
| 100 | Salzburg | Austria | 49 | 6.18 | 6.1% |
| 101 | Milan | Italy | 13 | 6.18 | 0.0% |
| 102 | Porto | Portugal | 78 | 6.17 | 2.6% |
| 103 | Český Krumlov | Czechia | 12 | 6.17 | 0.0% |
| 104 | Munich | Germany | 31 | 6.17 | 0.0% |
| 105 | Turin | Italy | 18 | 6.16 | 5.6% |
| 106 | Krakow | Poland | 37 | 6.16 | 8.1% |
| 107 | Zurich | Switzerland | 38 | 6.16 | 7.9% |
| 108 | Strasbourg | France | 28 | 6.16 | 0.0% |
| 109 | Interlaken | Switzerland | 18 | 6.16 | 0.0% |
| 110 | Zagreb | Croatia | 14 | 6.15 | 0.0% |
| 111 | Innsbruck | Austria | 42 | 6.15 | 2.4% |
| 112 | Cambridge | United Kingdom | 27 | 6.15 | 0.0% |
| 113 | Berlin | Germany | 21 | 6.15 | 0.0% |
| 114 | Madeira | Portugal | 14 | 6.14 | 0.0% |
| 115 | Lopud | Croatia | 11 | 6.14 | 0.0% |
| 116 | Dublin | Ireland | 60 | 6.14 | 3.3% |
| 117 | Bordeaux | France | 19 | 6.14 | 0.0% |
| 118 | Florence | Italy | 84 | 6.13 | 2.4% |
| 119 | Udaipur | India | 12 | 6.13 | 8.3% |
| 120 | Chamonix | France | 15 | 6.12 | 0.0% |
| 121 | Prague | Czechia | 108 | 6.12 | 2.8% |
| 122 | Portland | United States | 19 | 6.12 | 5.3% |
| 123 | Bologna | Italy | 29 | 6.11 | 0.0% |
| 124 | Tofino | Canada | 16 | 6.11 | 0.0% |
| 125 | Vienna | Austria | 53 | 6.10 | 0.0% |
| 126 | Annecy | France | 16 | 6.10 | 0.0% |
| 127 | London | United Kingdom | 10 | 6.08 | 0.0% |
| 128 | Washington | United States | 17 | 6.08 | 5.9% |
| 129 | Bamberg | Germany | 15 | 6.07 | 0.0% |
| 130 | Copenhagen | Denmark | 41 | 6.06 | 0.0% |
| 131 | Dubrovnik | Croatia | 25 | 6.06 | 0.0% |
| 132 | Colmar | France | 20 | 6.06 | 5.0% |
| 133 | Rome | Italy | 90 | 6.05 | 2.2% |
| 134 | Amsterdam | Netherlands | 46 | 6.05 | 4.3% |
| 135 | Tallinn | Estonia | 26 | 6.05 | 3.8% |
| 136 | Ljubljana | Slovenia | 14 | 6.05 | 0.0% |
| 137 | San Francisco | United States | 28 | 6.03 | 3.6% |
| 138 | Luzern | Switzerland | 22 | 6.03 | 4.5% |
| 139 | Brighton | United Kingdom | 29 | 6.03 | 3.4% |
| 140 | Heidelberg | Germany | 20 | 6.03 | 0.0% |
| 141 | Chiang Mai | Thailand | 22 | 6.03 | 4.5% |
| 142 | Lisbon | Portugal | 41 | 6.02 | 2.4% |
| 143 | Girona | Spain | 10 | 6.01 | 20.0% |
| 144 | Split | Croatia | 22 | 6.01 | 0.0% |
| 145 | Istanbul | Turkey | 49 | 6.01 | 2.0% |
| 146 | Nice | France | 33 | 6.01 | 0.0% |
| 147 | Madrid | Spain | 13 | 6.01 | 7.7% |
| 148 | Paris | France | 80 | 6.00 | 0.0% |
| 149 | Lyon | France | 28 | 6.00 | 3.6% |
| 150 | Helsinki | Finland | 21 | 5.99 | 0.0% |
| 151 | Oxford | United Kingdom | 29 | 5.99 | 0.0% |
| 152 | Seville | Spain | 28 | 5.99 | 3.6% |
| 153 | Zermatt | Switzerland | 12 | 5.97 | 0.0% |
| 154 | Toronto | Canada | 10 | 5.95 | 0.0% |
| 155 | Boston | United States | 17 | 5.94 | 0.0% |
| 156 | San Sebastián | Spain | 30 | 5.94 | 0.0% |
| Lower (mean < 5.9): 8 cities | |||||
| 157 | Toledo | Spain | 23 | 5.89 | 0.0% |
| 158 | Reykjavik | Iceland | 22 | 5.88 | 0.0% |
| 159 | Hanoi | Vietnam | 13 | 5.86 | 0.0% |
| 160 | Barcelona | Spain | 24 | 5.85 | 0.0% |
| 161 | Cadiz | Spain | 13 | 5.78 | 0.0% |
| 162 | Luang Prabang | Laos | 12 | 5.76 | 0.0% |
| 163 | Melbourne | Australia | 11 | 5.70 | 0.0% |
| 164 | Valencia | Spain | 10 | 5.68 | 0.0% |
Every qualifying country, ranked
All 38 countries with at least 25 qualifying hotels, ranked by mean cosy score.
Download the full country table as CSV| # | Country | n | Mean | % ≥7.0 |
|---|---|---|---|---|
| 1 | Romania | 25 | 6.67 | 20.0% |
| 2 | Morocco | 98 | 6.63 | 20.4% |
| 3 | Belgium | 166 | 6.47 | 12.7% |
| 4 | South Africa | 43 | 6.45 | 9.3% |
| 5 | Greece | 215 | 6.39 | 5.6% |
| 6 | Indonesia | 123 | 6.38 | 10.6% |
| 7 | Italy | 1066 | 6.35 | 8.7% |
| 8 | Japan | 137 | 6.34 | 10.2% |
| 9 | United States | 453 | 6.31 | 7.9% |
| 10 | Ireland | 145 | 6.31 | 6.9% |
| 11 | Germany | 338 | 6.30 | 3.3% |
| 12 | United Kingdom | 673 | 6.29 | 4.5% |
| 13 | Thailand | 68 | 6.29 | 7.4% |
| 14 | Denmark | 101 | 6.26 | 6.9% |
| 15 | Vietnam | 77 | 6.26 | 0.0% |
| 16 | New Zealand | 48 | 6.26 | 8.3% |
| 17 | Netherlands | 95 | 6.25 | 4.2% |
| 18 | Peru | 46 | 6.24 | 4.3% |
| 19 | Canada | 157 | 6.24 | 6.4% |
| 20 | Norway | 29 | 6.24 | 0.0% |
| 21 | Sweden | 52 | 6.23 | 3.8% |
| 22 | Austria | 179 | 6.22 | 6.1% |
| 23 | France | 373 | 6.22 | 7.0% |
| 24 | Portugal | 202 | 6.21 | 3.5% |
| 25 | Hungary | 83 | 6.21 | 1.2% |
| 26 | Slovenia | 52 | 6.17 | 1.9% |
| 27 | Iceland | 78 | 6.17 | 3.8% |
| 28 | Switzerland | 153 | 6.16 | 3.9% |
| 29 | Croatia | 108 | 6.16 | 2.8% |
| 30 | Poland | 58 | 6.14 | 5.2% |
| 31 | Czechia | 121 | 6.13 | 2.5% |
| 32 | Luxembourg | 62 | 6.12 | 4.8% |
| 33 | Turkey | 57 | 6.11 | 7.0% |
| 34 | Spain | 276 | 6.10 | 5.1% |
| 35 | India | 42 | 6.10 | 2.4% |
| 36 | Estonia | 27 | 6.05 | 3.7% |
| 37 | Finland | 36 | 6.04 | 2.8% |
| 38 | Australia | 68 | 5.91 | 2.9% |
Texture: what guests actually describe
Beyond the scores, the underlying review text shows what's common and what's rare:
- A view is the single most common cosy cue: guests mention one at 10.1% of hotels with review-derived signals, more than any other signal we track.
- Fireplaces are the rarest: just 1.06% of hotels globally, clustering hard in a handful of towns: Stowe, Sedona, Savannah, Queenstown, Keswick.
- Fez is the courtyard capital of the dataset: 33.3% of its hotels have a guest-mentioned courtyard, against a 2.0% global rate.
- Il-Belt Valletta and Interlaken are the only cities where every qualifying hotel is described as walkable: 100% of guest mentions.
- Quiet is the single most common theme in atmosphere-mentioning reviews: it appears in 35.6% of the 9,437 reviews across our wider corpus that mention atmosphere at all. We don't rank cities by "quietest"; a review mentioning quiet isn't an acoustic measurement (see Limitations, below). The trade now calls this demand hushpitality and travellers call it a quietcation, so we rank the hotels guests themselves describe that way: cosy hotels for a quiet night's sleep.
Methodology (the honest version)
We started from 17,735 hotels. 17,727 were AI-scored from 0 to 10 from guest-review text, and 12,831 of those had enough review-derived evidence to support the signal breakdowns above. The league tables above use only hotels scoring score_final (or score) >= 5.0 ("cosy" operational floor) (our operational floor for "cosy"), which leaves 6,345 qualifying hotels. A city needed at least 10 qualifying hotels to appear (164 cities cleared that bar); a country needed at least 25 (38 countries cleared it). City and country name strings were normalised against a manual alias map first (e.g. "Rome"/"Roma", "Marrakech"/"Marrakesh", "Brugge"/"Bruges", all "Praha" district variants merged to "Prague") so duplicate spellings didn't split a city's hotel count. These are AI scores grounded in what guests wrote in reviews: not guest star-ratings, and not a claim of ground truth. Snapshot: July 2026.
Limitations
- Sample sizes are small at the city level. The city-qualification floor is 10 hotels, and a large share of qualifying towns cleared it with n's of only 10–15: enough for a directional read, not enough for precise rank order. That's the reason for tiers rather than a strict ladder above.
- Scores are a review-language proxy, not a physical measurement. "Quiet", "historic" or "fireplace" mentions come from what guests wrote, not from acoustic readings, structural surveys, or an inventory of amenities.
- The keyword/pattern codebook is English-language. It was built and validated against English review text; non-English reviews are only captured to the extent they were translated in the source data, which may under- or over-count some cities and languages.
- City and country names were normalised. A manual alias map merged known duplicate spellings and district variants before aggregation (see Methodology above). A small residual long tail of unmerged postal-code-suffixed variants remains for a few cities (e.g. Edinburgh, Quebec City); each variant is far below the qualification threshold individually, but it means the true hotel count for those cities is understated versus a fully deduplicated geocode.
- These are AI review analysis, not guest star-ratings. Every score is the output of a model reading review text against a fixed rubric: an analysis product, not a guest-submitted rating, and not a claim of ground truth about any individual hotel.
Use this data
Journalists and bloggers: free to cite any figure or table above with attribution to Got Cosy. A link to this page is appreciated but not required. Methodology, limitations and the raw tables are all downloadable above (cities CSV · countries CSV). For a custom cut of the data, email per@gotcosy.com.
Want the story behind the numbers? Read the Cosiness Report, or browse the Cosy Index to see every genuinely cosy hotel we've found.