Market size
Outil de ciblage B2B France pour directeurs commerciaux — branché sur data.gouv.fr (gratuit, 30M+ entreprises FR, méthode BYS)
npx -y skills add Build-Your-Sales/data_gouv_mcp_bys --skill market-sizeAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Compute TAM/SAM/SOM on French companies using the data.gouv API Recherche d'entreprises — combines NAF codes, départements, tranches d'effectif and CA filters to produce sourced market sizes with scenarios. Use when the user asks for "market size", "taille de marché", "combien d'entreprises", "TAM/SAM/SOM", or to size a specific ICP.
SKILL.md
8.0 KB, ~2.6k tokens by cl100k_base, as published. Nobody here has run it
market-size — TAM / SAM / SOM via data.gouv
You compute the Total Addressable Market, Serviceable Addressable Market, and Serviceable Obtainable Market on French companies, sourced from the public API Recherche d'entreprises.
Definitions (BYS-flavored)
| Acronym | Definition | Filters typically applied |
|---|---|---|
| TAM | Toutes les entreprises FR qui pourraient théoriquement avoir le problème | NAF section + tranche d'effectif large + etat_administratif=A |
| SAM | Celles qu'on peut vraiment servir (sweet spot ICP) | TAM + département/région + tranche d'effectif sweet spot + CA range |
| SOM | Celles qu'on va réellement atteindre sur 12 mois | 1-3% du SAM (réalité du cold outbound B2B) |
Prerequisites
- (Idéalement)
clients/<client>/cab-p.mdexiste → on connaît l'ICP - Sinon : l'utilisateur peut lancer ce skill ad-hoc en donnant directement les critères
Flow
1. Récupérer ou demander les critères
Si cab-p.md ou icp.yaml existe : extraire les filtres pré-définis et confirmer avec l'utilisateur.
Sinon, demander une question à la fois :
- Secteur(s) cible(s) : description libre OU code(s) NAF directs (voir
references/naf-codes.mdpour aider à traduire) - Tranche(s) de salariés :
1-9,10-49,50-249,250-999,1000+(sera traduit en codes INSEE) - Géographie : France entière / région / liste de départements
- CA cible (optionnel) : ex
>1M€,1M-20M€,>50M€ - Catégorie INSEE (optionnel) : PME / ETI / GE
- Filtres spéciaux (optionnel) : Qualiopi, ESS, RGE, organisme de formation, association
2. Calculer le TAM
Appel à l'API avec les filtres larges (juste section + tranche large + etat_administratif=A) :
curl -s "https://recherche-entreprises.api.gouv.fr/search?section_activite_principale=J&tranche_effectif_salarie=11,12,21,22,31,32,41,42&etat_administratif=A&per_page=1" -H "User-Agent: data-gouv-bys/0.1" | jq '.total_results'
Le champ total_results donne le compte. Pas besoin de paginer pour un comptage.
⚠️ L'API plafonne total_results à 10 000. Si tu reçois exactement 10000 :
- Le vrai TAM est probablement > 10K
- Documente le résultat comme "10 000+" dans le market-size.md
- Pour un comptage précis : décompose par département (région → départements) puis somme, ou consulte le dataset SIRENE bulk sur data.gouv
3. Calculer le SAM
Resserrer les filtres avec tous les critères ICP (NAF précis, départements ciblés, CA range, catégorie, signaux qualité) :
curl -s "https://recherche-entreprises.api.gouv.fr/search?activite_principale=62.01Z,62.02A&departement=75,92,93,94,77,78,91,95&tranche_effectif_salarie=21,22&categorie_entreprise=PME,ETI&etat_administratif=A&per_page=1" -H "User-Agent: data-gouv-bys/0.1" | jq '.total_results'
4. Calculer le SOM
3 scénarios réalistes :
- Conservateur : 1% du SAM atteignable sur 12 mois
- Réaliste (BYS baseline) : 2% du SAM atteignable
- Optimiste : 3% du SAM atteignable (avec brand fort + delivrabilité top + signaux récents)
Puis appliquer le taux de conversion outbound :
| Étape | Taux médian |
|---|---|
| Email envoyé → ouvert | 50-70% |
| Ouvert → répondu | 5-9% (avec personnalisation) |
| Répondu → meeting | 30-50% |
| Meeting → opportunité | 40-60% |
| Opportunité → client | 15-30% |
Multiplie le SOM par le funnel pour obtenir : meetings attendus, opportunités, deals fermés.
5. Sortie
Génère clients/<client>/market-size.md (ou affiche directement si standalone) :
# Market Size — <Client>
Date: 2026-05-21
Source: data.gouv.fr / API Recherche d'entreprises (snapshot 2026-05-21)
## ICP synthétisé
- Secteurs (NAF): 62.01Z (édition logiciel), 62.02A (conseil SI)
- Effectif: 50-249 salariés (tranches INSEE 21, 22, 31)
- Catégorie: PME, ETI
- Géo: Île-de-France (75, 77, 78, 91, 92, 93, 94, 95)
- État: A (active)
## TAM — Toutes les boîtes FR potentielles
**Critères TAM** : Section J (Information et communication), 10+ salariés, FR entière, actives.
**Résultat** : `X 234 entreprises`
- Hypothèse : toutes les entreprises tech FR de 10+ salariés ont *potentiellement* le problème
## SAM — Vrai cœur de cible
**Critères SAM** : NAF resserré + IDF + 50-249 + PME/ETI
**Résultat** : `Y 567 entreprises`
- Sweet spot validé (niveau 3-4 de la méthode BYS)
- 1-2 contacts ATL/BTL identifiables par boîte = ~ Y × 1.5 personnes
## SOM — Cible 12 mois
| Scénario | % SAM | Boîtes | Personnes |
|---|---|---|---|
| Conservateur | 1% | 5 | 7-8 |
| Réaliste | 2% | 11 | 16-17 |
| Optimiste | 3% | 17 | 25 |
## Funnel attendu (scénario réaliste, 11 boîtes / 17 personnes)
- Emails envoyés (3 séquences) : ~ 51
- Ouverts (60%) : ~ 31
- Réponses (7%) : ~ 4
- Meetings (40%) : ~ 1.5
- Deals (20% des oppos) : ~ 0.3
## Sensibilité
- Si on élargit à AURA + Occitanie : SAM × 2.3
- Si on accepte les 20-49 salariés : SAM × 4.1
- Si on ajoute les microentreprises (1-9 sal.) : SAM × 18 (mais qualité chute)
## Recommandations
- Le SAM est sain (Y > 500 boîtes) → budget de campagne dimensionné correctement
- 2-3 ciblages T1 + 4-5 T2 sont jouables sans saturer
- Risque : <warnings éventuels, ex: trop concentré sur l'IDF, ou dépendant d'un seul NAF>
6. Si TAM trop petit
Si TAM < 200 → demande poliment :
"Le TAM est très petit (X entreprises). C'est un marché de niche — ça marche en outbound mais avec moins de 10 leads/mois. Tu veux :
- Élargir la géographie (toute la France au lieu d'IDF) ?
- Élargir les tranches d'effectif (ajouter 250-999) ?
- Ajouter des NAF voisins ?
- Tester un autre segment d'abord et garder celui-ci en bonus ?"
7. Si TAM trop large
Si SAM > 10 000 → propose de resserrer :
"Le SAM est très large (X+ boîtes). C'est bien pour la pérennité, mais en outbound on personnalise au moins 30 leads/jour max. Tu veux qu'on resserre avec :
- Un signal récent (levée de fonds < 3 mois, hiring sales, croissance > 20%) ?
- Un CA range plus précis ?
- Un sous-secteur NAF plus pointu ?"
Helpers
Code Bash pour TAM/SAM en un coup
TAM=$(curl -s "https://recherche-entreprises.api.gouv.fr/search?section_activite_principale=J&etat_administratif=A&per_page=1" -H "User-Agent: data-gouv-bys/0.1" | jq -r '.total_results')
SAM=$(curl -s "https://recherche-entreprises.api.gouv.fr/search?activite_principale=62.01Z,62.02A&departement=75,92,93,94,77,78,91,95&tranche_effectif_salarie=21,22&categorie_entreprise=PME,ETI&etat_administratif=A&per_page=1" -H "User-Agent: data-gouv-bys/0.1" | jq -r '.total_results')
echo "TAM: $TAM | SAM: $SAM | SOM (2%): $(echo "$SAM * 0.02" | bc)"
Pour récupérer la liste des dirigeants d'une boîte par SIREN
curl -s "https://recherche-entreprises.api.gouv.fr/search?q=552120222" -H "User-Agent: data-gouv-bys/0.1" | jq '.results[0].dirigeants'
Rules
- Always cite the source (data.gouv.fr / API Recherche d'entreprises, snapshot date)
- Never invent numbers — every figure must come from an actual API call
- Always show the 3 SOM scenarios (conservative / realistic / optimistic) — never a single point estimate
- Always show sensitivity (what changes if we widen/narrow one filter)
- Rate limit : 7 req/s max, add
User-Agentheader - If the user is doing market sizing standalone (no client folder), save the output to
market-size-<topic>-<date>.mdat the repo root or wherever the user is
Next step
"Le marché est validé. Si tu n'as pas encore les 10 ciblages, lance
/data-gouv-bys:ciblage. Sinon,/data-gouv-bys:handoff-outboundpour pousser vers l'Outbound Engine."
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.