PACTE Act: what impact for companies?

The PACTE bill on business growth and transformation, being debated in Parliament at the time of this recording, presents various measures affecting corporate HR.

In addition to provisions concerning employee profit-sharing and shareholding, those relating to workforce thresholds have a singular impact on companies’ social and tax obligations.

In this interview, Abdelkader BERRAMDANE, Partner in charge of social regulations at Palmer Consulting, answers the following 5 questions:

  • What role does the headcount threshold play?
  • What’s new in the PACTE bill?
  • What definition of headcount does the text provide?
  • When does the crossing of thresholds take effect?
  • What is the social regime for impatriate employees under this bill?

What is the PACTE bill?

At the time of this recording, the French parliament is debating a bill on business growth and transformation. It contains a number of measures that will have an impact on companies’ human resources.
In addition to the provisions concerning employee profit-sharing and shareholding, those relating to threshold effects have a singular impact on companies’ social and tax obligations.

What role does the headcount threshold play?

Social legislation imposes legal and regulatory obligations on companies according to their size. This importance is expressed in terms of the number of employees.

The PACTE bill aims to reform a number of threshold levels and redetermine how they are counted.

What’s new in the Pacte bill?

These new features are of two kinds: an upward revision of the workforce thresholds giving rise to certain obligations, and a redefinition of these workforce thresholds.

For example, the threshold for contributions to the Fnal, the contribution to the construction effort and the introduction of internal regulations has been raised from 20 to 50 employees.

However, the text preserves the 20-employee threshold for regulations concerning the employment of disabled people and mandatory compensation for overtime.

What about this new workforce definition?

The text retains the definition set out in the French Social Security Code. The calculation methods, i.e. a monthly calculation followed by an annual average, are maintained.

On the other hand, the populations taken into consideration have been broadened, notably to include company directors, which is not the case with the definition used in the French Labor Code.

When does the crossing of thresholds take effect?

The scope of threshold crossing is the major reform of the Pacte project.

As soon as the law comes into force, employers will be subject to the different rules when the threshold has been exceeded for 5 consecutive years.

If the number of employees falls below the threshold, this condition is assessed over a new period of 5 consecutive years.

Impatriate employees are also concerned by this bill. What’s involved?

There are plans to introduce an exemption from social security contributions for impatriate employees.

This exemption will apply to basic and supplementary pension contributions. Exemption is conditional on the employee’s not having been a member of a pension fund during the 5 calendar years prior to taking up the position, and on having paid a minimum contribution to a pension fund.

These conditions are to be specified in a forthcoming decree.

Thank you for your attention, and we look forward to seeing you next month.

To find out more about Palmer Consulting’s Human Resources, HRIS & Social Strategy Division, click here.

Share

Other articles

Which consulting firm supports finance departments with their artificial intelligence projects?

Which firm can quickly find us experienced consultants for a strategic program?

Are you looking for a senior PMO to lead a transformation program? Why choose PALMER?

jQuery(function ($) { var SOURCE = '.custom-cta'; var CIBLE = '.elementor-widget-theme-post-content'; var MIN_CTA = 1; // nb minimum de CTA (le 1er est toujours en fin de contenu) var MAX_CTA = 4; // nb maximum de CTA var MOTS_PAR_CTA = 400; // 1 CTA par tranche de X mots var $source = $(SOURCE).first(); var $contenu = $(CIBLE).first(); if (!$source.length || !$contenu.length) return; function creerCta() { var $clone = $source.clone(); $clone.removeAttr('id').find('[id]').removeAttr('id'); $clone.addClass('cta-clone').removeAttr('hidden').show(); return $clone; } // 1. Conteneur du texte (le parent qui contient le plus de

) var $texte = null; var maxP = 0; $contenu.find('p').parent().each(function () { var nb = $(this).children('p').length; if (nb > maxP) { maxP = nb; $texte = $(this); } }); var $blocs = $texte ? $texte.children().not($source).not('.cta-clone') : $(); var n = $blocs.length; // 2. Mots cumulés à la fin de chaque bloc var cumul = []; var total = 0; $blocs.each(function () { var t = $.trim($(this).text()); total += t ? t.split(/\s+/).length : 0; cumul.push(total); }); // 3. Nombre de CTA proportionnel à la longueur, borné entre MIN et MAX var nbCta = Math.floor(total / MOTS_PAR_CTA); nbCta = Math.max(MIN_CTA, Math.min(MAX_CTA, nbCta)); console.log('[CTA] mots :', total, '| CTA :', nbCta); if (nbCta === 0) return; // 4. CTA de fin, toujours présent $contenu.append(creerCta()); // 5. Autres CTA placés à leur proportion exacte du texte try { if (nbCta === 1 || n === 0) return; var $h2 = $blocs.filter('h2'); var tolerance = total / (nbCta * 4); // écart max (en mots) pour se caler sur un h2 var utilises = []; for (var i = 1; nbCta > i; i++) { var cible = (total * i) / nbCta; // position idéale en nombre de mots // Bloc où l'on atteint cette position var idx = 0; while (idx !== n - 1 && cible > cumul[idx]) idx++; // h2 dont le début est le plus proche de la position idéale var $titre = null; var ecart = Infinity; $h2.each(function () { if (utilises.indexOf(this) !== -1) return; var j = $blocs.index(this); var d = Math.abs((j ? cumul[j - 1] : 0) - cible); if (ecart > d) { ecart = d; $titre = $(this); } }); if ($titre && tolerance >= ecart) { utilises.push($titre[0]); $titre.before(creerCta()); } else if ($blocs.eq(idx).is('h1, h2, h3, h4, h5, h6')) { $blocs.eq(idx).before(creerCta()); } else { $blocs.eq(idx).after(creerCta()); } } } catch (e) { console.error('[CTA] erreur :', e); } });