Skip to main content

8 min read #freelance #cdi #tjm #carrière #finances

Freelance ou CDI : ce que coder le simulateur m'a appris

« Tu passerais freelance, tu gagnerais le double. » J'ai codé freelance-ou-cdi.fr pour répondre honnêtement. Le vrai calcul en net après cotisations ET impôt, les coûts que personne ne compte, et quand le CDI reste le bon choix.

Il y a une phrase que tout développeur salarié a entendue au moins une fois, souvent d'un ami qui vient de se lancer : « Tu passerais freelance, tu gagnerais le double. » Le calcul derrière est toujours le même — on prend un TJM, on le multiplie par le nombre de jours ouvrés dans l'année, et on compare le résultat à un salaire net. J'ai reçu la question assez de fois pour finir par coder freelance-ou-cdi.fr, un simulateur open-source qui fait le calcul pour de vrai. Voici ce que construire cet outil — et faire tourner mes propres chiffres dedans — m'a appris.

Le calcul naïf est faux dès la première ligne

« TJM × jours ouvrés » se trompe deux fois. D'abord parce qu'un TJM n'est pas un salaire : c'est un chiffre d'affaires. Entre les deux, il y a les cotisations sociales, et selon le statut — micro-entreprise, EI, EURL, SASU, portage — elles ne se calculent ni au même taux ni sur la même assiette. Ensuite parce que l'impôt sur le revenu s'applique par-dessus, et là encore le statut change tout : une SASU qui arbitre entre salaire et dividendes ne sera pas imposée comme un micro-entrepreneur au versement libératoire. Comparer un CA freelance à un salaire net, c'est comparer un prix hors taxes à un prix payé en caisse.

C'est la première chose que le simulateur impose : il ne s'arrête pas au brut. Il descend jusqu'au net réellement disponible, après cotisations et après impôt, pour chaque statut, et il affiche le TJM d'équilibre — le tarif journalier qu'il faut atteindre pour, une fois tout payé, égaler un salaire net donné. Pour être sûr que ces chiffres ne sortent pas de nulle part, les calculs sont validés par des tests automatisés contre modele-social, le moteur open-source publié par l'URSSAF elle-même. Quand mon résultat diverge du leur, c'est mon code qui a tort.

Vous ne facturez pas 218 jours

L'erreur la plus coûteuse n'est pas dans les charges, elle est dans le dénominateur. Une année compte environ 218 jours ouvrés, et l'intuition pousse à tous les facturer. Sauf que le freelance ne vend pas des jours ouvrés, il vend des jours facturés. Enlevez cinq semaines qui ressemblent à des congés payés — sauf qu'ici personne ne vous les paie. Enlevez l'intercontrat, ces creux entre deux missions où le compteur tourne à zéro. Enlevez la prospection, la comptabilité, les devis, la veille, la formation que plus aucun employeur ne finance à votre place.

En pratique, un freelance qui tourne bien facture autour de 200 jours, et beaucoup tournent plus bas la première année. Ça n'a l'air de rien, mais c'est une bascule : à 200 jours au lieu de 218, votre TJM doit déjà monter de près de 10 % rien que pour compenser le calendrier, avant même d'avoir parlé de cotisations. Le simulateur laisse régler ce nombre précisément, parce que c'est le paramètre qui déplace le plus la ligne d'équilibre — et c'est aussi celui que les comparaisons de comptoir oublient systématiquement.

Ce que le CDI donne sans le dire

Un salaire net, ce n'est pas qu'un montant sur une fiche de paie. C'est un revenu lissé — vous touchez la même somme le mois où vous êtes malade, celui où le projet est en pause, celui où vous partez trois semaines. C'est une assurance chômage si le poste s'arrête. C'est des congés payés, une part de mutuelle, une cotisation retraite prise à la source, un budget formation, parfois une participation ou un treizième mois. Et c'est zéro administratif : pas d'URSSAF à déclarer, pas de TVA à suivre, pas de relance d'un client qui paie à 60 jours.

Rien de tout ça n'est gratuit côté freelance : ça se rachète, en prévoyance, en mutuelle privée, en épargne de précaution pour tenir les creux, et en temps passé à gérer une micro-entreprise qui est aussi une vraie entreprise. Le simulateur ne chiffre pas votre tranquillité d'esprit, mais il rend visible la partie monétisable de cet écart — et elle est plus grande qu'on ne l'imagine tant qu'on ne l'a pas alignée en colonnes.

Le résultat qui m'a surpris

Une fois le calendrier réaliste et toutes les charges en place, le constat revient presque à chaque simulation : à séniorité équivalente, l'écart de net entre un bon CDI et un freelance correctement facturé est beaucoup plus faible que le « tu gagnerais le double » du départ. Pour égaler — pas dépasser, égaler — un CDI confortable de développeur à Paris, il faut un TJM nettement au-dessus de la simple division du salaire par les jours ouvrés, souvent de l'ordre d'un tiers de plus une fois les jours non facturés et les charges digérés. Le surplus tant vanté du freelance n'apparaît qu'au-dessus de ce seuil, et il paie d'abord le risque avant d'être du pouvoir d'achat.

Donc, freelance ou CDI ?

Le simulateur donne un chiffre, mais il ne donne pas la réponse, parce que la réponse n'est pas financière. Une fois l'écart d'argent ramené à sa vraie taille — modeste, à séniorité égale — la décision se joue ailleurs : votre tolérance au risque et aux mois sans revenu, votre appétence pour l'autonomie, et surtout votre capacité à trouver des missions, qui est le vrai métier caché du freelance. Quelqu'un qui déteste vendre et dort mal quand le compte baisse sera plus riche et plus heureux en CDI, même si la ligne « freelance » du tableau est un peu plus haute. L'inverse est vrai aussi.

C'est pour ça que l'outil est public et open-source : l'intérêt n'est pas que je vous donne ma réponse, c'est que vous fassiez tourner vos chiffres, avec votre salaire, votre TJM cible et votre nombre de jours honnête. Faites le calcul sur freelance-ou-cdi.fr ; et si vous voulez juste convertir vite un TJM en salaire équivalent dans un sens ou dans l'autre, le calculateur TJM ↔ salaire fait ça sans inscription. La bonne décision, c'est celle que vous prenez avec les vrais nombres sous les yeux — pas avec ceux du comptoir.