diff --git a/base/territoires_stats.php b/base/territoires_stats.php
new file mode 100644
index 0000000000000000000000000000000000000000..08f3f61171f6abe4821f08f2060cec05e17416ff
--- /dev/null
+++ b/base/territoires_stats.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Déclarations relatives à la base de données.
+ */
+if (!defined('_ECRIRE_INC_VERSION')) {
+	return;
+}
+
+/**
+ * Déclaration des tables secondaires (liaisons).
+ * Le plugin Territoires déclare la table des caractéristiques complémentaires, `spip_territoires_extras`
+ * qui est complétée par l'identifiant du feed.
+ *
+ * @pipeline declarer_tables_auxiliaires
+ *
+ * @param array $tables Description des tables auxilliaires
+ *
+ * @return array Description complétée des tables auxilliaires
+ */
+function territoires_stats_declarer_tables_auxiliaires(array $tables) : array {
+	// Ajout de champs dans la tables des extras de territoires : spip_territoires_extras
+	$tables['spip_territoires_extras']['field']['feed_id'] = "varchar(255) DEFAULT '' NOT NULL";
+
+	return $tables;
+}
diff --git a/ezmashup/territoires_stats.php b/ezmashup/territoires_stats.php
new file mode 100644
index 0000000000000000000000000000000000000000..623cec3ef3538355a263fe234e0d4ee8a4e841cf
--- /dev/null
+++ b/ezmashup/territoires_stats.php
@@ -0,0 +1,62 @@
+<?php
+/**
+ * Ce fichier contient les fonctions de service de Mashup Factory personnalisées par le plugin Statistiques des Territoires.
+ */
+if (!defined('_ECRIRE_INC_VERSION')) {
+	return;
+}
+
+// -----------------------------------------------------------------------
+// ------------------------- FEEDS (services) ----------------------------
+// -----------------------------------------------------------------------
+
+/**
+ * Renvoie la liste des catégories et leur description.
+ *
+ * Une seule catégorie pour les feeds fournissant des données statistiques sur les territoires
+ *
+ * @pipeline_appel feed_lister_categories
+ *
+ * @param string $plugin Préfixe du plugin utilisateur.
+ *
+ * @return array Liste des catégories et de leur description au format [id] = tableau de description avec le nom (label),
+ *               la description et l'icone.
+ */
+function territoires_stats_feed_lister_categories(string $plugin) : array {
+	// Initialisation des catégories par défaut
+	return [
+		'territory_data' => [
+			'name'        => '<:territoires_stats:label_feed_category_territory_data:>',
+			'description' => '<:territoires_stats:description_feed_category_territory_data:>',
+			'icon'        => 'territory-24.svg'
+		],
+	];
+}
+
+/**
+ * Renvoie la catégorie par défaut dans la liste des catégories supportées par le plugin.
+ *
+ * @param string $plugin Préfixe du plugin utilisateur.
+ *
+ * @return string Identifiant de la catégorie par défaut.
+ */
+function territoires_stats_feed_initialiser_categorie_defaut(string $plugin) : string {
+	// Initialisation des catégories par défaut de Mashup Factory
+	return 'territory_data';
+}
+
+/**
+ * Renvoie la configuration par défaut du dossier relatif où trouver les feeds.
+ * Cette information est utilisée a minima au chargement des feeds disponibles.
+ *
+ * Le plugin de statistiques pour les territoires crée dynamiquement les feeds. De fait, il les stocke dans le
+ * dossier des données permanentes inaccessibles, _DIR_ETC.
+ *
+ * @param string $plugin Préfixe du plugin utilisateur.
+ *
+ * @return string Chemin relatif du dossier où chercher les feeds.
+ */
+function territoires_stats_feed_initialiser_dossier(string $plugin) : string {
+	// Le plugin range les feeds créés dynamiquement dans _DIR_ETC.
+	return _DIR_ETC . $plugin . '/feeds/';
+}
diff --git a/lang/paquet-territoires_stats_fr.php b/lang/paquet-territoires_stats_fr.php
new file mode 100644
index 0000000000000000000000000000000000000000..f481971b31795962f56821a8df18402b955210fd
--- /dev/null
+++ b/lang/paquet-territoires_stats_fr.php
@@ -0,0 +1,12 @@
+<?php
+if (!defined('_ECRIRE_INC_VERSION')) {
+	return;
+}
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+	// T
+	'territoires_stats_description' => 'Ce plugin fournit un mécanisme issu du plugin Factory Mashup pour associer de multiples données statistiques aux différents territoires fournis par le plugin Territoires. Il fournit ainsi les bases nécessaires à la création de cartes choroplèthes.',
+	'territoires_stats_nom' => 'Statistiques pour les territoires',
+	'territoires_stats_slogan' => 'Associer des données statistiques aux territoires'
+);
diff --git a/lang/territoires_stats_fr.php b/lang/territoires_stats_fr.php
new file mode 100644
index 0000000000000000000000000000000000000000..a7e5f44ff517ef13c9616790b82036f92245451c
--- /dev/null
+++ b/lang/territoires_stats_fr.php
@@ -0,0 +1,11 @@
+<?php
+if (!defined('_ECRIRE_INC_VERSION')) {
+	return;
+}
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+	// L
+	'label_feed_category_territory_data' => 'Données statistiques sur les territoires',
+
+);
diff --git a/paquet.xml b/paquet.xml
index e62e86912bc2810d328cac713a066e332b05e4e9..70444add40d3d92a8b8d9c74a61538525e2f0428 100644
--- a/paquet.xml
+++ b/paquet.xml
@@ -3,7 +3,7 @@
 	version="1.0.0"
 	etat="dev"
 	compatibilite="[4.0.0;4.2.*]"
