How to apply the INPS earnings ceiling in payroll

Last modified on November 5, 2026 • 5 min read • 1,041 words
How payroll teams apply the INPS contribution ceiling: who is subject to it, how to track year-to-date base, and what to check when a cap applies.
How to apply the INPS earnings ceiling in payroll

Some employees in Italy reach a point in the year where INPS pension contributions stop. The reason is the contribution ceiling, known in Italian as the massimale contributivo. If your platform runs Italian payroll for global clients, you need to handle it correctly. A missed cap means over-withheld contributions. A wrongly applied cap means under-reporting to INPS.

This article explains how the ceiling works in payroll terms and how to build it into your process.

What the ceiling is  

The ceiling is an annual limit on the earnings base used to calculate INPS contributions. Once an employee’s contribution base for the year reaches the limit, no further contributions are due on the excess.

The figure we use is EUR 122,295 per year. It applies to employees enrolled with INPS since 1996 who have no earlier contribution history.

This figure comes from a secondary source, not directly from INPS. Check it against the current INPS circular before you load it into your system. Treat the value as a configuration parameter, not a constant in code.

Who is subject to it  

The ceiling does not apply to everyone. The figure above is for employees with no contribution seniority before 1996. Employees with earlier contribution history can be treated differently.

This means the ceiling is an attribute of the employee, not of the employer or the contract. Your onboarding data must capture it.

Collect these items at hire:

  • The date of first INPS enrolment, or confirmation that there is no earlier contribution history.
  • Any previous employment in Italy during the same year, with the contribution base already reached.
  • Any other income that is subject to the same pension contributions.

Without these, you cannot tell whether the cap applies or how much room is left.

Track the base year to date  

The core of the logic is a running total. For each pay run, keep the cumulative contribution base for the calendar year.

For each employee and each period, the steps are:

  1. Compute the gross amount that is subject to contributions for the period.
  2. Read the year-to-date base, including any amount carried in from a previous employer.
  3. Calculate the remaining headroom: the ceiling minus the year-to-date base.
  4. Take the lower of the period base and the headroom. This is the capped base.
  5. Apply the contribution rates to the capped base only.
  6. Add the capped base to the year-to-date total.

After the ceiling is reached, the headroom is zero. The capped base is then zero for pension contributions. The employee’s net pay rises for the rest of the year, which is why clients often ask about it.

Handle one-off payments  

Bonuses and similar items can push an employee over the limit in a single run. Do not apply the cap to the bonus alone. Apply it to the cumulative total. The headroom calculation above handles this, as long as the bonus enters the same run as the regular salary.

If a payment is made in a separate run, make sure the year-to-date base is updated before the next run starts. Out-of-order processing is the most common source of errors.

Mid-year hires and leavers  

An employee who joins mid-year may have used part of the ceiling elsewhere. Ask for the prior base at onboarding and store it as an opening balance. Without it, your system will assume full headroom and over-collect.

For leavers, produce a final statement of the base reached. The next employer will need it, and the employee will ask for it.

Controls that catch mistakes  

Build a few simple checks into the pay run:

  • Flag any employee whose year-to-date base is close to the ceiling, so a reviewer can look at the next run.
  • Block any run where the cumulative capped base would exceed the ceiling.
  • Compare the contribution amounts against the capped base, not the gross.
  • Log the ceiling value used, with its source and the date you verified it.

The last point matters for audits. If a client or an inspector asks why contributions stopped, you can show the parameter, the source and the calculation.

Reporting to INPS  

The monthly declarations must show the capped base. Make sure your reporting layer reads the same capped figure as the payroll engine. Two separate calculations will drift apart over time.

Keep one source of truth for the base, and feed both payslips and declarations from it.

Practical setup for platforms  

If you pass payroll data between systems, define the fields clearly. At a minimum, exchange the enrolment status, the opening balance, the year-to-date base and the ceiling applied. Agree who owns each field, and how corrections flow back.

This removes most disputes between a global platform and its local payroll provider.

Partnership teams that want to align on these fields can request the data-exchange specification.

The lowest all-inclusive Employer of Record price for Italy

ItalyInCountry: €250 per employee per month, all included: Italian employment contract and CCNL selection, monthly payroll, payslips and filings, onboarding and offboarding, HR documents and amendments, invoicing in your currency at the EUR reference rate, no FX spread, no setup fee.

ProviderHeadline feeItaly priceIn EURAll inclusive?
ItalyInCountry (EmployItaly)€250Published€250Yes
Native Teams from $99 Not published €92 Not stated
Boundless from €175 Not published €175 Not stated
Skuad (Payoneer) from $199 Not published €184 Not stated
Remofirst from $199 Not published €184 Not stated
Rivermate from €329 Not published €329 Yes
Playroll $399 Published €369 No
Multiplier from $459 Not published €425 No
PeoItaly €450 Published €450 Not stated
Papaya Global from $499 Not published €462 Not stated
Horizons (now Remote People) from $499 Not published €462 No
Lano from €499 Not published €499 No
Borderless AI from $579 Not published €536 No
Deel from $599 Not published €555 No
Remote from $599 Not published €555 Not stated
Globalization Partners (G-P) from $599 Not published €555 No
Atlas HXM from $599 Not published €555 No
Oyster $699 Published €647 No

Quote only, no public price for Italy: Rippling, Velocity Global (Pebl), Omnipresent, Safeguard Global, INS Global, Asanify, Wisemonk, EOR Italy (eoritaly.com), eor-italy.com, Italian Employer of Record (employerofrecorditaly.com), Italian Payroll (italianpayroll.it, Lexia), HR Capital. Read on 2026-10-27; USD converted at 1.08 per EUR. Employment cost is the same with any provider and is not included.

Follow me

I work on everything coding and tweet developer memes

Contact