Yocapp commited on
Commit
1cb9307
·
verified ·
1 Parent(s): 64527ae

🐳 25/03 - 16:09 - CONTEXTE IMPORTANTTu travailles sur un simulateur HTML/JS déjà existant pour TIE.NE PAS recréer la page.NE PAS dupliquer des composants.NE PAS refaire le simulateur de zéro.TU DOIS

Browse files
Files changed (1) hide show
  1. simulateur-pertes.html +37 -49
simulateur-pertes.html CHANGED
@@ -887,49 +887,49 @@
887
  return calculationResults;
888
  }
889
 
890
- // TIE Projection Logic - Fixed
891
  function calculateTIEProjection() {
892
  const currentPrivateRatio = calculationResults.pctPrivate;
893
  const caTotal = calculationResults.caTotal;
894
- const currentPrivateRevenue = formData.privateRevenue;
 
 
895
 
896
- // Logic: if private < 30%, show growth potential
897
  if (currentPrivateRatio < 30 && caTotal > 0) {
898
- // Calculate target: 30% of total CA
899
- const targetPrivateRevenue = caTotal * 0.30;
900
- const additionalPrivateRevenue = targetPrivateRevenue - currentPrivateRevenue;
901
 
902
- // Calculate gain: private revenue has no platform commission (~22% avg)
903
- // So converting platform revenue to private saves the commission
904
- const commissionSaved = additionalPrivateRevenue * 0.22;
905
 
906
- // Additional social charges on new private revenue (22% of the new revenue)
907
- const additionalSocialCharges = additionalPrivateRevenue * 0.22;
908
 
909
- // Net gain = commission saved (since we don't pay platform fee on private)
910
- // But we still pay social charges on the new revenue
911
- // So net gain = additionalPrivateRevenue * (1 - 0.22) - additionalPrivateRevenue * costRatio?
912
- // Simplified: The gain is roughly the commission saved minus additional costs
913
 
914
- // More precise calculation:
915
- // Current: Platform revenue has 22% commission + 22% social charges (on what remains after commission)
916
- // Actually the calculation is: for platform revenue, driver keeps 78% after commission, then pays 22% social on that
917
- // For private: driver keeps 100%, pays 22% social on full amount
918
 
919
- // So for additionalPrivateRevenue moved from platform to private:
920
- // Platform net: additionalPrivateRevenue * 0.78 * 0.78 = additionalPrivateRevenue * 0.6084
921
- // Private net: additionalPrivateRevenue * 0.78
922
- // Gain = additionalPrivateRevenue * (0.78 - 0.6084) = additionalPrivateRevenue * 0.1716
923
 
924
- const monthlyGain = additionalPrivateRevenue * 0.1716;
 
 
 
 
 
 
 
925
 
926
  tieProjection = {
927
  hasPotential: true,
928
  currentPrivateRatio: currentPrivateRatio,
929
  targetPrivateRatio: 30,
930
- monthlyGain: monthlyGain > 0 ? monthlyGain : 0,
931
  title: "Potentiel de revenus privés",
932
- message: "Votre part actuelle de revenus privés est encore faible. En vous rapprochant de 30% de chiffre d'affaires en direct, vous pourriez améliorer significativement votre bénéfice mensuel."
933
  };
934
  } else {
935
  tieProjection = {
@@ -938,7 +938,7 @@
938
  targetPrivateRatio: 30,
939
  monthlyGain: 0,
940
  title: "Bonne répartition actuelle",
941
- message: "Votre part actuelle de revenus privés est déjà bien positionnée. Vos prochains leviers d'amélioration concernent surtout votre taux horaire, vos coûts d'exploitation ou votre sélection de courses."
942
  };
943
  }
944
 
@@ -1073,26 +1073,6 @@
1073
  window.currentTIEScore = calculateTIEScore();
1074
  }
1075
 
1076
- // Info button tooltips data
1077
- const infoContent = {
1078
- usage: "Ce coût inclut carburant/électricité, entretien, usure et amortissement du véhicule. Plus vous roulez, plus ce coût augmente.",
1079
- hourly: "Votre revenu réel par heure après toutes charges. C'est l'indicateur le plus fiable pour évaluer votre rentabilité.",
1080
- private: "Les courses privées évitent les commissions des plateformes. À activité équivalente, elles génèrent plus de bénéfices.",
1081
- score: "Le score TIE mesure la rentabilité globale de votre activité selon vos revenus, votre efficacité et votre dépendance aux plateformes."
1082
- };
1083
-
1084
- // Setup info button listeners
1085
- document.querySelectorAll('.info-btn').forEach(btn => {
1086
- btn.addEventListener('click', (e) => {
1087
- e.stopPropagation();
1088
- const infoType = btn.dataset.info;
1089
- const content = infoContent[infoType];
1090
- if (content) {
1091
- alert(content);
1092
- }
1093
- });
1094
- });
1095
-
1096
  function displayScore() {
1097
  const score = window.currentTIEScore || calculateTIEScore();
1098
 
@@ -1352,10 +1332,18 @@
1352
  });
1353
  }
1354
 
 
 
 
 
 
 
 
 
1355
  // Initialize
1356
  updateProgress();
1357
 
