Calculette Taxe Fonciere 2023 Migration COBOL

POC 8 — DGFiP — 5,225 lignes COBOL → TypeScript (Cloudflare Workers + D1) | Licence CeCILL v2.1

Calcul TF Bati (EFITA3B3)

Zones OM (6 max)

Zone 1
Zone 2

Calcul TF Non-Bati (EFITA3N3)

Bases JA (degrevement jeunes agriculteurs)

Taux communaux (mock TAUDIS)

Taux synthetiques pour demonstration. Le POC n'a pas acces au fichier TAUDIS reel.

Suite de tests (spec E2b sections 10.1-10.8)

Journal des calculs

5,225
Lignes COBOL source
~600
Lignes TypeScript
8.7:1
Ratio compression
6
Programmes migres

A propos de cette migration

SourceDGFiP — Calculette Taxe Fonciere 2023 (code COBOL souverain francais)
LicenceCeCILL v2.1 (licence libre francaise compatible GPL)
ProgrammesCTXTA3B, CTXTA3N, EFITA3B3, EFITA3N3, EFITAUX2, FMSTAU2
Copybooks17 fichiers (XCOMBAT, XCOMNBA, XBASEB, XBASNB, XCOTB, XCOTNB, XRETB, XRETNB, etc.)
CibleTypeScript — Cloudflare Workers + Hono + D1
MethodologieX to Claude v0.5 — 9 etapes, 8 principes
ArrondiMath.floor(value + 0.5) — fidelite COBOL half-up
TauxSynthetiques (le fichier TAUDIS reel est souverain, non accessible)

Mapping technologique

COBOLTypeScript
CTXTA3B / CTXTA3N (routeurs)Endpoints POST /api/bati et /api/non-bati
EFITA3B3 (calculette bati)calculateBati() — 10 cotisations + 3 paliers frais
EFITA3N3 (calculette non-bati)calculateNonBati() — 10 cotis + 4 paliers + JA + CAAA
EFITAUX2 (fichier TAUDIS indexe)readTaux() → D1 table taux_communes
FMSTAU2 (primitive DLI/IMS)readTaux() → meme D1 table (2 entry points unifies)
17 copybooks (COPY REPLACING)Interfaces TypeScript + schema SQL
COMPUTE ROUNDEDMath.floor(value + 0.5)
EVALUATE TRUE (cache taux)D1 query (pas de cache, chaque requete lit la BDD)
Validations non-exclusivesif sans return, dernier RC gagne