Calculateur de Revenus Colibri - John COLIBRI. Choix Salaire, Loyers, Intérêts Associé, Dividendes - SARL et SAS |
- résumé : synthèse des calculs de retenues et revenus pour un gérant majoritaire SARL / directeur de SAS. Analyse comparative du versement des
revenus sous forme de loyer, intérêt d'associé, salaire ou dividende
- mots clé : gérant majoritaire SARL, TNS, travailleur non salarié, directeur de SAS, SASU, charges salariales, dividendes, intérêt versé aux
associés, loyers versés aux associés, CSG, CRDS, Flat Tax, comparaison salaire / dividendes
- champ d'application : Delphi 1 à 5, Delphi 6, Delphi 7, Delphi 2006, Turbo Delphi, Delphi 2007 sur Windows
- matériel utilisé : intel i3-8100, 3.6 gHz, 8GB memory, 128 G and 1 T hard disc
- logiciel utilisé : Windows 10 pro 64 bit, Delphi 7
- champ d'application : Delphi 1 à 7, 2006 à 2010, Xe_nnn, Seattle, Tokyo,
Berlin, Rio, Delphi 10.3
- niveau : développeur Delphi
- plan :
1 - Choix SARL SAS
Travaillez, prenez de la peine
Ce sont les optimisations qui manquent le moins
Un brave programmeur sentant sa retraite prochaine
Fit venir ses amis, leur parla sans témoins
Creusez, fouillez, cherchez, ne laissez nulle place
Où les taxes ne passent ou repassent
| Avant 2000, la SARL était une bonne solutions pour créer une entreprise. Actuellement, d'autres solutions peuvent être envisagées, en particulier pour
les travailleurs indépendants souhaitant prendre leur retraite. Dans ce cas, l'objectif est souvent de pouvoir - toucher la retraite
- continuer à facturer des clients, sans plafond de chiffre d'affaire
La SAS (Société par Actions Simplifié) semble avoir été créée exactement pour ce cas. Toutefois le directeur de la SAS est "assimilé" salarié. Ses charges sociales
sont donc bien plus importantes que celles d'un gérant majoritaire SARL. Il faut donc s'assurer que la retraite ne soit pas entièrement dépensée en charges sociales supplémentaires.
D'où ce programme qui, pour un chiffre d'affaire donnée (formations et missions de développement et conseil Delphi) permet de calculer ce qui reste après les diverses charges, taxes, prélèvements et impôts de tout poil.
2 - Principes de Calcul du Simulateur Pour effectuer une comparaison aussi complète que possible, il faut tenir compte - du status (SARL ou SAS)
- des montants que le dirigeant peut choisir (intérêt sur le compte courant d'associé, loyer s'il possède les locaux, salaire ou dividendes)
En gros, pour la société, le schéma est le suivant
résultat d'exploitation (avant intérêt et loyer)
- salaire
- charges sociales (dont CSG de tous types)
- interêts
- loyer
- IS (Impôts sur les Sociétés)
- dividendes
= réserves (sur le résultat net)
|
Puis du côté personnel, il faut tenir compte - des autres revenu du foyer (revenu conjoint, retraite)
- de la CSG
- du calcul de l'IR (Impôt sur le Revenu des personnes physiques)
Au final, ce qui importe est ce qui reste après les prélèvements divers
+ salaire
+ autres revenu du foyer (revenu conjoint, retraite)
+ intérêt associé
+ loyer
+ dividendes
+ réserves (à venir)
- IR
- CSG
= Revenu Net
|
Nous estimons que tous ces paramètres comptent : - les intérêts sont soumis à des impôts dépendant du taux moyen des intérêts et du montant du capital
- le salaires sont soumis aux charges sociales, y compris la CSG
- le type de société va jouer sur les charges sociales
- le loyer peut donner lieu à déductions (frais réel ou micro foncier)
- le niveau de résultat net va influencer le taux IS (15%, 28 % etc)
- les dividendes sont soumis à la Flat Tax
- les autres revenus du foyer vont jouer sur la tranche d'imposition
Mais, au bout du bout, ce qui importe est de comparer la valeur du Revenu Net
3 - Le Simulateur SARL SAS SAS IR 3.1 - Charges sociales, IS, IR
Nous utiliserons, bien évidemment, les quatre simulateurs présentés précédemment et qui permettent le calcul - des charges sociales de gérant majoritaire SARL (travailleur TNS)
- des charges sociales du directeur de SAS assimilé salarié
- de l'impôt sur les sociétés
- de l'impôt sur les revenus des personnes physiques
3.2 - SARL, SAS, SAS IR Trois status juridiques sont prévus - gérant majoritaire SARL (TNS: travailleur non salarié)
- directeur SAS (assimilé salarié) se versant un salaire
- directeur SAS ne se versant pas de salaire (le résultat de la SAS est imputé à l'IR)
3.3 - Le déroulement des calculs
- les 4 fichiers de paramètres sont chargés
- les 4 simulateurs sont créés et initialisés avec les valeurs de tEdits. Chacun est associé à un onglet d'un tPageControl pour afficher les calculs qui lui sont propres
- un simulateur global effectue l'un des trois calculs possibles, en affichant le résultat dans un onglet séparé
Pour ces calculs, nous nous servons naturellement des Classes que nous avons
présentées dans les articles précédents. En résumé, l'organisation présentée sous forme de diagramme UML est la suivante:
3.4 - Calcul SARL
La procédure de calcul est la suivante:
Procedure c_simulateur_revenus.compute_revenu_sarl; Begin
With m_c_calcul_charges_sarl_ref Do
compute_charges(m_salaire, m_cotisations_sociales_obligatoire_precedentes);
With m_c_calcul_is_ref Do Begin
display(f_display('revenu_brut', m_resultat_exploitation));
display(f_display(' - salaires', m_salaire));
display(f_display(' - charges salariales',
m_c_calcul_charges_sarl_ref.m_total_charges_sarl));
m_benefice_avant_is:= m_resultat_exploitation- m_salaire
- m_c_calcul_charges_sarl_ref.m_total_charges_sarl;
display(f_display(' = resu_moins_salaires', m_benefice_avant_is));
calcule_is_sur_revenu_imposable; End;
With m_c_calcul_ir_ref Do Begin
m_total_charges:= m_c_calcul_charges_sarl_ref.m_total_charges_sarl;
m_revenu_imposable:= m_salaire;
m_csg_deductible_ir:= m_c_calcul_charges_sarl_ref.m_csg_deductible_sarl;
m_resultat_exploitation_:= m_resultat_exploitation; compute_ir;
End; End; // compute_revenu_sarl |
3.5 - Calcul SAS
Voici le traitement pour la SAS
Procedure c_simulateur_revenus.compute_revenu_sas(p_c_result_strings: tStrings;
Var pv_c_revenus_precedents: c_revenus_precedents);
Procedure _calcul_litteral; Begin
With m_c_calcul_charges_sas_ref Do
Begin compute_charges(m_salaire);
End;
With m_c_calcul_is_ref Do
Begin
m_resultat_moins_salaires:= m_resultat_exploitation- m_salaire
- m_c_calcul_charges_sas_ref.m_total_charges_salaire_sas;
display(f_display('resu_moins_salaires', m_resultat_moins_salaires));
m_benefice_avant_is:= m_resultat_moins_salaires;
calcule_is_sur_revenu_imposable End;
With m_c_calcul_ir_ref Do
Begin
m_total_charges:= m_c_calcul_charges_sas_ref.m_total_charges_salaire_sas;
m_revenu_imposable:= m_salaire;
m_csg_deductible_ir:= m_c_calcul_charges_sas_ref.m_csg_deductible_sas;
m_resultat_exploitation_:= m_resultat_exploitation;
compute_ir; End;
End; // _calcul_litteral Begin // compute_revenu_sas
_calcul_litteral End; // compute_revenu_sas |
3.6 - Calcul SAS IR Et pour la SAS IR
Procedure c_simulateur_revenus.compute_revenu_sas_IR(p_c_result_strings: tStrings;
Var pv_c_revenus_precedents: c_revenus_precedents);
Procedure _calcule_revenu_sas_IR_dividendes;
// -- calcul pour verser un pourcentage de salaire donné Begin
With m_c_calcul_is_ref Do
Begin
display(f_display('revenu_exploitation ', m_resultat_exploitation));
m_benefice_avant_is:= m_resultat_exploitation;
calcule_is_sur_revenu_imposable;
If m_objectif_pourcent_salaire= 0
Then m_revenu_sas_IR:= 0
Else m_revenu_sas_IR:= m_benefice_net/ (1 + (1- m_objectif_pourcent_salaire)
/ m_objectif_pourcent_salaire);
m_dividendes:= m_benefice_net- m_revenu_sas_IR;
display(f_display(' - dividendes', m_dividendes));
display(f_display(' - revenu_dir_IR', m_revenu_sas_IR));
display(f_display(' = reste_sas', m_benefice_net- m_revenu_sas_IR
- m_dividendes));
End; // with m_c_calcul_is_ref
End; // _calcule_revenu_sas_IR_dividendes
Procedure _calcule_revenu_sas_0_IR; Begin
With m_c_calcul_is_ref Do
Begin m_revenu_sas_IR:= 0;
m_benefice_avant_is:= m_resultat_exploitation;
m_is_sas_ir:= True;
calcule_is_sur_revenu_imposable;
display(f_display(' - dividendes', m_dividendes));
m_revenu_sas_IR:= m_benefice_net- m_dividendes;
display(f_display(' = reste_sas', m_benefice_net- m_dividendes));
End; // with m_c_calcul_is_ref
End; // _calcule_revenu_sas_0_IR
Begin // compute_revenu_sas_IR
With m_c_calcul_is_ref Do Begin
If pv_c_revenus_precedents<> Nil
Then m_benefice_net_precedent:=
pv_c_revenus_precedents.m_benefice_net_precedent;
If (m_objectif_pourcent_salaire< 0) And (m_objectif_renvenu_net_societe= 0)
Then _calcule_revenu_sas_0_IR
Else _calcule_revenu_sas_IR_dividendes; End;
With m_c_calcul_is_ref Do Begin
display_line;
display(Format('=== %s rev_IR %10.2f div %10.2f rev_IR+ dividendes %10.2f',
[f_spaces(7), m_revenu_sas_IR, m_dividendes,
m_revenu_sas_IR+ m_dividendes]));
End; // with m_c_calcul_is_ref
With m_c_calcul_ir_ref Do Begin
m_revenu_imposable:= m_c_calcul_is_ref.m_revenu_sas_IR;
m_csg_deductible_ir:= 0;
If pv_c_revenus_precedents<> Nil
Then m_ir_precedent:= pv_c_revenus_precedents.m_ir_precedent;
m_resultat_exploitation_:= m_resultat_exploitation;
m_revenu_imposable:= m_c_calcul_is_ref.m_revenu_sas_IR;
compute_ir;
If pv_c_revenus_precedents= Nil
Then Begin
pv_c_revenus_precedents:= c_revenus_precedents.Create;
With pv_c_revenus_precedents Do
Begin
m_benefice_net_precedent:= m_c_calcul_is_ref.m_benefice_net;
m_ir_precedent:= m_IR;
m_total_csg_crds_precedent:= m_total_csg_crds;
End; End;
End; // with m_c_calcul_ir_ref
End; // compute_revenu_sas_IR |
3.7 - Le calcul global Au niveau de la forme
- nous chargeons les 4 fichiers de taux divers
- l'utilisateur remplit les valeurs des paramètres et choisit le mode de calcul (SARL, SAS, SAS IR)
- nous lançons les calculs
Voici la procédure qui lance les calculs
Procedure TForm1.compute__Click(Sender: TObject);
Begin load_parameters('is');
load_parameters('sarl'); load_parameters('sas');
load_parameters('ir');
With g_c_calcul_is Do Begin
m_c_detail_result_list:= is_detail_memo_.Lines;
m_capital:= StrToFloat(capital_edit_.Text);
m_pourcent_capital:= StrToFloat(pourcent_capital_edit_.Text)/ 100;
m_micro_foncier_brut:= StrToFloat(loyer_edit_.Text);;
m_taux_interets_compte_associe:=
StrToFloat(pourcent_interets_compte_associe_edit_.Text) / 100;
m_dividendes:= StrToFloat(dividendes_edit_.Text);
End; // with g_c_calcul_is
With g_c_calcul_charges_sarl Do Begin
m_c_detail_result_list:= sarl_detail_memo_.Lines;
m_c_calcul_is_ref:= g_c_calcul_is;
End; // with g_c_calcul_charges_sarl
With g_c_calcul_charges_sas Do
m_c_detail_result_list:= sas_detail_memo_.Lines;
With g_c_calcul_ir Do Begin
m_c_detail_result_list:= ir_detail_memo_.Lines;
// -- pour micro foncier m_c_calcul_is_ref:= g_c_calcul_is;
m_revenu_imposable:= StrToFloat(salaire_edit_.Text);
m_retraites:= StrToFloat(autres_revenus_edit_.Text);
m_nombre_parts:= StrToFloat(nombre_parts_edit_.Text);
End; // with g_c_calcul_ir_ref
g_c_simulateur_revenus.Free;
g_c_simulateur_revenus:= c_simulateur_revenus.create_simulateur_revenus('');;
With g_c_simulateur_revenus Do Begin
m_c_calcul_charges_sas_ref:= g_c_calcul_charges_sas;
m_c_calcul_charges_sarl_ref:= g_c_calcul_charges_sarl;
m_c_calcul_is_ref:= g_c_calcul_is;
m_c_calcul_ir_ref:= g_c_calcul_ir;
m_resultat_exploitation:= StrToFloat(resultat_exploitation_edit_.Text);
m_salaire:= StrToFloat(salaire_edit_.Text);
m_cotisations_sociales_obligatoire_precedentes:=
StrToFloat(cotisations_sociales_obligatoire_edit_.Text);
m_objectif_pourcent_salaire:= StrToFloat(objectif_pourcent_salaire_edit_.Text)/ 100;
m_objectif_renvenu_net_societe:= StrToFloat(objectif_renvenu_net_societe_edit_.Text);
If sarl_.Checked
Then Begin
If (m_salaire> 0) And (m_cotisations_sociales_obligatoire_precedentes= 0)
Then Begin
display_bug_stop('*** fill_cotis_prec');
Exit;
End;
display_pagecontrol.ActivePage:= resu_sarl_tabsheet;
m_c_calcul_is_ref:= g_c_calcul_is;
compute_revenu_sarl(result_sarl_memo_.Lines);
End Else
If sas_.Checked
Then Begin
display_pagecontrol.ActivePage:= resu_sas_tabsheet;
compute_revenu_sas(result_sas_memo_.Lines, g_c_revenus_precedents);
End Else
If sas_IR__.Checked
Then Begin
display_pagecontrol.ActivePage:= resu_sas_IR_tabsheet;
compute_revenu_sas_IR(resu_sas_IR_memo_.Lines, g_c_revenus_precedents);
End;
End; // g_c_simulateur_revenus End; // compute__Click |
4 - Mini Howto Et
- les 3 RadioButtons sarl_, sas_ et sas_ir permettent de choisir le mode de calcul
- l'utilisateur remplit ensuite les paramètres:
- le capital et le pourcent que le gérant / directeur possède de ce capital
(s'il y a versement d'intérêts d'associés ou de dividendes)
- le résultat d'explication (ventes- charges telles que Edf, achats divers etc. - loyers s'ils sont versés à des tiers. - intérêts s'ils sont versés à des tiers)
- le salaire et le montant des charges salariales (dans le cas d'un TNS)
- les dividendes
- le taux d'intérêt des intérêts versés au gérant / directeur
- le montant des loyers s'ils sont versés au gérant / directeur
- pour la SAS IR, nous avons prévu la possibilité de répartir le résultat de la société entre salaire et dividendes: 0 % si tout est versé en dividendes etc
- autres revenus: les retraites du foyer fiscal, ainsi que le nombre de parts
- puis cliquer sur "compute_" et le résultat s'affiche dans les onglets correspondant au mode de calcul. Ici nous avons affiché le résultat final pour la SAS IR avec 50 % de salaire et 50 % de dividendes
5 - SARL vs SAS IR Le but de tout cet exercice était de comparer les revenu net d'un gérant majoritaire SARL (notre status actuel) et le président d'une SAS assujetti à l'IR. Voici le résultat: - SARL
--- REVENUS foyer fiscal
salaire 23.496,42 0,50
+ retraites 40.000,00
+ micro_foncier_brut 7.200,00
+ intérêts_compte_assoc 440,00
+ dividendes_associé 23.787,47
= total_revenus 94.923,887
--- PRELEVEMENTS foyer fiscal
IR 6.610,43
+ CSG 7.879,127
= total_prélèvements 14.489,55
RESTE_NET 80.434,33 prel / reste_net 18,01 %
| - SAS
--- REVENUS foyer fiscal
salaire 22.232,32 0,50
+ retraites 40.000,00
+ micro_foncier_brut 7.200,00
+ intérêts_compte_assoc 440,00
+ dividendes_associé 22.130,48
= total_revenus 92.002,80
--- PRELEVEMENTS foyer fiscal
IR 6.330,87
+ CSG 7.638,02
= total_prélèvements 13.968,90
RESTE_NET 78.033,91 prel / reste_net 17,90 %
| - SAS IR
--- REVENUS foyer fiscal
salaire 31.180,00 0,50
+ retraites 40.000,00
+ micro_foncier_brut 7.200,00
+ intérêts_compte_assoc 440,00
+ dividendes_associé 31.180,00
= total_revenus 110.000,00
--- PRELEVEMENTS foyer fiscal
IR 8.766,10
+ CSG 16.245,90
= total_prélèvements 25.012,00
RESTE_NET 84.988,00 prel / reste_net 29,43 %
|
Quelques points - en résumé:
SARL : 80.434,33
SAS : 78.033,91
SAS IR : 84.988,00
| La meilleure solution est, comme prévue, la SAS IR. Les charges sociales TNS pénalisent le gérant SARL et les charges salariales le directeur SAS. Si la
SAS IR est gagnante, c'est parce que le législateur a créé ce statut spécial pour les personnes qui ont déjà cotisé durant leur carrière professionnelle et continuent à travailler tout en étant à la retraite (sur laquelle le
retraité paie de toutes les façons aussi des charges) - nous pouvons encore optimiser un peu en jouant sur la répartition revenu / dividendes. Voici les résultats pour plusieurs pourcentages
% salaire 0 20 40 60 80 100
sarl 79.460 80.685 80.900 79.954 78.969 77.888
sas 79.204 79.963 78.952 77.175 75.611 74.217
sas_ir 87.992 87.962 85.979 83.996 82.013 80.030
| La meilleure solution est donc de tout verser en dividende (car la flat tax est inférieur au taux marginal d'impôt sur le revenu) Cette situation s'inverse naturellement si le revenu est tellement important
que le taux IR dépasse la flat tax - les pourcentages reste / total_revenus sont difficilement comparables, car notre chiffre "revenu" ne comporte que les revenus au niveau du foyer fiscal.
Un autre calcul, sans intérêt pour connaître le meilleur "reste net", mais permettant d'évaluer la pression fiscale, serait de raisonner au niveau de la valeur ajoutée de la société plus les autres revenus, et pas seulement ce
qui revient au foyer fiscal. Pour calculer ainsi "tout ce que l'état nous prend", if convient aussi de tenir compte des charges sur les retraites. Pour les retraites que nous avons considérées, soit 20.000 Euros par personne, ces charges sont de
l'ordre de 10 %. Voici le cas le plus défavorable
TOTAL valeur ajoutée
+ revenu société 70.000
+ retraites brutes 44.000 // retraités * 1.10
= total valeur_ajoutée + retraites 114.000
Retenues SAS - 100 % salaire
+ charges_sociales_sas 24.122,33
+ charges_retraites 4,000,00
+ IR 10.630,05
+ CSG 998,88
= charges + Is + Ir 39.782,29 prélèvmt / tot_rev 33 %
| et le cas le plus favorable :
TOTAL valeur ajoutée
+ revenu société 70.000
+ retraites brutes 44.000 // retraités * 1.10
= total valeur_ajoutée + retraites 114.000
Retenues SAS IR - 0 % salaire
+ charges_retraites 4,000,00
+ IR 2.300,32
+ CSG 19.706,88
= charges + Is + Ir 26.007,20 prélèvmt / tot_rev 20 %
| Autant pour tous ceux qui prétendent que l'état leur prend tout. Entre un cinquième et un tiers pour les routes, les hôpitaux, les écoles etc me paraît raisonnable.
- mentionnons que tous les calculs de ce paragraphe ont été présentés en supposant que le gérant / directeur possède 100 % du capital. En efft, si sa part est moindre, les exemples où une partie des revenus est versée sous
forme de dividendes réduisent le revenu restant du montant qui doit être versé aux autres détenteurs du capital.
Voci la comparaison du "reste net" pour les cas 100 % et 50 % de part du capital et une répartition 50/50 salaire / dividendes
% capital 100 55
SARL : 80.434 72.826
SAS : 78.033 71.062
SAS IR : 84.988 75.166
|
6 - Le Calculateur SARL SAS SAS IR en ligne
Le calculateur a été mis sous forme internet Voici le formulaire Web:
Et voici le résultat : Cette image est tronquée. Le résultat affiche
- en jaune, les paramètres entrés
- en bleu les résultats
- puis, en jaune, les calculs détaillés pour les charges, l'IS et l'IR
7 - Améliorations Rappelons que
- nous nous sommes concentrés sur un cas général. De nombreux cas n'ont pas été examinés (revenus agricoles, impositions sur les montants peu élevés, choix de la Flat Tax, salariés en Alsace et Moselle etc)
- les valeurs de la démo ont été choisis pour démontrer les différents calculs. Toute ressemblance avec une personne existente ou ayant existé etc.
- nous dégageons toute responsabilité quant à la validité ou la légailité de ces calculs
- il y a des contraintes légales pour choisir certaines options. Pour la SAS IR par exemple, il y a un limite de 5 ans, et de obligations, s'inscrire à un centre de gestion, entre autres.
- certaines options sont possibles avec le calculateur, mais peuvent entraîner des réactions de la Sécu ou des Impôts (si vous remplacez tous vos salaires par des dividendes, par exemple)
- il est donc recommandé de faire valider vos choix par des personnes compétentes (expert comptable ou les administrations elles-mêmes)
8 - Liens
9 - Télécharger le code source Delphi Vous pouvez télécharger: Ce .ZIP qui comprend: - le .DPR, la forme principale, les formes annexes eventuelles
- les fichiers de paramètres (le schéma et le batch de création)
- dans chaque .ZIP, toutes les librairies nécessaires à chaque projet (chaque .ZIP est autonome)
Ces .ZIP, pour les projets en Delphi 6, contiennent des chemins RELATIFS. Par conséquent:
- créez un répertoire n'importe où sur votre machine
- placez le .ZIP dans ce répertoire
- dézippez et les sous-répertoires nécessaires seront créés
- compilez et exécutez
Ces .ZIP ne modifient pas votre PC (pas de changement de la Base de Registre, de DLL ou autre). Pour supprimer le projet, effacez le répertoire. La notation utilisée est la notation alsacienne qui consiste à préfixer les
identificateurs par la zone de compilation: K_onstant, T_ype, G_lobal, L_ocal, P_arametre, F_unction, C_lasse. Elle est présentée plus en
détail dans l'article La Notation Alsacienne
Comme d'habitude:
- nous vous remercions de nous signaler toute erreur, inexactitude ou problème de téléchargement en envoyant un e-mail à jcolibri@jcolibri.com. Les corrections
qui en résulteront pourront aider les prochains lecteurs
- tous vos commentaires, remarques, questions, critiques, suggestion d'article, ou mentions d'autres sources sur le même sujet seront de même
les bienvenus à jcolibri@jcolibri.com.
- plus simplement, vous pouvez taper (anonymement ou en fournissant votre e-mail pour une réponse) vos commentaires ci-dessus et nous les envoyer en
cliquant "envoyer" :
- et si vous avez apprécié cet article, faites connaître notre site,
ajoutez un lien dans vos listes de liens ou citez-nous dans vos blogs ou réponses sur les messageries. C'est très simple: plus nous aurons de visiteurs et de références Google, plus nous écrirons d'articles.
10 - L'auteur John COLIBRI est passionné par le développement Delphi et les applications de Bases de Données. Il a écrit de nombreux livres et articles, et partage son temps entre le développement de projets (nouveaux projets, maintenance, audit, migration BDE, migration Xe_n, refactoring) pour ses clients, le
conseil (composants, architecture, test) et la
formation. Son site contient des articles
avec code source, ainsi que le programme et le calendrier des stages de formation Delphi, base de données, programmation objet, Services Web, Tcp/Ip et
UML qu'il anime personellement tous les mois, à Paris, en province ou sur site client. |