---
page: contenu
sous-page: stats
route: /contenu/stats
statut: en-souffrance
version: 0.1
transverse-liées: [a-debattre (D1), conventions, i18n, design-system]
date: 2026-06-03
---

# CdC — `contenu/stats`

> 🟠 **EN SOUFFRANCE** — la **source de la donnée de performance** est parquée (voir `_transverse/a-debattre.md` **D1** : Search Console / GA4 / logs / rank-tracker ?). La **structure cible** est spécifiée ci-dessous, mais **rien ne se branche** tant que D1 n'est pas tranché.

## 1. Objectif *(cible)*

Donner la **performance des pages publiées** d'un site et la faire reboucler : repérer les pages qui sous-performent ou décrochent, et alimenter « à mettre à jour » (`online`) + le retour vers `keywords/planning`.

## 2. Périmètre

- **Dans (cible)** : KPIs de perf **par page** (trafic, impressions, clics, **position**, CTR, conversions) ; tendances ; comparaisons ; signaux de décrochage.
- **Hors** : la **source** de ces données → **D1, en souffrance**. Production (→ `planning`), inventaire (→ `online`).

## 3. User stories *(cible)*

- Je vois la **perf de chaque page** et son évolution.
- Je repère les pages qui **décrochent** → je les envoie en refonte.

## 4. Fonctionnalités *(cible, gelées sur D1)*

- F1 — **Sélecteur de site global**.
- F2 — **KPIs de perf par page** *(source = D1)*.
- F3 — **Tendances / comparaisons** (période, avant/après refonte).
- F4 — **Signaux de décrochage** → alimente « à mettre à jour » (`online`).

## 5. UI / écrans *(cible)*

- Table des pages + colonnes de perf + mini-charts ; détail page avec courbes. Tokens `design.md`. Responsive.
- **Tant que D1 n'est pas tranché** : afficher un état explicite « **données de perf en souffrance** ».

## 6. Données & actions *(cible)*

- **Affiché** : perf par page + tendances. **Actions** : filtrer, comparer, envoyer en refonte.

## 7. Modèle de données *(esquisse générique, en attente de D1)*

```
content_perf(id, page_id, source, metric, value, captured_at)   -- schéma agnostique de source
   -- source/metric dépendent de D1 (Search Console / GA4 / logs / rank-tracker)
```

## 8. API Hono *(cible)*

- `GET /sites/:siteId/content/stats` *(perf par page — gelé sur D1)*
- `GET /sites/:siteId/content/stats/:pageId`

## 9. Capacités requises *(cible)*

Ingestion d'une **source de perf** (D1) · agrégation par page · détection de décrochage.

## 10. Tools / capacités MCP *(cible)*

- `content_stats` (read) *(gelé sur D1)*

## 11. i18n

- UI localisée.

## 12. Qualité

- **Indexation** : noindex. A11y `data-tables`. Le reste dépend de la source (D1).

## 13. Critères d'acceptation

- [ ] *(Bloqué)* — à définir une fois **D1 tranché** (quelle source de perf).
- [ ] L'écran affiche un état clair « en souffrance » tant que D1 n'est pas résolu.

## 14. Dépendances & risques · questions ouvertes

- **Bloqué par** : `_transverse/a-debattre.md` **D1** (source de la donnée de perf).
- **Impacte** : `contenu/online` (« à mettre à jour »), `keywords/planning` (retour perf), les `overview`.
