[ Les sources de données publiques ]
Trouver le chiffre d'affaires d'une entreprise, et pourquoi souvent on ne peut pas
C'est le critère que tout le monde demande en premier pour segmenter un fichier, et celui qui manque le plus souvent. Non pas parce que les bases sont mauvaises, mais parce que la loi autorise les entreprises à ne pas publier leurs comptes, et qu'elles s'en servent massivement.
L'obligation de dépôt, et ses trois portes de sortie
Les sociétés commerciales doivent déposer leurs comptes annuels au greffe dans le mois qui suit leur approbation. Jusque-là, la règle est simple. Ce qui l'est moins, c'est ce qui arrive ensuite au document.
- Les micro-entreprises au sens comptable peuvent demander que l'ensemble de leurs comptes reste confidentiel. Seule l'administration y a accès.
- Les petites entreprises peuvent demander la confidentialité de leur seul compte de résultat : le bilan reste public, mais le chiffre d'affaires disparaît.
- Beaucoup ne déposent tout simplement pas, malgré l'obligation. La sanction existe mais est rarement appliquée d'office.
Où chercher
- Les comptes déposés, consultables au greffe et diffusés en données ouvertes pour ceux qui ne sont pas confidentiels.
- Le BODACC, qui annonce les dépôts : savoir qu'une société dépose ses comptes est déjà une information.
- Les documents que l'entreprise publie elle-même : rapport annuel, communiqué, page « chiffres clés » du site. Pour les entreprises d'une certaine taille, c'est souvent plus à jour que le greffe.
- Les indicateurs de substitution, quand le chiffre n'existe pas : tranche d'effectif, nombre d'établissements, ancienneté, forme juridique, capital social.
Lire un bilan sans être comptable
Deux documents, deux questions différentes. Le bilan est une photographie à une date : ce que l'entreprise possède d'un côté, ce qu'elle doit de l'autre. Le compte de résultat est un film sur douze mois : ce qu'elle a vendu, ce que ça lui a coûté, ce qu'il reste.
| Ce qu'on regarde | Où | Ce que ça dit |
|---|---|---|
| Chiffre d'affaires | Compte de résultat | La taille réelle de l'activité |
| Résultat net | Compte de résultat | Ce qui reste après tout |
| Capitaux propres | Bilan, au passif | Négatifs, c'est un signal d'alerte sérieux |
| Trésorerie | Bilan, à l'actif | La capacité à passer un trou d'air |
| Effectif moyen | Annexe | Souvent plus fiable que la tranche déclarée |
Segmenter sans chiffre d'affaires
Puisque le chiffre manque pour la majorité du parc, autant construire sa segmentation sur ce qui est présent partout. La tranche d'effectif est déclarée pour l'ensemble des employeurs. Le nombre d'établissements distingue immédiatement l'indépendant du réseau. L'ancienneté sépare la structure installée de celle qui démarre. La forme juridique trie les holdings, les SCI et les associations.
Approcher la taille d'une entreprise par le capital et la tranche d'effectif, en isolant les effectifs non renseignés
Le chiffre d'affaires manque pour la majorité du parc, mais deux critères de taille sont, eux, filtrables : la tranche d'effectif salarié et le capital social. Vous obtenez une segmentation par taille qui tient, à deux conditions : savoir que ces filtres écartent en silence les fiches dont la valeur est absente, et mesurer combien elles sont avant de conclure. Le comptage est gratuit, ce qui rend la mesure abordable ; il n'est pas exact pour autant, et la fin de ce mode dit à partir de quel volume.
Dans la plateforme, pas à pas
- Ouvrez la recherche entreprises et posez d'abord votre ciblage habituel, sans aucun critère de taille : l'activité, la localisation, la bascule « Entreprises actives uniquement ».
- Ajoutez dès maintenant au ciblage un critère du registre : année de création, forme juridique, SIREN, ou une borne de capital. C'est ce qui restreint la recherche au registre, seule source à porter un champ d'effectif exploitable, et donc ce qui rend l'écart des étapes suivantes interprétable.
- Relevez le compteur de la barre de pagination, de la forme « 1 - 25 sur N entreprises ». C'est votre référence.
- Dépliez le bloc « Employés » et saisissez vos bornes, par exemple 20 dans le champ de gauche et 249 dans celui de droite. Laissez le champ de droite vide pour dire « et plus » : une borne haute inférieure à la borne basse est abandonnée, pas appliquée.
- Regardez la chute du compteur. Elle mélange deux choses différentes : les entreprises hors de votre fourchette, et celles dont l'effectif n'est pas renseigné.
- Pour séparer les deux, remettez 0 dans le champ de gauche et videz celui de droite. Un 0 n'est pas un champ vide : il part bien dans la requête. Cette fourchette ouverte garde toutes les fiches dont la taille est déclarée, y compris celles à zéro salarié. L'écart avec le compteur de l'étape 3 est le nombre d'entreprises sans effectif connu.
- Pour le capital, dépliez le bloc « Capital (€) » et saisissez vos bornes en euros. Le capital ne figure que sur les fiches du registre : poser une borne y restreint la recherche.
Le bloc « Employés » porte une infobulle qui le dit sans détour : l'effectif n'est renseigné que pour environ 1 entreprise sur 15, et le filtre exclut automatiquement celles dont l'effectif est inconnu. La tranche « 0 salarié » est une valeur comme « 10 à 19 salariés » : elle passe le filtre. La mention « Non renseigné » du registre, elle, n'a aucune borne numérique, donc aucune fourchette ne peut la retenir. Trois réserves. L'interface n'a pas de sélecteur de source : le seul moyen d'y restreindre la recherche au registre est le critère de l'étape 2 (année de création, forme juridique, capital, SIREN), qui écarte alors les fiches Google et les fiches LinkedIn. Sans lui, votre soustraction mélange trois populations : les fiches Google, qui ne portent aucun champ de taille et sortent entièrement du second comptage, les fiches LinkedIn, qui restent mais sont filtrées sur leur bande déclarée, et les vraies fiches du registre sans effectif. Enfin le capital est absent des entrepreneurs individuels, qui n'en ont pas : un filtre de capital les écarte tous, ce qui est parfois exactement ce que vous cherchez. Dernier point sur le compteur lui-même : au-delà de 2 000 résultats, il cesse d'être un décompte dédupliqué et devient une somme, donc une valeur haute. Sur une recherche restreinte au registre l'écart reste faible, mais raisonnez en ordre de grandeur, pas à l'unité.
Par l'API : POST /companies/find
{
"countOnly": true,
"filters": {
"source": "Legal",
"company_ceased": false,
"activity": { "include": ["btp_global"] },
"region": { "include": ["Auvergne-Rhône-Alpes"] },
"capital_min": 50000,
"headcount_min": 20,
"headcount_max": 249
}
}Un objet { success, total, totalEstimated, establishmentsTotal, leads, meta }. En mode countOnly, leads est vide et aucun crédit n'est débité : c'est ce qui rend la mesure par soustraction gratuite. Jouez le même corps trois fois, en gardant TOUT le reste du ciblage figé (source, activité, région, capital) et en ne touchant qu'aux bornes d'effectif : sans headcount_min ni headcount_max pour le total de référence, puis avec headcount_min à 0 seul pour compter les fiches dont la taille est déclarée, puis avec vos vraies bornes. La différence entre les deux premiers totaux est le nombre d'entreprises sans effectif renseigné. Lisez `totalEstimated` avant d'en tirer un chiffre : à vrai, le total n'est plus un décompte dédupliqué mais une somme, et votre écart est un ordre de grandeur. Repassez ensuite countOnly à false et ajoutez "limit": 50 pour récupérer les fiches, à raison d'un crédit par fiche renvoyée.
source: "Legal" n'est pas décoratif : c'est lui qui met les trois comptages sur le même périmètre. Une fourchette d'effectif écarte de toute façon les fiches Google, qui ne portent aucun champ de taille, mais elle laisse la source LinkedIn dans le calcul en la filtrant sur sa bande déclarée : sans restriction de source, l'écart mesuré mélange deux définitions du « non renseigné ». capital_min et capital_max, eux, ne concernent que le registre et restreignent déjà la recherche à cette source à eux seuls. Sur la forme : le corps de /companies/find prend limit, paginationToken et countOnly, pas de bornes from et to. Une clé d'API doit poser au moins un filtre réellement effectif, un corps sans filtre est refusé en 400. Et le comptage par clé d'API est plafonné à 100 000, sauf précisément en mode countOnly, qui en est exempté : c'est une raison de plus de compter avant d'extraire.
Le détail des champs, des filtres et des codes de réponse est dans la documentation de l'API.
Avec Claude, en langage courant
Dans le BTP en Auvergne-Rhône-Alpes, en restant sur les fiches du registre, combien d'entreprises actives ont entre 20 et 249 salariés, et combien n'ont tout simplement pas d'effectif renseigné ? Donne-moi d'abord les comptages, la liste ensuite.
Claude enchaîne basile_activity_suggest, basile_count puis basile_search_companies.
basile_count est gratuit et n'est pas plafonné : les trois comptages nécessaires à la soustraction ne coûtent rien. Il ne rend pas pour autant un chiffre au contact au-delà de quelques milliers de résultats, où le total devient une valeur haute : demandez un ordre de grandeur, et restez sur une seule source pour que les trois comptages soient comparables. C'est basile_search_companies qui facture, un crédit par fiche renvoyée, à chaque appel : demandez donc les comptages avant la liste, et ne réclamez que le nombre de fiches réellement utile. basile_activity_suggest donne l'identifiant de concept à mettre dans activity, plutôt qu'un code NAF deviné.
Comparer la tranche d'effectif du registre et la bande de taille affichée sur LinkedIn dans le même export
Faute de chiffre d'affaires, deux mesures indépendantes de la taille valent mieux qu'une estimation. L'export d'entreprises porte les deux sur la même ligne : la tranche d'effectif salarié du registre d'un côté, la bande de taille déclarée sur la page LinkedIn de l'autre. Quand elles concordent, la taille est solide ; quand elles divergent, vous savez au moins que vous ne savez pas.
Dans la plateforme, pas à pas
- Lancez votre recherche entreprises avec votre ciblage habituel.
- Sélectionnez les résultats : « Sélectionner la page » pour un essai, « Sélectionner tous les résultats » pour l'ensemble.
- Cliquez sur « Exporter CSV ». La fenêtre « Que veux-tu exporter ? » propose deux formes : prenez « Les entreprises (1 ligne par entreprise) ». L'autre option, « Les localisations Google (1 ligne par point de vente) », répéterait la même entreprise autant de fois qu'elle a d'établissements.
- Dans le fichier, la mesure du registre est legal_tranche_effectif, en clair (« 10 à 19 salariés », « 0 salarié », « Non renseigné »), doublée de ses bornes numériques legal_effectif_min et legal_effectif_max. La mesure LinkedIn est company_headcount_band_lki, une bande du type « 11-50 ».
- Lisez d'abord les deux colonnes de contrôle, has_legal_match et has_lki_company_enrichment : elles disent laquelle des deux moitiés a trouvé sa source. Une ligne où l'une des deux est fausse n'est pas une divergence, c'est une absence.
- legal_capital figure sur la même ligne si vous voulez un troisième point de comparaison.
L'export d'entreprises compte 57 colonnes et l'en-tête du CSV porte les noms techniques, ceux cités ci-dessus. Les deux moitiés de la ligne ne viennent pas de la même fiche : elles sont rapprochées par le domaine et par la résolution du groupe légal, ce qui explique qu'un rapprochement puisse être vide. Deux pièges de lecture. has_legal_match passe à vrai dès qu'un SIREN est attaché, même sans fiche registre chargée : le juge de paix reste la présence d'une valeur dans legal_tranche_effectif. Et la colonne company_headcount_lki, présente elle aussi, n'est pas une seconde mesure d'effectif : c'est le compteur brut de la page LinkedIn, celui que l'interface expose sous le libellé « Followers ». Il sous-compte et contredit la bande déclarée sur près d'une fiche sur deux, raison pour laquelle le filtre Employés interroge la bande et pas lui. Sur le fond, les deux mesures retenues ne disent pas la même chose : le registre publie une tranche d'effectif salarié déclarée à l'administration, LinkedIn affiche une bande que l'entreprise renseigne elle-même sur sa page, et qui compte les profils rattachés. Un écart n'est donc pas forcément une erreur, c'est souvent une différence de définition. La colonne fill_score, elle, note de 0 à 100 la couverture des sources sur la ligne : ce n'est pas une mesure de taille.
Par l'API : POST /companies/export
{
"filters": {
"company_ceased": false,
"activity": { "include": ["btp_global"] },
"region": { "include": ["Auvergne-Rhône-Alpes"] },
"headcount_min": 50
},
"mode": "companies"
}Un CSV renvoyé en flux, 57 colonnes, une ligne par entreprise. Les colonnes qui portent la comparaison sont legal_tranche_effectif, legal_effectif_min et legal_effectif_max d'un côté, company_headcount_band_lki de l'autre, avec legal_capital en appoint. has_legal_match et has_lki_company_enrichment indiquent, ligne par ligne, si chaque moitié a bien été rapprochée. Ici, contrairement au mode précédent, ne restreignez pas la source : la comparaison a besoin des deux, le registre et LinkedIn.
mode vaut « companies » par défaut : c'est celui qu'il faut ici. « locations » produit une ligne par établissement Google et répète la comparaison autant de fois. Attention à la portée du filtre headcount_min dans cet appel : il écarte les fiches sans taille déclarée, des deux côtés (une fiche du registre sans tranche, une page LinkedIn sans bande), donc l'export ne contiendra pas les lignes où la question de la taille reste ouverte. Pour les garder, exportez sans borne de taille et faites le tri dans le fichier. Comme sur /companies/find, une clé d'API doit poser au moins un filtre réellement effectif, sinon 400. Pour un gros volume, préférez l'export asynchrone : POST /exports avec { "source": "companies", "mode": "companies", "filters": { ... } }, puis GET /exports/{jobId} et GET /exports/{jobId}/download. C'est le chemin fiable, /companies/export répondant en flux dans la requête.
Le détail des champs, des filtres et des codes de réponse est dans la documentation de l'API.
Avec Claude, en langage courant
Exporte les entreprises du BTP de plus de 50 salariés en Auvergne-Rhône-Alpes, puis dis-moi sur combien de lignes la tranche d'effectif du registre et la bande de taille affichée sur LinkedIn se contredisent.
Claude enchaîne basile_activity_suggest, basile_count puis basile_export.
basile_export rend le CSV directement dans la conversation et refuse au-delà de 500 lignes : un chat ne peut pas avaler un gros fichier. Comptez donc d'abord avec basile_count, qui est gratuit, et resserrez si nécessaire (un département, une tranche d'effectif, une année de création) ; au-delà, passez par l'export de la plateforme, qui produit un fichier téléchargeable. Le pré-comptage que fait basile_export avant de refuser ne consomme rien. L'export, lui, consomme le quota d'export de votre forfait.
À lire ensuite
- Le registre national des entreprises : ce qu'il contient vraimentLe RNE a remplacé le registre du commerce et le répertoire des métiers. Ce qu'il publie, ce qu'il garde confidentiel, et comment le télécharger en entier.
- Comment savoir si une entreprise est en difficultéLa méthode pour vérifier gratuitement si une société est en procédure collective, et les signaux qui apparaissent avant le jugement.
- Segmenter un marché B2B français : les critères qui existent vraimentLes critères de segmentation réellement disponibles sur les entreprises françaises, ceux qui manquent, et comment définir un profil de client idéal exploitable.