How we calculate our prices
Most sites publish prices. Almost none publish the method behind them. A price without a method cannot be checked, compared or challenged.
This page sets out exactly where our ranges come from: the input data and its source, the formula, and the assumptions we make — presented as assumptions, not as measurements.
Verified on 25 July 2026
The input data
All our data is Luxembourgish. No French-market data enters the calculation: the minimum wage, employer contributions and collective agreements are structurally different there.
| Minimum wage (unskilled) | 2,771.33 € / mois | guichet.lu / ITM Verified on 25 July 2026 |
|---|---|---|
| Minimum wage (skilled) | 3,325.60 € / mois | guichet.lu / ITM Verified on 25 July 2026 |
| Employer contributions (total) | 12.355 % – 15.275 % | CCSS Verified on 25 July 2026 |
| Weekly working time | 40 h | ITM Verified on 25 July 2026 |
| Annual leave (construction) | 28 days | OGBL — CCT bâtiment et génie civil Verified on 25 July 2026 |
À titre de comparaison, les charges patronales françaises avoisinent 42 %. Un prix calculé sur une base française ne peut pas s'appliquer au Luxembourg.
The formula
The hourly rate a company bills is not the worker's wage. In between sit employer contributions, non-billable hours, overheads and margin.
-
coût employeur annuel = brut mensuel × 12 × (1 + charges patronales) -
heures facturables/an = heures contractuelles − congés − jours fériés − congés collectifs − part non facturable -
coût horaire direct = coût employeur annuel / heures facturables -
taux horaire facturé = coût horaire direct × (1 + frais généraux) × (1 + marge)
La sortie du modèle est confrontée aux devis réellement observés. Si le modèle produit un taux nettement inférieur au marché, c’est le modèle qui est corrigé — jamais le résultat qui est ajusté à la main.
Our hourly rate ranges
Model output, computed from the data above. Excluding VAT and materials.
Building trades
39–60 €/h excl. VAT
3 325,6–3 700 € gross/month · 1 326–1 503 billable h/year · 2 080 contractual h
Technical trades
43–70 €/h excl. VAT
3 700–4 300 € gross/month · 1 326–1 503 billable h/year · 2 080 contractual h
These ranges are market orders of magnitude, not quotes.
Hourly rate by trade
Daytime rate, excluding VAT and excluding materials. "Published" means the rate comes from our trade guides, which are consistent across all three languages. "Modelled" means no dedicated guide exists, so we apply the model band above.
| Trade | Daytime rate (excl. VAT) | Basis |
|---|---|---|
| Plumber | 45–70 €/h | Published |
| Electrician | 50–75 €/h | Published |
| Heating engineer | 55–80 €/h | Published |
| Roofer | 50–75 €/h | Published |
| Insulation | 39–60 €/h | Modelled |
| Doors & windows | 39–60 €/h | Modelled |
| Painter | 35–65 €/h | Published |
| Tiler | 45–70 €/h | Published |
| Mason | 45–70 €/h | Published |
| Carpenter | 45–65 €/h | Published |
| Ventilation (MVHR) | 43–70 €/h | Modelled |
| EV charger | 43–70 €/h | Modelled |
These rates cover labour only. Materials, scaffolding and waste removal are billed on top.
Surcharges and call-out
These surcharges apply on top of the daytime rate, never instead of it.
Common job prices, by trade
Ranges excluding VAT for the jobs we are asked about most. These are the prices we publish in our trade guides, gathered here so there is only one reference.
Plumber
Unless stated otherwise, prices cover labour and fitting. Sanitary ware, taps, and making good tiling or plasterwork afterwards are billed separately.
Electrician
Prices include standard materials. Chasing walls, making good and repainting are not included, nor is the compliance certificate where an approved body must be involved.
Heating engineer
Prices cover the equipment and its installation. Adapting radiators, chimney lining, asbestos removal and disposal of the old appliance are billed separately. Klimabonus aid is deducted afterwards.
Roofer
Scaffolding (€800-2,000 depending on the site), roof-structure repair and waste removal are not included in the per-m² prices.
Mason
Groundworks, rubble removal and the structural survey required for any work on a load-bearing wall are billed separately.
Carpenter
Bespoke prices include timber and fitting. Removing the existing installation, making good floors or walls, and electrical or plumbing connections are not included.
Painter
Per-m² prices include the paint and two coats. Heavy preparation (full skim coat, stripping) is charged on top, as is extensive furniture protection.
Tiler
Unless stated otherwise, prices cover laying only: the tiles themselves are not included. Removing old tiling, levelling and waterproofing are separate items, listed above.
A range is not a quote: the real price depends on access, the condition of what is already there, and the level of finish.
Our assumptions, stated as such
Three components of the formula are not published by any official source — they vary by company. We publish our assumed ranges rather than hiding them inside the result.
Non-billable share
15 % – 25 %
Déplacements entre chantiers, établissement des devis, administratif, intempéries. Fourchette d’hypothèse, non mesurée.
Overheads
20 % – 35 %
Véhicule, outillage, assurances (RC pro et garantie décennale), local, logiciels, non-productivité des apprentis. Fourchette d’hypothèse, non mesurée.
Margin
8 % – 15 %
Marge d’exploitation. Fourchette d’hypothèse, non mesurée.
Mandatory collective closures
The Luxembourg construction sector closes collectively twice a year. These periods reduce billable hours — and, for you, shift when craftsmen are available. Few sites mention them, yet they are decisive when planning work.
Congé collectif d’été 2026
from 31 July 2026 to 23 August 2026
À partir du dernier vendredi de juillet, jour férié du 15 août inclus.
Congé collectif d’hiver 2026/2027
from 19 December 2026 to 6 January 2027
Pour travailler pendant un congé collectif, l’entreprise doit introduire une demande de dérogation auprès de la commission ad hoc (ITM).
Source : ITM · Verified on 25 July 2026
Current status of the dataset
Our rates are computed by the model above from the source data, not typed in by hand. As the 2026 collective agreement wage grid is not yet confirmed, we anchor the calculation on two verifiable references: the qualified minimum wage and the observed average wage of a qualified sector worker. The resulting ranges are market orders of magnitude — they will be tightened as soon as the agreement in force is published.
Source : ITM — accords collectifs · Verified on 25 July 2026
Why our prices differ from other sites
Many figures published in French for "the price of a plumber" come from the French market. They do not transfer to Luxembourg: the minimum wage is different, French employer contributions run around 42% against 12.355%–15.275% here, and Luxembourg's collective agreements, classifications and mandatory sector closures have no French equivalent.
A price is only comparable if you know what it contains. A range that states neither VAT, nor materials, nor travel, nor waste removal cannot be held against a quote. Most gaps between an advertised price and a received quote are not pricing errors — they are differences of scope.
What our prices are — and are not
Our ranges are market orders of magnitude, meant to help you judge whether a quote is coherent. They are not quotes and not price commitments. Only a professional who has seen your site can set a firm price. Unless stated otherwise, amounts exclude VAT and materials.
Updates
Every figure carries its source and verification date. The dataset is reviewed whenever one of its parameters is known to change: wage indexation, a new collective agreement, a change in contribution rates or in public aid amounts.
Frequently asked questions
Where do the prices on tack.lu come from?
They are derived from public Luxembourg data: the statutory minimum wage, CCSS employer contribution rates, the sector collective agreement and statutory working time. The full formula and the assumptions used are published on this page, with the source and verification date of each figure.
Why not use prices published for France?
Because they do not apply. The Luxembourg minimum wage differs from the French SMIC, French employer contributions run around 42% against 12.355%–15.275% in Luxembourg, and Luxembourg collective agreements and mandatory sector closures have no French equivalent. A French price transposed to Luxembourg is simply wrong.
Do your prices include VAT?
Unless stated otherwise, our ranges exclude VAT and materials. Renovation work on housing may qualify for the 3% housing VAT rate instead of 17%, subject to conditions. We always state the scope of a price: what it includes and what it excludes.
Why publish ranges rather than a single price?
Because a single price would be wrong for almost everyone. Actual cost depends on site access, the condition of what is already there, the materials chosen and how busy the company is. A range shows what is common on the market and lets you spot an unusually low or high quote.
What are collective closures and why do they concern me?
The Luxembourg construction sector closes collectively in summer and at year end. During these periods companies work only with a derogation granted by the labour inspectorate. This affects lead times: a request submitted just before a closure will start after it.
How often are these prices updated?
Every input carries its verification date, shown on the page. The dataset is reviewed whenever a parameter is known to change: wage indexation, the signing of a new collective agreement, or a change in contribution rates or public aid amounts.
Compare against real quotes
A range gives you an order of magnitude. A quote from a verified company gives you your price.
Request free quotes