# Cost of Sponsoring an Employee in Italy

> What it costs a company abroad to employ a visa holder in Italy: gross salary, employer contributions, INAIL, TFR and the EOR fee, month by month, in EUR and USD.


<section> <span class="eyebrow">Cost calculator</span> <h1 id="what-employing-a-visa-holder-in-italy-costs">What employing a visa holder in Italy costs</h1> <p class="lede">Enter the gross salary you plan to offer. For a Blue Card it must also reach the salary threshold. The table shows the full employer cost under two example collective agreements; the visa fee of €2,500 per case is separate.</p> </section> <section> <div class="grid"> <form class="panel" id="calc" style="display:grid;gap:16px"> <label for="ral">Annual gross salary, RAL (EUR)<input id="ral" type="number" min="15000" step="1000" value="50000"></label> <label for="ccnl">Collective agreement (CCNL)<select id="ccnl"><option value="commercio">Commerce and services (CCNL Terziario, Distribuzione e Servizi)</option><option value="metalmeccanico">Engineering and manufacturing (CCNL Metalmeccanico Industria)</option></select></label> <label style="display:flex;gap:10px;align-items:center;font-weight:400"><input id="prorata" type="checkbox" checked style="width:auto">Spread the 13th and 14th month pro rata over each month</label> <label style="display:flex;gap:10px;align-items:center;font-weight:400"><input id="tfrfund" type="checkbox" checked style="width:auto">Pay TFR monthly into the employee’s chosen fund</label> <label for="fx">USD per EUR<input id="fx" type="number" step="0.01" value="1.08"></label> <p id="ccnlnote" style="margin:0;color:var(--muted);font-size:14px"></p> </form> <div class="panel" style="min-width:0"> <div class="tbl"><table id="out"> <thead><tr><th>Item</th><th class="num">Per month (avg)</th><th class="num">Per year</th></tr></thead> <tbody></tbody> </table></div> <p id="inst" style="font-size:14px;color:var(--muted);margin-bottom:0"></p> </div> </div> <p style="font-size:14px;color:var(--muted)">Example figures, rates updated 2026-10-26. Contribution and insurance rates are indicative <span class="tag">estimate</span> and depend on the exact sector, company size and job risk class. We confirm them in your quote.</p> </section> <section> <h2 id="your-monthly-invoices-over-a-year">Your monthly invoices over a year</h2> <p class="prose" style="margin:0">The annual cost is the same either way. The options change when you pay it: with both options on, every month costs the same and nothing accumulates for later.</p> <div class="tbl"><table id="sched"><thead><tr><th>Month</th><th class="num">Salary</th><th class="num">INPS + INAIL</th><th class="num">TFR</th><th class="num">Fee</th><th class="num">Invoice</th></tr></thead><tbody></tbody></table></div> <p id="schednote" style="font-size:14px;color:var(--muted);margin:0"></p> <p class="review">[Review: pro-rata payment of 13th/14th month must be allowed by the CCNL or an individual agreement; TFR to a pension fund depends on the employee’s choice, otherwise it goes to the INPS Treasury fund (companies with 50+ employees) or stays with the employer.]</p> </section> <section class="prose"> <h2 id="what-the-employment-cost-is-made-of">What the employment cost is made of</h2> <div class="fact"><b>RAL</b><span><strong>Annual gross salary.</strong> The figure in the offer letter. It is paid in 13 or 14 monthly installments depending on the CCNL: the extra installments are the 13th month (December) and, in commerce and services, the 14th month (July).</span></div> <div class="fact"><b>INPS</b><span><strong>Employer social security.</strong> Pension, unemployment, sickness and maternity funds, roughly 29–32% of gross pay. The employee pays a further ~9% out of their gross salary; that part is not an extra cost for you.</span></div> <div class="fact"><b>INAIL</b><span><strong>Workplace injury insurance.</strong> Mandatory. Low for office jobs (well under 1%), higher for technical and production roles.</span></div> <div class="fact"><b>TFR</b><span><strong>Severance accrual.</strong> 6.91% of gross pay set aside every year and paid to the employee when employment ends, for any reason (Civil Code art. 2120).</span></div> <div class="fact"><b>Fee</b><span><strong>Our EOR fee.</strong> €250 per employee per month.</span></div> </section> <section class="prose"> <h2 id="billed-on-actuals-month-by-month">Billed on actuals, month by month</h2> <p>The table above is an estimate. Each month we run the real payroll and invoice what it actually cost: overtime, bonuses, unpaid leave, sick days partly covered by INPS, salary changes and CCNL raises all show up in that month's figures. You receive the payslip summary with every invoice, so you can check every line.</p> <p>Billing terms: one month's estimated cost as a deposit, plus the first month paid in advance; each month is then adjusted to the actual payroll on the next invoice.</p> </section> <section class="prose"> <h2 id="two-collective-agreements-compared">Two collective agreements, compared</h2> <p>On the same €50,000 RAL, an engineering contract under the Metalmeccanico agreement costs the employer roughly €1,500–2,000 a year more than an office contract under Commerce and services: social security rates are about 2–3 points higher and injury insurance is higher for technical roles. The Commerce agreement pays in 14 installments, so each monthly payslip is smaller, but the annual cost is the same RAL.</p> <p>Which agreement applies is not a free choice: it follows the job and the sector of the work. We pick it in the contract draft and explain why.</p> </section> <section class="prose"> <h2 id="why-the-city-changes-net-pay-not-your-cost">Why the city changes net pay, not your cost</h2> <p>On top of national income tax (IRPEF), every employee pays a <strong>regional</strong> surcharge (from 1.23% up to about 3.33% of taxable income, depending on the region and income band) and a <strong>municipal</strong> one (usually 0–0.8%; 0.9% in Rome, 1% in Naples, up to 1.2% in Turin; many cities exempt lower incomes). Both are withheld from the employee's gross pay.</p> <p>They do not change what you pay. They change what the employee takes home: on a €50,000 RAL, the gap between the cheapest and the most expensive combination of region and city is in the order of €1,000–1,500 a year of net pay. Worth knowing when a relocating employee chooses where to live.</p> <p class="review">[Example by city (Milan, Rome, Turin, Bologna, Naples) to be computed from the MEF 2026 tables.]</p> </section> <div class="cta"><a class="btn" href="contact.html">Get an exact quote</a><a class="btn ghost" href="net-pay-calculator.html">See the employee’s net pay</a></div> <script>(function(){const P = {"_note":"Parametri del calcolatore con fonte e stato. 'indicative' = da sostituire con data/params/2026.yaml verificato.","updated":"2026-10-26","ccnl":{"commercio":{"label":"Commerce and services (CCNL Terziario, Distribuzione e Servizi)","installments":14,"employer_social_rate":0.29,"inail_rate":0.004,"status":"indicative","note":"Typical for offices, IT services, consulting, sales. 13th and 14th month salary."},"metalmeccanico":{"label":"Engineering and manufacturing (CCNL Metalmeccanico Industria)","installments":13,"employer_social_rate":0.315,"inail_rate":0.012,"status":"indicative","note":"Typical for engineering, production, technical roles. 13th month salary."}},"tfr_rate":{"value":0.0691,"status":"verified","source":"Civil Code art. 2120: gross pay / 13.5, less 0.5% to the INPS fund"},"employee_social_rate":{"value":0.0919,"status":"indicative","source":"INPS employee share, private sector"},"regional_surcharge":{"min":0.0123,"max":0.0333,"status":"indicative","source":"MEF, addizionale regionale IRPEF"},"municipal_surcharge":{"min":0,"max":0.009,"status":"indicative","source":"MEF, addizionale comunale IRPEF (0.8% general cap; Rome 0.9%)"},"eor_fee_eur":{"value":250,"status":"list price"},"usd_per_eur":{"value":1.08,"status":"indicative","source":"Replace with ECB daily reference rate at build time"},"net":{"status":"secondary","source":"data/params/2026.yaml (irpef, inps, addizionali); TUIR art. 11 and 13; L. 207/2024; L. 199/2025","employee_inps":0.0919,"extra_1pct_above":56224,"irpef":[[28000,0.23],[50000,0.33],[null,0.43]],"cities":{"Milan":{"region":"Lombardy","regional":[[null,0.0123]],"municipal":0.008,"exempt":23000},"Rome":{"region":"Lazio","regional":[[28000,0.0173],[null,0.0333]],"municipal":0.009,"exempt":14000},"Turin":{"region":"Piedmont","regional":[[null,0.0162]],"municipal":0.008,"municipal_note":"0.8% to 1.2% by band; 0.8% used","exempt":11790},"Bologna":{"region":"Emilia-Romagna","regional":[[null,0.0133]],"municipal":0.008,"exempt":15000},"Naples":{"region":"Campania","regional":[[null,0.0173]],"municipal":0.01,"exempt":12000}}}};