1358
- // Setup info button click handlers
1359
  document.querySelectorAll('.info-btn').forEach(btn => {
1360
  btn.addEventListener('click', (e) => {
1361
  e.preventDefault();
@@ -1363,7 +1351,7 @@
1363
  const infoType = btn.dataset.info;
1364
  const content = infoContent[infoType];
1365
  if (content) {
1366
- // Create a nice alert or tooltip
1367
  const tooltip = document.createElement('div');
1368
  tooltip.className = 'fixed inset-0 z-50 flex items-center justify-center bg-black/60 backdrop-blur-sm p-4';
1369
  tooltip.innerHTML = `
 
887
  return calculationResults;
888
  }
889
 
890
+ // TIE Projection Logic - New calculation based on 2€/km valuation
891
  function calculateTIEProjection() {
892
  const currentPrivateRatio = calculationResults.pctPrivate;
893
  const caTotal = calculationResults.caTotal;
894
+ const platformRevenue = formData.platformRevenue;
895
+ const privateRevenue = formData.privateRevenue;
896
+ const distancePerMonth = formData.distancePerMonth;
897
 
 
898
  if (currentPrivateRatio < 30 && caTotal > 0) {
899
+ // A. Estimer les km privés actuels (base 2€/km)
900
+ const currentPrivateKmEstimate = privateRevenue / 2;
 
901
 
902
+ // B. Estimer les km plateforme actuels
903
+ const currentPlatformKmEstimate = Math.max(1, distancePerMonth - currentPrivateKmEstimate);
 
904
 
905
+ // C. Calculer le revenu moyen plateforme au km
906
+ const currentPlatformRevenuePerKm = platformRevenue / currentPlatformKmEstimate;
907
 
908
+ // D. Calculer l'objectif à 30% d'activité privée en km
909
+ const targetPrivateKm = distancePerMonth * 0.30;
 
 
910
 
911
+ // E. Calculer le volume de km privés supplémentaires nécessaires
912
+ const additionalPrivateKm = Math.max(0, targetPrivateKm - currentPrivateKmEstimate);
 
 
913
 
914
+ // F. Valoriser ces km supplémentaires en privé (2€/km)
915
+ const newPrivateRevenueEquivalent = additionalPrivateKm * 2;
 
 
916
 
917
+ // G. Estimer le revenu plateforme remplacé sur ce même volume
918
+ const replacedPlatformRevenueEquivalent = additionalPrivateKm * currentPlatformRevenuePerKm;
919
+
920
+ // H. Calculer le gain brut de CA
921
+ const grossRevenueGain = newPrivateRevenueEquivalent - replacedPlatformRevenueEquivalent;
922
+
923
+ // I. Calculer le gain net après charges sociales (22%)
924
+ const netRevenueGain = Math.max(0, grossRevenueGain * 0.78);
925
 
926
  tieProjection = {
927
  hasPotential: true,
928
  currentPrivateRatio: currentPrivateRatio,
929
  targetPrivateRatio: 30,
930
+ monthlyGain: netRevenueGain,
931
  title: "Potentiel de revenus privés",
932
+ message: `En atteignant 30% d'activité privée, vous pourriez améliorer votre bénéfice mensuel d'environ +${Math.round(netRevenueGain)} par mois. Cette projection se base sur une valorisation moyenne des courses privées à 2 €/km.`
933
  };
934
  } else {
935
  tieProjection = {
 
938
  targetPrivateRatio: 30,
939
  monthlyGain: 0,
940
  title: "Bonne répartition actuelle",
941
+ message: "Votre activité privée est déjà bien développée. Vos prochains leviers concernent surtout votre taux horaire, vos coûts d'usage ou la sélection de vos courses."
942
  };
943
  }
944
 
 
1073
  window.currentTIEScore = calculateTIEScore();
1074
  }
1075
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1076
  function displayScore() {
1077
  const score = window.currentTIEScore || calculateTIEScore();
1078
 
 
1332
  });
1333
  }
1334
 
1335
+ // Info button tooltips data
1336
+ const infoContent = {
1337
+ usage: "Ce coût inclut carburant/électricité, entretien, usure et amortissement du véhicule. Plus vous roulez, plus ce coût augmente.",
1338
+ hourly: "Votre revenu réel par heure après toutes charges. C'est l'indicateur le plus fiable pour évaluer votre rentabilité.",
1339
+ private: "Les courses privées évitent les commissions des plateformes. À activité équivalente, elles génèrent plus de bénéfices.",
1340
+ score: "Le score TIE mesure la rentabilité globale de votre activité selon vos revenus, votre efficacité et votre dépendance aux plateformes."
1341
+ };
1342
+
1343
  // Initialize
1344
  updateProgress();
1345
 
1346
+ // Setup info button click handlers - unique modal system
1347
  document.querySelectorAll('.info-btn').forEach(btn => {
1348
  btn.addEventListener('click', (e) => {
1349
  e.preventDefault();
 
1351
  const infoType = btn.dataset.info;
1352
  const content = infoContent[infoType];
1353
  if (content) {
1354
+ // Create premium modal (single interface)
1355
  const tooltip = document.createElement('div');
1356
  tooltip.className = 'fixed inset-0 z-50 flex items-center justify-center bg-black/60 backdrop-blur-sm p-4';
1357
  tooltip.innerHTML = `