# GAB-395 · DataLearningCompareValues — « Comparer deux valeurs : budgets A vs B »

**Archétype / renderer_key :** `text_cta` (cartographie) · **module :** EdTechDataLearning
**Critère visé :** changer le JSON change le rendu sans modifier le HTML. ✅ check.py 12/12.

## Pack (structure officielle par-GAB)
```
GAB-395/
  renderer.html            ← moteur DataLearningCompareValues (ne pas modifier par instance)
  instance.example.json    ← SOURCE DE VÉRITÉ (contenu réel, à plat)
  schema.contract.json     ← contrat de validation
  README-contract.md       ← ce fichier
```

## Champs requis (instance, à plat)
`gab_id` · `compare_values_id` · `data_ref` · `value_a` · `value_b` · `comparison_task` · `comparison_policy`

Optionnels : `unit`, `base_value`, `difference_type`, `ratio_note`, `rounding_policy`, `fallback_text_summary`.

## Archétype
Comparaison rigoureuse : vérifier l'égalité des unités, calculer écart absolu et relatif, expliciter la base du pourcentage et la politique d'arrondi.

## BLOCKED si
- compare_values_id absent
- data_ref absent
- value_a absent
- value_b absent
- comparison_task absent
- comparison_policy absent
- unités de value_a et value_b différentes sans politique de conversion

## Source
Pas de playable hardcodé pour 391-395 (data-sources s'arrêtent à GAB-390). Matière première = **CORE-GAB-REGISTRY GAB-395**. Conversion Core → pack serveur, format identique aux GAB 001-390.
