# Lot « Sources de prix & production » — brancher USGS MCS, étendre la couverture

**Demande** : (1) brancher USGS Mineral Commodity Summaries pour couvrir les minerais sans
prix de référence ; (2) afficher un panneau « sources + couverture prix » sur la page phare ;
(4) retourner la contrainte LME/AIS en argument d'offre.

## 1. USGS MCS — connecté (CC0, domaine public)

`fiscal_graph/fetch_usgs_mcs.py` (stdlib) : interroge l'API ScienceBase, trouve le dernier
**« Mineral Commodity Summaries <année> Data Release »**, télécharge le fichier consolidé
`MCS<année>_Commodities_Data.csv` (DOI 10.5066/P1WKQ63T) et écrit deux fichiers côté moteur :

- `usgs_prices_latest.json` — **même format que la Banque mondiale** (`series_yearly_avg` +
  `unit_notes`) : le moteur le consomme sans modification. Prix convertis en unité de
  comparaison (USD/t ; USD/dmtu pour le fer), chaque conversion et chaque proxy documentés.
- `usgs_production_latest.json` — **production mondiale par pays et par année** (9 minerais,
  10 à 21 pays chacun).

**Effet mesuré** :

| Indicateur | Avant | Après |
|---|---|---|
| Minerais avec référence de prix | 4 / 10 | **9 / 10** |
| Benchmarks disponibles | 6 | **11** (dont les 5 nouveaux : cobalt, graphite, lithium, manganèse, coltan) |
| Source `production` | NON connectée | **connectée (9 minerais)** |
| Source `usgs_mcs` | absente | **connectée (9 séries)** |
| Constats de prix (`price_below_benchmark`) | 167 | **287 (+120)** |
| Constats totaux publiés | 1 423 | **1 543** (dont 524 de gravité haute) |

**Correction de méthode au passage** : le détecteur de prix exigeait seulement que l'unité
contienne « /mt », ce qui laissait passer des unités **non comparables** à un prix USD/kg
déclaré. Il n'accepte plus que les unités **par tonne de produit** (USD/mt) : les unités par
unité de tonne (dmtu/mtu) et par once troy sont écartées, pour ne pas fabriquer de faux signaux.

**Cron** : `20 6 20 * *` → `fetch_usgs_mcs.py` puis `fiscal_engine.py` (mensuel ; le fichier
USGS est annuel, la relance est sans effet tant que la source ne bouge pas).

## 2. Panneau « Sources & couverture prix » (page phare)

Nouvel onglet sur `fiscal_risk_graph.html` (`#sources`) : 5 indicateurs (sources connectées /
non connectées, minerais avec référence, flux sans référence, production mondiale), **tableau
des sources** avec état, nombre d'enregistrements, description et **raison de non-connexion**,
**tableau de couverture minerai par minerai** (référence, source, unité, proxy, nombre de flux,
« détecteur de prix : applicable / non applicable ») et l'**angle mort assumé** (uranium,
sans aucune référence publique). Vérifié : onglet rendu, `usgs_mcs` et `production` affichés
connectés, 4 sources non connectées listées, uranium marqué « AUCUNE ».

## 3. LME et AIS — la contrainte retournée en argument

Ajouté dans l'offre (palier Command Center) : *« si votre administration détient déjà un accès
LME, AIS ou toute base de prix payante, nous branchons et exploitons le flux que vous possédez
— sans racheter la donnée une seconde fois »*. LME reste donc **non connecté par choix de
conformité** (licence payante, rediffusion restreinte) : nous exploitons la donnée du client.

## 4. Reste ouvert

- **Uranium** : aucune cotation publique dans MCS ni dans la Pink Sheet → reste « AUCUNE
  référence » (26 flux). La preuve devra être contractuelle.
- **Manganèse et coltan** : références USGS présentes mais en unité par unité de tonne /
  proxy de teneur → volontairement non utilisées par le détecteur.
- **Contexte à ne pas oublier** : une référence de prix n'est pas un prix de transaction
  (teneur, forme, incoterm) — la limite est affichée dans le panneau lui-même.
