Développé et maintenu par Lexio, le logiciel de location de voiture et d'utilitaire pour loueurs professionnels.
Il n'existe plus d'imposition unique nommée « TVS » : la taxe sur les véhicules de sociétés (ex-art. 1010 du CGI) a été recodifiée au CIBS le 1er janvier 2022 puis scindée en deux taxes distinctes, déclarées sur deux lignes distinctes. Ce module calcule les deux : la taxe annuelle sur les émissions de CO2 des véhicules de tourisme et la taxe annuelle sur les émissions de polluants atmosphériques. Une troisième taxe (taxe incitative au verdissement des flottes, en vigueur depuis le 1er mars 2025) est détectée lorsque le parc saisi dépasse le seuil de 100 véhicules, mais jamais calculée.
Le moteur couvre les périodes d'imposition 2025 et 2026 (la trajectoire 2027 est exposée à titre informatif via TRAJECTOIRE_2027, mais volontairement incalculable — voir « Limites »). Il gère les trois méthodes de détermination de la taxe CO2 — barème WLTP en g/km, barème NEDC en g/km, barème de puissance administrative en CV fiscaux — ainsi que les exonérations (véhicules électriques et hydrogène, location de courte durée, taxi/VTC, auto-école, activité agricole, personne physique en nom propre…), l'abattement superéthanol E85, le coefficient pondérateur des véhicules de salariés remboursés au kilomètre et la minoration de 15 000 € qui l'accompagne.
Tout est écrit en fonctions pures, sans dépendance, sans DOM ni état : chaque tranche de barème porte son article du CIBS, sa source et son statut de vérification. Le module embarque ses propres cas de contrôle (CAS_DE_CONTROLE), dont les exemples chiffrés officiels du BOFiP et de la notice DGFiP, et une fonction verifierBaremes() qui rejoue l'ensemble : le simulateur en ligne fait échouer son build si une divergence apparaît. Le calcul gère le prorata temporis au jour près (art. L. 421-107) et le tarif moyen pondéré du changement de tarif polluants au 1er mars 2026 (art. L. 421-108).
⚡ Version en ligne Utilisez ce simulateur sans rien installer : https://lexio.rent/outils/simulateur-tvs
# comme dépendance, directement depuis GitHub
npm install github:lexio-rent-git/simulateur-tvs
# ou clonez le dépôt pour l'utiliser tel quel
git clone https://github.com/lexio-rent-git/simulateur-tvsLe paquet est du TypeScript pur, sans étape de build ni dépendance. Cloné, il s'exécute tel quel avec Node ≥ 24 (type-stripping natif) ; installé comme dépendance, importez-le via tsx, Vitest ou votre bundler TypeScript habituel. La publication sur npm (@lexio/simulateur-tvs) est prévue.
import {
calculerVehicule,
calculerParc,
vehiculeVide,
eur,
} from "@lexio/simulateur-tvs";
// Berline essence, WLTP 118 g/km, catégorie 1 (Euro 6), toute l'année 2026.
const berline = {
...vehiculeVide(2026, "berline"),
libelle: "Berline essence",
methode: "wltp" as const,
co2: 118,
polluants: "cat1" as const,
};
const r = calculerVehicule(berline, 2026);
console.log(r.co2); // 363 — taxe CO2 (41×1 + 8×2 + 32×3 + 20×4 + 13×10)
console.log(r.polluants); // 125.1506… — (100 € × 59 j + 130 € × 306 j) / 365
console.log(eur(r.totalUnitaire)); // "488 €"
// Véhicule électrique : exonéré des deux taxes.
const ze = { ...vehiculeVide(2026, "ze"), methode: "wltp" as const, co2: 0, polluants: "E" as const };
console.log(calculerVehicule(ze, 2026).totalUnitaire); // 0
// Prorata : WLTP 150 g/km affecté du 1er avril au 31 décembre 2025 (275 jours).
const partiel = {
...vehiculeVide(2025, "partiel"),
methode: "wltp" as const,
co2: 150,
polluants: "cat1" as const,
debut: "2025-04-01",
fin: "2025-12-31",
};
const parc = calculerParc([partiel], 2025, 4);
console.log(parc.totalADeclarer); // 1155 — (1 433 + 100) × 275/365, arrondi à l'euroL'abattement de 15 000 € et l'arrondi à l'euro portent sur le total du parc, jamais véhicule par véhicule : pour obtenir le montant à déclarer, passez toujours par calculerParc(), même pour un seul véhicule.
| Fonction / export | Description |
|---|---|
calculerVehicule(v, annee) |
Calcule une ligne de parc : CO2, polluants, prorata, exonérations, avec trace de calcul et alertes de saisie. |
calculerParc(vehicules, annee, trimestres) |
Calcule le parc complet : totaux, abattement de 15 000 € (proratisé en trimestres), arrondi à l'euro, seuil de la taxe incitative. |
tarifCo2Grammes(bareme, emissions) |
Barème marginal en grammes (WLTP ou NEDC), avec le détail des paliers. |
tarifCo2Puissance(bareme, cv) |
Barème de puissance administrative : chaque tranche franchie apporte un forfait entier. |
tarifPolluants(bareme, categorie, debut, fin) |
Taxe polluants au jour près : prorata et tarif moyen pondéré en une seule formule. |
coefficientKmPct(km) |
Pourcentage du tarif retenu pour un véhicule de salarié remboursé au kilomètre (0/25/50/75/100). |
methodeProposee(premiereImmat) |
Méthode CO2 suggérée d'après la date de première immatriculation (jamais imposée). |
joursAffectation(debut, fin, annee) / joursBruts(debut, fin) / joursDansAnnee(annee) |
Calendrier en UTC et jours entiers, bornes comprises. |
grammesDansTranche(de, a, e) |
Comptage inclusif des grammes d'une tranche (convention confirmée par le BOFiP). |
arrondiEuro(v) |
Arrondi à l'euro le plus proche, appliqué au seul total. |
vehiculeVide(annee, id) / normaliserVehicule(u, annee, id) / reporterSurAnnee(v, annee) |
Modèle de saisie : ligne vide, relecture défensive d'un stockage, report sur un autre millésime. |
verifierBaremes() |
Vérifie la cohérence structurelle des barèmes et rejoue tous les cas de contrôle ; retourne la liste des divergences (vide si tout passe). |
evaluerCas(cas) / CAS_DE_CONTROLE |
Cas de contrôle rejouables, dont les exemples officiels BOFiP et DGFiP. |
tsvParc(vehicules, parc, annee) |
Export tableur (TSV, montants en nombres bruts, décimale à la virgule). |
eur(v) / eurPrecis(v) / pct(v) / dateFr(iso) |
Formatage français (euro arrondi, centimes, pourcentage, date en toutes lettres). |
BAREMES_CO2, ANNEES, COEFFICIENT_KM, ABATTEMENT_FRAIS_KM, E85, TAI, TRAJECTOIRE_2027, META |
Données : barèmes 2025-2026 sourcés article par article, coefficients, trajectoire 2027 informative, sources. |
Toutes les tranches et tous les tarifs du module citent leur source. Les références principales :
- CIBS, art. L. 421-119 à L. 421-132 — taxe annuelle sur les émissions de CO2 des véhicules de tourisme
- CIBS, art. L. 421-133 à L. 421-144 — taxe annuelle sur les émissions de polluants atmosphériques
- CIBS, art. L. 421-132-1 à L. 421-132-6 — taxe incitative au verdissement des flottes
- Notice DGFiP n° 2857-FC-NOT-SD (décembre 2025, Cerfa 52374#04) — notice de la fiche d'aide au calcul de la taxe CO2
- Notice DGFiP n° 2854-FC-NOT-SD (décembre 2025, Cerfa 52412#01) — notice de la fiche d'aide au calcul de la taxe incitative
- Loi n° 2023-1322 du 29 décembre 2023 de finances pour 2024, art. 97 — trajectoire 2025-2027, suppression des exonérations hybrides
- BOFiP, BOI-AIS-MOB-10-30-10 — champ d'application et exonérations
- BOFiP, BOI-AIS-MOB-10-30-20 — tarifs, tarif moyen pondéré, minoration de 15 000 € et de minimis
- BOFiP, BOI-AIS-MOB-10-30-40 — taxe annuelle incitative relative à l'acquisition de véhicules légers à faibles émissions
- Entreprendre.service-public.gouv.fr, fiche F22203 — taxes sur l'affectation des véhicules à des fins économiques
Les tarifs polluants relevés au 1er mars 2026 (100 → 130 € et 500 → 650 €) proviennent de la loi n° 2026-103 du 19 février 2026, art. 58, citée via la version consolidée de l'art. L. 421-135 du CIBS.
Cet outil produit une estimation, à reporter sous votre responsabilité. Il ne couvre pas :
- La taxe incitative au verdissement des flottes (TAI-RAVLFE) : elle est détectée au-delà du seuil de 100 véhicules, jamais calculée — son assiette croise un écart à un objectif cible et un taux de renouvellement, données absentes d'une saisie véhicule par véhicule. La taille de flotte affichée ne compte en outre que les véhicules saisis dans le champ des deux taxes, alors que le périmètre de la taxe incitative est plus large (utilitaires compris).
- La période d'imposition 2027 : les barèmes 2027 existent, mais la lecture de la première tranche des barèmes WLTP et NEDC n'a pas pu être fiabilisée (elle impliquerait une taxation dès 1 g/km, en contradiction avec l'exonération des véhicules électriques).
TRAJECTOIRE_2027n'expose que les tarifs forfaitaires, et son type est délibérément incompatible aveccalculerVehicule(). - Les plafonds de minimis : les exonérations « activité agricole » et « personne physique en nom propre », ainsi que la minoration de 15 000 €, sont subordonnées aux règlements européens de minimis. Le simulateur les applique sans vérifier votre situation : si votre plafond est consommé, le montant affiché est sous-évalué.
- La pondération du tarif polluants 2026 est marquée
"deduit"et non"verifie": les deux tarifs sont vérifiés, mais leur pondération sur une année coupée en deux est une application de l'art. L. 421-108, non une doctrine publiée par l'administration. - L'arrondi des émissions après abattement E85 (154 g → 92,4 g → 92 g retenus) est une convention assumée, non confirmée par la notice ; l'écart maximal induit est d'un gramme, soit au plus 65 €.
- Les modalités déclaratives : le module expose les formulaires et échéances (
DECLARATION) mais ne détermine pas votre régime de TVA ni ne remplit les fiches 2857-FC-SD.
Les conventions de calcul assumées (comptage inclusif des grammes, arrondi sur le total, coefficient kilométrique appliqué aux deux taxes) sont exposées dans l'export CONVENTIONS, et les points encore ouverts dans POINTS_A_LEVER.
Lexio est un logiciel de location de voiture et d'utilitaire pour les loueurs professionnels : planning, contrats, état des lieux photo, facturation. Essai gratuit de 14 jours, sans carte bancaire.