const eur = n => '€' + Math.round(n).toLocaleString('en-US');
const usd = n => '$' + Math.round(n).toLocaleString('en-US');
function calc(){
  const ral = +document.getElementById('ral').value || 0;
  const fx = +document.getElementById('fx').value || 0;
  const c = P.ccnl[document.getElementById('ccnl').value];
  const items = [
    ['Gross salary (RAL)', ral],
    ['Employer social security (INPS)', ral * c.employer_social_rate],
    ['Injury insurance (INAIL)', ral * c.inail_rate],
    ['Severance accrual (TFR)', ral * P.tfr_rate.value],
    ['ItalyBlueCard EOR fee', P.eor_fee_eur.value * 12],
  ];
  const tot = items.reduce((s, x) => s + x[1], 0);
  document.querySelector('#out tbody').innerHTML = items.map(([k, v]) => `<tr><td>${k}</td><td class="num">${eur(v/12)}</td><td class="num">${eur(v)}</td></tr>`).join('')
    + `<tr><td><b>Total cost</b></td><td class="num"><b>${eur(tot/12)}</b></td><td class="num"><b>${eur(tot)}</b></td></tr>`
    + `<tr><td>Total in USD</td><td class="num">${usd(tot/12*fx)}</td><td class="num">${usd(tot*fx)}</td></tr>`;
  document.getElementById('inst').textContent = `Salary paid in ${c.installments} installments of ${eur(ral / c.installments)} gross. Total cost is ${(tot / ral * 100 - 100).toFixed(0)}% above RAL.`;
  document.getElementById('ccnlnote').textContent = c.note;
  const pr = document.getElementById('prorata').checked, tf = document.getElementById('tfrfund').checked;
  const inst = ral / c.installments, extra = c.installments - 12;
  const months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
  const rate = c.employer_social_rate + c.inail_rate, fee = P.eor_fee_eur.value;
  let rows = '', sum = 0;
  months.forEach((m, i) => {
    let sal = pr ? ral / 12 : inst + (i === 11 ? inst : 0) + (extra === 2 && i === 6 ? inst : 0);
    const tfr = tf ? ral * P.tfr_rate.value / 12 : 0;
    const inv = sal * (1 + rate) + tfr + fee; sum += inv;
    rows += `<tr><td>${m}</td><td class="num">${eur(sal)}</td><td class="num">${eur(sal*rate)}</td><td class="num">${eur(tfr)}</td><td class="num">${eur(fee)}</td><td class="num"><b>${eur(inv)}</b></td></tr>`;
  });
  rows += `<tr><td><b>Year</b></td><td></td><td></td><td></td><td></td><td class="num"><b>${eur(sum)}</b></td></tr>`;
  document.querySelector('#sched tbody').innerHTML = rows;
  document.getElementById('schednote').textContent = tf ? 'TFR is paid out every month, so no severance liability builds up.' : `TFR of ${eur(ral * P.tfr_rate.value)} a year accrues and is paid when employment ends; it is held in the deposit.`;
}
document.getElementById('calc').addEventListener('input', calc);
document.getElementById('calc').addEventListener('submit', e => e.preventDefault());
calc();
})();</script>


---
Source: https://italybluecard.com/calculator.html
