Side-by-side comparison

Girona vs Madrid: which is better for Airbnb investment?

We compare the Spain short-term rental markets across occupancy, daily rate, RevPAR, year-over-year trend, and regulation.

Bottom line

Madrid edges ahead of Girona on higher occupancy (37.8% vs 8.2%), stronger RevPAR (£46 vs £16).

Head-to-head metrics

 GironaMadrid
Median occupancy8.2%37.8%
Median daily rate£140£133
Median RevPAR£16£46
Active listings14,21616,115
YoY occupancy+0 pts+6.6 pts
YoY daily rate+36.9%+40.5%
Regulation risk——
Annual night capNoneNone
License requiredNoNo

Full analysis: Girona vs Madrid

On the money side of this comparison — what a listing actually earns against the nights it has available — Madrid finishes decisively ahead of Girona. Revenue per available night — rate and occupancy combined, the figure that actually reaches an owner — is 193% higher in Madrid: £46 against £16. Madrid sells 29.6 more points of its calendar — 37.8% median occupancy against 8.2% in Girona. That is not a rounding difference, and it compounds over a hold period.

The two markets reach their revenue by different routes, which is what makes this pairing worth reading rather than just tabulating. Girona is the rate market: £140 a night against £133, some 5.3% more, but it converts fewer of those nights at 8.2% occupancy. Madrid is the volume market, filling 37.8% of its calendar at a lower headline price. Revenue per available night settles it: £46 in Madrid against £16. Rate is what you advertise; RevPAR is what you bank.

That verdict needs a caveat, because Girona is not simply the weaker market of the two. Girona's calendar is the flatter of the two — 16 points between its best and worst month against 32.4 in Madrid — which makes debt service easier to underwrite. Its strongest submarket, Vilanant, clears £97 RevPAR on its own — city medians hide that kind of spread. If your model leans on that dimension, the ordering above can reasonably flip.

Neither Girona nor Madrid currently has a verified short-term rental regulation record in our register, so the comparison above is a yield comparison only. Regulation is the single largest source of downside in this asset class — an unverified market is an unpriced risk, not an absent one.

The two calendars also behave differently. Girona peaks in August at 60.4% and bottoms in November at 44.4%; Madrid runs from 69.5% in October down to 37.1% in February. Girona is the steadier of the two at 16 points peak-to-trough against 32.4 — easier to underwrite against a mortgage — while Madrid concentrates its return into a shorter window and rewards operators who price the peak aggressively instead of holding a flat rate all year.

Who each suits, then. Girona suits buyers who want a conventional, lightly regulated entry and who can hold rate through the shoulder season rather than discounting to fill the calendar. Madrid answers to the same regulatory profile, so the split between them is operational rather than legal: it is the market for an owner whose economics survive high turnover — more bookings, more cleans, more guest contact per pound of revenue. It is also the momentum side of this pair. Every figure above comes from the same Inside Airbnb snapshot pipeline on both sides, dated 2026-09, filtered to listings with at least one booking in the last twelve months. Occupancy medians are drawn from 14,216 active Girona listings and 16,115 in Madrid.

Frequently asked questions

Is Girona or Madrid better for Airbnb investment?
Madrid, on the data we track. It leads on stronger RevPAR (£46 vs £16), higher occupancy (37.8% vs 8.2%), and higher median annual revenue (£16,897 vs £5,783). Girona is not the weak side of this pair, though — it wins on a flatter season (16-point swing vs 32.4).
Which has higher occupancy, Girona or Madrid?
Madrid, at 37.8% median occupancy against 8.2% in Girona — a gap of 29.6 points. That is a wide spread by short-term rental standards and usually reflects a structural demand difference rather than better hosting. Over the last twelve months Girona was flat and Madrid gained 6.6 points, so the gap is widening.
Which has higher nightly rates, Girona or Madrid?
Girona, at £140 a night against £133 in Madrid — roughly 5.3% more. The nightly rate is not the whole story, though. On revenue per available night — rate multiplied by how often the room actually sells — Madrid comes out ahead at £46 against £16, so Madrid's cheaper nights are more than repaid by how often they fill.
Which has stronger year-over-year growth, Girona or Madrid?
Madrid, on occupancy: +6.6 points over the last twelve months against +0 points in Girona. Nightly rates rose 36.9% in Girona and rose 40.5% in Madrid over the same window. One year of movement is a direction, not a trend — weigh it against the regulation picture before treating it as momentum.
Which is the bigger Airbnb market, Girona or Madrid?
Madrid, with 16,115 active listings against 14,216 in Girona. Size cuts both ways: a deep market gives you comparables, contractors and an exit, while a thinner one means fewer near-identical rivals competing for the same search results.
How much can you earn from an Airbnb in Girona vs Madrid?
Madrid earns more: roughly £16,897 a year for a median listing against £5,783 in Girona. Those are gross booking revenues before cleaning, management, platform fees, furnishing amortisation and tax — budget for a meaningful share of them, and note that a median listing is a median operator, not a good one.

Go deeper on each city

Market guide
Airbnb in Girona →
Occupancy, ADR, neighborhoods, regulation
Market guide
Airbnb in Madrid →
Occupancy, ADR, neighborhoods, regulation
Ready to buy?

Get a full investment report on either city

Property-level financials, stress tests, and an AI verdict — £19 each.

Girona report →Madrid report →
From the same team

Already hosting? Meet HostPal

An AI concierge that answers your guests on WhatsApp 24/7 — in 50+ languages, from your own guidebook and house rules. Emergencies get escalated to you; the WiFi password doesn't. Live in under 10 minutes.

Try HostPal free for 7 days →