Open data
Luxembourg housing market by commune
Asking prices and rents by commune, updated quarterly. Sort by any column.
Not sure where to look? Read our neighborhood guide →
Housing prices in Luxembourg, commune by commune. The figures on this page come from official statistics published by the Observatoire de l'Habitat, the housing observatory of Luxembourg's Ministry of Housing. They cover asking prices and asking rents for apartments and houses in around 100 communes, always over the most recent 12 months of published listings. We refresh the data every quarter, as soon as the ministry publishes it. Click any commune for its full profile: current prices, the trend since 2010, and what is on the market there right now.
| Commune | Rent €/m² | Apt sale €/m² | House sale €/m² | Apt listings |
|---|---|---|---|---|
| Beaufort | — | — | €5,497/m² | 24 |
| Bech | — | — | — | 8 |
| Beckerich | — | — | €5,116/m² | 24 |
| Berdorf | — | — | — | 12 |
| Bertrange | €44/m² | €11,277/m² | €8,371/m² | 399 |
| Bettembourg | €31/m² | €7,522/m² | €6,416/m² | 230 |
| Bettendorf | — | — | €5,546/m² | 24 |
| Betzdorf | — | — | €6,461/m² | 5 |
| Bissen | — | €7,867/m² | €5,898/m² | 53 |
| Biwer | — | — | €6,119/m² | 7 |
| Boulaide | — | — | €4,604/m² | 0 |
| Bourscheid | — | — | — | 14 |
| Bous-Waldbredimus | — | €8,133/m² | €5,890/m² | 36 |
| Clervaux | €18/m² | €5,896/m² | €4,906/m² | 116 |
| Colmar-Berg | — | €6,840/m² | €5,401/m² | 41 |
| Consdorf | — | — | €5,398/m² | 24 |
| Contern | — | €9,389/m² | €6,762/m² | 278 |
| Dalheim | — | €7,056/m² | €6,914/m² | 101 |
| Diekirch | €21/m² | €7,579/m² | €4,826/m² | 154 |
| Differdange | €31/m² | €7,206/m² | €5,106/m² | 1,057 |
| Dippach | — | €8,446/m² | €6,047/m² | 85 |
| Dudelange | €27/m² | €7,134/m² | €5,279/m² | 614 |
| Echternach | — | €6,612/m² | €5,248/m² | 76 |
| Ell | — | — | €5,306/m² | 16 |
| Erpeldange | — | — | — | 4 |
| Esch-sur-Alzette | €44/m² | €7,406/m² | €5,127/m² | 1,806 |
| Esch-sur-Sûre | — | €5,671/m² | €4,648/m² | 34 |
| Ettelbruck | €22/m² | €6,551/m² | €4,754/m² | 155 |
| Feulen | — | — | €4,739/m² | 23 |
| Fischbach | — | — | — | 10 |
| Flaxweiler | — | — | €5,658/m² | 4 |
| Frisange | €25/m² | €7,883/m² | €6,167/m² | 98 |
| Garnich | — | €7,900/m² | €6,687/m² | 30 |
| Goesdorf | — | €6,218/m² | €4,476/m² | 30 |
| Grevenmacher | — | €8,566/m² | €5,712/m² | 354 |
| Groussbus-Wal | — | — | €4,440/m² | 13 |
| Habscht | — | €7,120/m² | €5,493/m² | 141 |
| Heffingen | — | €8,211/m² | €5,361/m² | 65 |
| Helperknapp | — | €6,897/m² | €5,541/m² | 52 |
| Hesperange | €34/m² | €10,071/m² | €7,938/m² | 906 |
| Junglinster | €31/m² | €8,750/m² | €7,494/m² | 110 |
| Käerjeng | €41/m² | €8,724/m² | €6,206/m² | 1,180 |
| Kayl | €26/m² | €7,293/m² | €5,083/m² | 313 |
| Kehlen | €27/m² | €8,208/m² | €6,078/m² | 220 |
| Kiischpelt | — | — | — | 7 |
| Koerich | — | €6,928/m² | €6,502/m² | 208 |
| Kopstal | €27/m² | €8,831/m² | €8,726/m² | 71 |
| Lac de la Haute-Sûre | — | — | €4,476/m² | 17 |
| Larochette | — | €6,832/m² | — | 35 |
| Lenningen | — | — | €5,159/m² | 4 |
| Leudelange | €47/m² | €8,696/m² | €7,664/m² | 242 |
| Lintgen | — | €9,306/m² | €6,196/m² | 88 |
| Lorentzweiler | €33/m² | €9,287/m² | €5,439/m² | 159 |
| Luxembourg City | €48/m² | €12,229/m² | €8,638/m² | 6,636 |
| Mamer | €45/m² | €9,693/m² | €8,051/m² | 627 |
| Manternach | — | — | — | 1 |
| Mersch | €23/m² | €9,513/m² | €6,194/m² | 793 |
| Mertert | €24/m² | €6,973/m² | €5,690/m² | 158 |
| Mertzig | — | — | €5,892/m² | 22 |
| Mondercange | €49/m² | €7,138/m² | €6,607/m² | 181 |
| Mondorf-les-Bains | €27/m² | €8,013/m² | €6,250/m² | 139 |
| Niederanven | €42/m² | €10,202/m² | €7,555/m² | 74 |
| Nommern | — | — | — | 4 |
| Parc Hosingen | — | — | €4,646/m² | 27 |
| Pétange | €26/m² | €7,008/m² | €4,952/m² | 634 |
| Préizerdaul | — | — | €5,524/m² | 15 |
| Putscheid | — | — | — | 15 |
| Rambrouch | — | — | €4,762/m² | 28 |
| Reckange-sur-Mess | €36/m² | €8,764/m² | €5,678/m² | 48 |
| Redange-sur-Attert | — | €6,764/m² | €4,623/m² | 55 |
| Reisdorf | — | — | €6,116/m² | 12 |
| Remich | — | €7,756/m² | €6,492/m² | 117 |
| Roeser | €34/m² | €8,208/m² | €7,317/m² | 125 |
| Rosport-Mompach | — | — | €4,863/m² | 14 |
| Rumelange | — | €6,518/m² | €4,988/m² | 83 |
| Saeul | — | — | — | 2 |
| Sandweiler | — | — | €7,450/m² | 25 |
| Sanem | €29/m² | €7,406/m² | €5,486/m² | 482 |
| Schengen | — | — | €5,277/m² | 29 |
| Schieren | — | €7,628/m² | — | 39 |
| Schifflange | €33/m² | €7,406/m² | €5,658/m² | 333 |
| Schuttrange | — | €9,288/m² | €6,469/m² | 75 |
| Stadtbredimus | — | — | €5,852/m² | 21 |
| Steinfort | €26/m² | €8,642/m² | €6,142/m² | 261 |
| Steinsel | €28/m² | €9,839/m² | €6,823/m² | 203 |
| Strassen | €40/m² | €10,870/m² | €8,663/m² | 299 |
| Tandel | — | — | — | 0 |
| Troisvierges | — | — | €4,405/m² | 11 |
| Useldange | — | — | €5,156/m² | 11 |
| Vallée de l'Ernz | — | — | €4,682/m² | 12 |
| Vianden | — | — | €4,270/m² | 27 |
| Vichten | — | — | — | 7 |
| Waldbillig | — | — | €5,488/m² | 6 |
| Walferdange | €37/m² | €9,657/m² | €7,930/m² | 205 |
| Weiler-la-Tour | — | €8,046/m² | €5,993/m² | 36 |
| Weiswampach | €20/m² | €6,652/m² | — | 73 |
| Wiltz | €19/m² | €5,759/m² | €4,171/m² | 171 |
| Wincrange | — | — | €4,316/m² | 18 |
| Winseler | — | — | — | 19 |
| Wormeldange | — | €8,615/m² | €5,283/m² | 192 |
How to read these numbers
How to read these numbers
These are asking prices, not final sale prices. The Observatoire compiles its statistics from property listings published over the previous 12 months. An asking price is what the seller or landlord requests when the property goes on the market, before any negotiation. Final transaction prices are usually a few percent lower, especially in a slower market.
Averages depend on what was actually for sale. A commune where mostly large new-build apartments were listed will show a higher average than one where small older flats dominated, even if the underlying market is similar. The price per square metre corrects for size but not for condition, age or location within the commune.
Small communes are sometimes blank. When too few listings were published in a commune during the period, the Observatoire masks the figure to keep it statistically meaningful. We show "too few listings" rather than inventing a number.
The 12-month window moves every quarter. Each update drops the oldest quarter and adds the newest one, so a figure can move even if prices themselves barely changed.
About this data
Where this data comes from
The source is the Observatoire de l'Habitat, the research unit of Luxembourg's Ministry of Housing and Spatial Planning. Every quarter it publishes statistics on asking prices and asking rents by commune, compiled from listings published in the press and online over the trailing 12 months. The ministry releases these datasets as open data on data.public.lu under a CC0 licence, which allows free reuse.
Population figures come from a second official source: STATEC, Luxembourg's national statistics institute, via LUSTAT dataflow DF_X021 on data.public.lu, also CC0. We show the most recent published population and the growth since five years earlier. STATEC updates it annually.
Two more signals come from STATEC on the same terms: the median monthly salary by commune of residence (LUSTAT DF_C1600, gross € per salaried worker, updated annually) and the resident unemployment rate (LUSTAT DF_X026 C6, % of active population, annual). The affordability line combines the Observatoire asking-price €/m² with the median annual salary: the price of a 70 m² apartment expressed in years of local median salary. This is an editorial affordability proxy, not an official STATEC statistic. It mixes an asking price with a residence salary, and cross-border workers earn but do not appear in the local salary base. Read it as directional, not precise.
What we do with it: we download the official files each quarter, check them for consistency, and publish them here unchanged apart from formatting. We never adjust, estimate or extrapolate a figure. Where the Observatoire masks a value for statistical reliability, we leave it masked. Historical series go back to 2009 for rents and 2010 for sale prices, which is what powers the trend charts on each commune page.
What this data is good for: comparing communes, spotting trends, and setting realistic expectations before you search. What it is not: a valuation of any individual property. Two apartments in the same street can differ by hundreds of euros per square metre depending on condition, floor and orientation. For a specific property, the listing itself and a visit tell you more than any average.
Latest update: June 25, 2026, covering 2025-04/2026-03. Next expected update: two to three months after the quarter closes.
Frequently asked questions
Are these real sale prices?
No. They are asking prices from published listings, compiled by the Observatoire de l'Habitat. Actual transaction prices are typically a few percent below asking, and the gap widens when the market slows.
How often is this page updated?
Quarterly. The ministry publishes new figures two to three months after each quarter closes, and our pages refresh automatically within days.
Why does my commune show no data?
Too few listings were published there during the 12-month period. The Observatoire masks small samples so the statistics stay reliable. The trend chart and nearby communes still give you a good picture.
Can I use these figures to price my own property?
As a starting point, yes: they tell you the realistic range for your commune. For a precise valuation, condition, floor, energy class and orientation matter too. An agency valuation or several comparable listings will narrow it down.
Where can I check the original data?
On data.public.lu, the Luxembourg government's open data portal. Search for the Observatoire de l'Habitat datasets on announced prices and rents by commune. Everything on this page can be traced back to those files.