-	logo="territoire_stats.svg"
+	logo="territoires_stats.svg"
 	schema="1"
 >
 	<nom>Statistiques pour les territoires</nom>
@@ -13,8 +13,8 @@
 
 	<licence lien="http://www.gnu.org/licenses/gpl-3.0.html">GPL</licence>
 
-	<pipeline nom="declarer_tables_principales" inclure="base/isocode_declarations.php" />
+	<pipeline nom="declarer_tables_auxiliaires" inclure="base/territoires_stats.php" />
 
 	<necessite nom="ezmashup" compatibilite="[1.0.0;]" />
-    <necessite nom="territoires" compatibilite="[1.5.5;]" />
+    <necessite nom="territoires" compatibilite="[1.5.6;]" />
 </paquet>
diff --git a/territoires_stats.svg b/territoires_stats.svg
index 35452b6d7bece890bf8b4c491017a4bf34bcf35c..8b59fad611162c10c34311e6354e94c68d068abc 100644
--- a/territoires_stats.svg
+++ b/territoires_stats.svg
@@ -1,3 +1,9 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" xml:space="preserve" width="64" height="64">
-  <path fill="#666" d="m28.5 28.3 10.7-17.8L62 53.4H2l20-37.1 6.5 12zm3.2 5.8 7.4 13.6h13.4L38.9 22.2l-7.2 11.9zM11.6 47.7h20.9L22 28.3 11.6 47.7z" />
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0" y="0" width="64" height="64" viewBox="0, 0, 64, 64">
+  <g id="Calque_1">
+    <path d="M34.111,2.037 L39.351,7.277 L24.381,22.247 L16.971,14.836 L7.24,24.568 L2,19.327 L16.971,4.357 L24.381,11.768 L34.111,2.037 z" fill="#666666"/>
+    <path d="M1.375,20.806 L10.562,20.806 L10.562,33.25 L1.375,33.25 L1.375,20.806 z M12.094,5.25 L21.281,5.25 L21.281,33.25 L12.094,33.25 L12.094,5.25 z M22.812,13.028 L32,13.028 L32,33.25 L22.812,33.25 L22.812,13.028 z" fill="#000000" id="bar-chart-2-fill" display="none"/>
+    <path d="M28.5,36.3 L39.2,18.5 L62,61.4 L2,61.4 L22,24.3 L28.5,36.3 z M31.7,42.1 L39.1,55.7 L52.5,55.7 L38.9,30.2 L31.7,42.1 z M11.6,55.7 L32.5,55.7 L22,36.3 L11.6,55.7 z" fill="#2187E1"/>
+  </g>
 </svg>
diff --git a/territoires_stats_administrations.php b/territoires_stats_administrations.php
new file mode 100644
index 0000000000000000000000000000000000000000..51e5bbb31ccab6b26a1f8e22829429bd483b2ad5
--- /dev/null
+++ b/territoires_stats_administrations.php
@@ -0,0 +1,38 @@
+<?php
+
+if (!defined('_ECRIRE_INC_VERSION')) {
+	return;
+}
+
+/**
+ * Installation du schéma de données propre au plugin et gestion des migrations suivant
+ * les évolutions du schéma.
+ *
+ * Le plugin rajoute une colonne feed_id dans la table `spip_territoires_extras`.
+ *
+ * @param string $nom_meta_base_version
+ * @param string $version_cible
+ *
+ * @return void
+ */
+function territoires_stats_upgrade($nom_meta_base_version, $version_cible) {
+	// Ajoute de la colonne feed_id
+	$maj['create'][] = ['sql_alter', "TABLE spip_territoires_extras ADD feed_id varchar(255) DEFAULT '' NOT NULL AFTER type_extra"];
+
+	include_spip('base/upgrade');
+	maj_plugin($nom_meta_base_version, $version_cible, $maj);
+}
+
+/**
+ * Suppression de l'ensemble du schéma de données propre au plugin.
+ *
+ * @param string $nom_meta_base_version
+ *
+ * @return void
+ */
+function territoires_stats_vider_tables($nom_meta_base_version) {
+	// Supprimer la colonne ajoutée dans la table des extras de territoires
+	sql_alter('TABLE spip_territoires_extras DROP feed_id');
+
+	effacer_meta($nom_meta_base_version);
+}