Methodology

How the licence match is calculated

This map compares the Malta Tourism Authority's Short-Let Rented Accommodation register with the Inside Airbnb Malta snapshot. The unmatched count is an evidence-led upper bound on Airbnb listings that have no nearby active HFP licence — not a legal ruling about any individual property.

How matching works

The MTA register lists addresses but no coordinates, so each address is geocoded against OpenStreetMap (Nominatim, then Photon and LocationIQ for the streets the first pass misses). A licence pin is shown green only when the returned road name matches the requested street after handling Maltese diacritics and Maltese↔English aliases (TriqStreet, SanSaint, and so on). Orange pins fell back to the locality centre and are not eligible for matching.

Each short-stay Airbnb listing (minimum stay < 30 nights) is assigned the road names near its public coordinates, then paired with the closest plausible licence whose street matches one of those nearby roads:

Pairs are assigned one-to-one — best-scoring pair first, each licence claimed by at most one listing. A building with one licence and ten Airbnb listings yields one matched and nine unmatched, not ten matched.

A matched listing means a licence was available nearby on a matching road that fit the bedroom count. It does not prove the listing is that licence — only that one is plausibly close enough under the matching rules.

An unmatched listing means no licence was free for it: either none on a nearby matching road ever fit, or the ones that did were claimed by closer or better-matching Airbnb listings. Some unmatched listings may be genuine licensees whose HFP record sits at the locality centre and therefore does not qualify for matching, so the unmatched count should be read as an upper bound rather than a verdict on any individual listing.

Long-stay listings with a minimum stay of 30 nights or more are not governed by the MTA holiday-premises regime and are excluded from this map.

The Airbnb coordinate-jitter caveat

Airbnb publishes listing coordinates with a deliberate privacy jitter of roughly 100–150 m. The 1 km loose radius, followed by a 2 km second pass for listings still unmatched, is a wider fallback for public coordinates that may be shifted away from the actual property, and for imperfect licence geocoding. The licence street must still match one of the roads near the Airbnb public pin. It still cannot match records whose licence pin fell back to a locality centre, because those orange pins are excluded from matching.

The flip side: 2 km can span many buildings along a matching road in dense areas like Sliema or St Julian's, so an individual matched result in those areas isn't proof either — only that a plausible licence on a nearby matching road was close enough. The aggregate ratio is the useful signal; no individual pin is a verdict.

Tourist carrying-capacity ranking

The carrying-capacity dropdown ranks towns by potential Airbnb guest load relative to resident population. For each short-stay listing, the map uses Airbnb's accommodates field as the listing's sleep capacity, then sums that value by locality.

The displayed ratio is: Airbnb sleep capacity / resident population * 100. A value of 25 means the town has enough listed short-stay beds for roughly 25 tourists per 100 residents, if every listed Airbnb bed were occupied at the same time. The panel also shows resident density per square kilometre as supporting context.

Resident-population figures come from the National Statistics Office spreadsheet End-of-year population estimates by locality, sex and citizenship: 2012-2024, using the 2024 total column. Resident-density context comes from End-of-year population density per square km by district and locality of residence: 2012-2024. Both files are from nso.gov.mt/population. Non-standard Airbnb locality labels are normalised into their local council where clear (for example Bugibba and Qawra into San Pawl il-Bahar, and Marsalforn into Zebbug, Gozo). Labels that cannot be mapped clearly are excluded from this one ranking.

What can go wrong

Listings flagged unlicensed that might actually be licensed:

Listings flagged compliant that might not be: