diff --git a/openfisca_france_dotations_locales/parameters/population/groupes_demographiques.yaml b/openfisca_france_dotations_locales/parameters/population/groupes_demographiques.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..87794399da3aabe1d69c508de87f43d1644c54e6
--- /dev/null
+++ b/openfisca_france_dotations_locales/parameters/population/groupes_demographiques.yaml
@@ -0,0 +1,97 @@
+description: Groupes démographiques des communes déterminés en fonction de l'importance de leur population \
+  (autrement désignés par strates démographiques)
+metadata:
+  type: single_amount
+  reference: https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000033878299
+  # la référence définit les seuils mais pas de numéro de groupe (strate) qu'on déduit ici
+brackets:
+- amount:
+    2017-01-01:
+      value: 1
+  threshold:
+    2017-01-01:
+      value: 0
+- amount:
+    2017-01-01:
+      value: 2
+  threshold:
+    2017-01-01:
+      value: 500
+- amount:
+    2017-01-01:
+      value: 3
+  threshold:
+    2017-01-01:
+      value: 1_000
+- amount:
+    2017-01-01:
+      value: 4
+  threshold:
+    2017-01-01:
+      value: 2_000
+- amount:
+    2017-01-01:
+      value: 5
+  threshold:
+    2017-01-01:
+      value: 3_500
+- amount:
+    2017-01-01:
+      value: 6
+  threshold:
+    2017-01-01:
+      value: 5_000
+- amount:
+    2017-01-01:
+      value: 7
+  threshold:
+    2017-01-01:
+      value: 7_500
+- amount:
+    2017-01-01:
+      value: 8
+  threshold:
+    2017-01-01:
+      value: 10_000
+- amount:
+    2017-01-01:
+      value: 9
+  threshold:
+    2017-01-01:
+      value: 15_000
+- amount:
+    2017-01-01:
+      value: 10
+  threshold:
+    2017-01-01:
+      value: 20_000
+- amount:
+    2017-01-01:
+      value: 11
+  threshold:
+    2017-01-01:
+      value: 35_000
+- amount:
+    2017-01-01:
+      value: 12
+  threshold:
+    2017-01-01:
+      value: 50_000
+- amount:
+    2017-01-01:
+      value: 13
+  threshold:
+    2017-01-01:
+      value: 75_000
+- amount:
+    2017-01-01:
+      value: 14
+  threshold:
+    2017-01-01:
+      value: 100_000
+- amount:
+    2017-01-01:
+      value: 15
+  threshold:
+    2017-01-01:
+      value: 200_000
diff --git a/openfisca_france_dotations_locales/variables/population.py b/openfisca_france_dotations_locales/variables/population.py
index b6f6635f3d184eb869b62cbbca5862f7dae6747a..2e3a0e672c0a3db044c7c85b69c855b1fc783450 100644
--- a/openfisca_france_dotations_locales/variables/population.py
+++ b/openfisca_france_dotations_locales/variables/population.py
@@ -16,25 +16,8 @@ class strate_demographique(Variable):
 
     def formula(commune, period, parameters):
         pop = commune('population_dgf', period)
-
-        return (
-            + 1 * (pop <= 499)
-            + 2 * (499 < pop) * (pop <= 999)
-            + 3 * (999 < pop) * (pop <= 1999)
-            + 4 * (1999 < pop) * (pop <= 3499)
-            + 5 * (3499 < pop) * (pop <= 4999)
-            + 6 * (4999 < pop) * (pop <= 7499)
-            + 7 * (7499 < pop) * (pop <= 9999)
-            + 8 * (9999 < pop) * (pop <= 14999)
-            + 9 * (14999 < pop) * (pop <= 19999)
-            + 10 * (19999 < pop) * (pop <= 34999)
-            + 11 * (34999 < pop) * (pop <= 49999)
-            + 12 * (49999 < pop) * (pop <= 74999)
-            + 13 * (74999 < pop) * (pop <= 99999)
-            + 14 * (99999 < pop) * (pop <= 199999)
-            + 15 * (199999 < pop)
-            )
-
+        bareme_strates_demographiques = parameters(period).population.groupes_demographiques
+        return bareme_strates_demographiques.calc(pop)
 
 class population_insee(Variable):
     value_type = int