Skip to content

fix(ventilation): recalculer q4pa_conv sans reprendre la ligne du DPE - #323

Closed
elliot-redfroggy wants to merge 1 commit into
mainfrom
fix/q4pa-sans-reprise-ligne-dpe
Closed

elliot-redfroggy wants to merge 1 commit into
mainfrom
fix/q4pa-sans-reprise-ligne-dpe

Conversation

@elliot-redfroggy

Copy link
Copy Markdown
Collaborator

Contexte

Un client contrôle les DPE qui lui sont soumis en les recalculant avec le moteur : si le résultat diffère de plus de 5 % du DPE, celui-ci est rejeté à l'entrée.

Certains logiciels (LICIEL notamment) retiennent une ligne q4pa_conv (tv_q4pa_conv_id) qui contredit l'isolation déclarée des murs/plafonds ou la présence de joints des menuiseries. Depuis #312 et #294, le moteur reprenait cette ligne (compatibilité bug-for-bug) : il reproduisait donc l'erreur du logiciel, et ces DPE passaient le contrôle des 5 %. Le client souhaite que le moteur recalcule q4pa_conv selon la méthode afin que ces DPE soient signalés.

Changement

q4pa_conv est toujours recalculé à partir des donnee_entree (isolation des parois, joints des menuiseries). La ligne du DPE n'est plus reprise ; une ligne contradictoire est seulement signalée par console.error, comme avant #312.

Impact corpus (89 972 DPE, calcul_3cl par défaut, main f9ac5d9 → branche)

ok = les 4 postes (conso_ch, conso_ecs, ep_conso_5_usages ou _m2, emission_ges_5_usages ou _m2) sont à ≤ 5 % de la valeur ADEME (avant 2026 : comparaison aux sorties coeff_2_3_*). 51 DPE sont en erreur sur les deux versions ; ils sont exclus.

Indicateur main branche
Conformité (89 921 DPE) 71 596 (79,62 %) 71 286 (79,28 %)
OK → KO / KO → OK 342 / 32
DPE dont q4pa_conv change 918 (main = valeur ADEME dans les 918 cas)
DPE dont le Cep (ep_conso_5_usages_m2) change 850
|Cep − Cep ADEME| ≤ 5 % → > 5 % 351
|Cep − Cep ADEME| > 5 % → ≤ 5 % 44
Changements de classe 192

OK → KO par logiciel : LICIEL 205, puis des versions non identifiées par nom (3.0.5 : 20, 3.1.1 : 17, 3.0.4 : 13, 3.0.3 : 11, 2.0.4 : 11…), DPEWIN 6, Pleiades 6.
Principales transitions de q4pa_conv : 2,5 → 4,6 (295), 2 → 4,6 (213), 1,9 → 2 (197).

La baisse de conformité est attendue : ces DPE sont ceux dont la ligne q4pa_conv contredit leurs données d'entrée, c'est-à-dire ceux que le client veut détecter.

Tests

  • src/4_ventilation.spec.js : les tests de reprise vérifient désormais qu'une ligne du DPE contradictoire donne la valeur recalculée ; couverture 100 % sur src/4_ventilation.js.
  • deperdition-ventilation.service.spec.js, deperdition-enveloppe.service.spec.js, tv.store.spec.js : mis à jour.
  • test/open3cl-q4pa-ligne-dpe.spec.js : 2287E1201982M → q4pa_conv recalculé à 4,6 (ligne 1) au lieu de 2 ; le scénario 2469E2650374G avec murs isolés reste à 2 / classe E.
  • Suite complète : 35 échecs, identiques nom par nom à main (specs corpus préexistants), aucun nouvel échec.

Les DPE soumis par un client sont contrôlés en recalculant avec le moteur : un écart de plus de
5 % avec le DPE entraîne un rejet. Certains logiciels (LICIEL notamment) retiennent une ligne
q4pa_conv qui contredit l'isolation déclarée des parois ou les joints des menuiseries. En
reprenant cette ligne (bug-for-bug), le moteur reproduisait l'erreur et ces DPE passaient le
contrôle.

La ligne tv_q4pa_conv_id du DPE n'est plus reprise : q4pa_conv est toujours recalculé selon la
méthode à partir des données d'entrée. Une ligne contradictoire est seulement signalée dans
console.error, comme avant #312.

- retrait de la reprise de la ligne « surfaces isolées » (#312, c090c47 / b16eaca) ;
- retrait de la reprise des joints quand presence_joint n'est pas exporté (#294, 0e8b1a2),
  en legacy comme dans la nouvelle architecture (getQ4paConvById et indicateur
  presenceJointNonRenseignee supprimés).

2287E1201982M : q4pa_conv 2 -> 4,6 (valeur de la méthode, parois non isolées).
@michaeldesigaud
michaeldesigaud self-requested a review October 28, 2026 10:21
@michaeldesigaud michaeldesigaud self-assigned this Oct 28, 2026
@elliot-redfroggy

Copy link
Copy Markdown
Collaborator Author

Remplacée par #324 (reprise conservée sous compat_for_corpus_analysis).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants