SPB Git forge

spb/qc-election

Public
20commits 1branches 0releases
4.9 MBsize
maindefault branch
19 days agolast push
Python 66.6% HTML 24.8% CSS 4.9% JavaScript 3.6%
5.4 KB

# DATA SOURCE AUDIT — QC Élection Forecast v3 « 127 »

Inventaire réel des sources (ADDENDUM §42). Hiérarchie : TIER 1 officiel > TIER 2 maisons de sondage > TIER 3 grands médias > TIER 4 plateformes sociales > TIER 5 agrégateurs. Quand une source de tier supérieur contredit une source de tier inférieur, la source supérieure a raison (ex. DGEQ > Wikipédia).

Source Tier Type URL Données Fréquence Historique Collecteur Statut
Élections Québec (DGEQ) 1 officiel electionsquebec.qc.ca · donnees.electionsquebec.qc.ca carte 2026 (GeoJSON 127), candidatures + sortants, partis autorisés + chefs, électeurs/circ. (si publié), résultats soir du vote chaque cycle (carte/candidatures) · hebdo (partis/chefs) résultats 2018-2022 ingest/dgeq.py, ingest/elections_quebec.py ✅ actif
Wikipédia EN (sondages) 5 agrégateur en.wikipedia.org/wiki/2026_Quebec_general_election sondages 2022→2026 (sections « Opinion polls »/« Campaign period », ventilations exclues), retraits, résultats 2022/2018 par circ. chaque cycle (3 h campagne / 6 h) 2022 complet ingest/wikipedia.py ✅ actif
Wikimedia pageviews 5 attention wikimedia.org/api/rest_v1 pageviews quotidiens partis+chef·fe·s (fr.wiki), base 180 j chaque cycle 180 j glissants ingest/wiki_attention.py ✅ actif
Léger (baromètre) 2 sondeur leger360.com (via veille) % satisfaits du gouvernement → prior de fondamentaux mensuel (détection auto) reconstitution 1998-2022 dans fundamentals.py ingest/firecrawl_watch.py ✅ actif (40 % capté 2026-08-11)
Presse QC (RSS) 3 média Radio-Canada, Le Devoir, La Presse manchettes politiques → stance/sentiment chaque cycle depuis 2026-08 ingest/news_rss.py ✅ actif
Presse élargie (Firecrawl search) 3 média api.firecrawl.dev articles hors RSS (JdM/JdQ, TVA, régionaux via index), radar de NOUVEAUX sondages chaque cycle ingest/firecrawl_watch.py ✅ actif
Polymarket (Gamma) 5 marché gamma-api.polymarket.com P(plus de sièges) implicite, volume 15 min (cache) ingest/markets.py ✅ actif (ensemble 88/12)
Actor Apify qc-social-pulse 4 social api.apify.com (actor aI5AYtFfeDn3KAanf, compte gorgeous_thistle) IG/FB/TikTok comptes officiels (OWNED, engagement seulement) + YouTube recherche & COMMENTAIRES PUBLICS (discussion) chaque cycle journalisé apify_runs ingest/social_pulse.py + apify/qc-social-pulse/ ✅ actif
Reddit r/Quebec 4 social via index Google (Serper) titres + extraits réels (discussion publique) chaque cycle ingest/social_pulse.py ✅ actif (accès direct/RSS/proxy/BrightData tous murés — testés 2026-08-30)
Mastodon 4 social mastodon.social, mstdn.ca (tags publics) posts #quebec/#polqc/#assnat chaque cycle ingest/social_pulse.py ✅ actif
Lemmy.ca 4 social lemmy.ca/api/v3 posts politiques QC chaque cycle ingest/social_pulse.py ✅ actif
Bluesky 4 social public.api.bsky.app recherche de posts ❌ 403 même en résidentiel (testé 2026-08-30) — candidat actor avec session
X/Twitter 4 social syndication actor best-effort ⚠️ endpoints publics morts; nécessite actor avec session (à évaluer)
Google Trends 5 attention ⏳ non branché (pytrends instable; l'attention Wikipédia couvre le besoin)
Statistique Canada (Recensement 2021) 1 population www12.statcan.gc.ca âge, langue, revenu, locataires, scolarité, densité par AD statique + estimations 2021 ⏳ Phase D ⏳ planifié — voir POPULATION_FEATURES.md
ISQ 1 population/éco statistique.quebec.ca estimations démographiques récentes, séries QC ⏳ Phase D ⏳ planifié
Assemblée nationale 1 officiel assnat.qc.ca ministres, fonctions, biographies ⏳ Phase E (candidate features) ⏳ planifié

# Registres (config/, versionnés git)

  • backend/config/social_seeds.json — comptes des partis/chef·fe·s avec provenance (official_site = vérifié, search = pending_review) + date de vérification. Découverte/promotion automatique hebdomadaire (ingest/social_account_discovery.py)
    • alertes dérive-chef/compte-social.
  • backend/config/social_queries.json — requêtes sociales versionnées (partis, chefs, enjeux, tags).
  • SOCIAL_ACCOUNT_REGISTRY.csv — export plat du registre (généré).

# Règles appliquées

  1. Aucun compte inventé — provenance + date pour chaque handle (§ addendum).
  2. OWNED (contenu des partis) ≠ EARNED (discussion citoyenne) : les comptes officiels n'alimentent QUE l'indice d'engagement; seuls les contenus citoyens (commentaires YouTube, Reddit, Mastodon, Lemmy) entrent dans le sentiment (social_posts.content_class).
  3. « 20 000 posts » ≠ « 20 000 personnes » — les libellés publics parlent de publications/comptes observés, jamais d'électeurs.
  4. Un échec d'acteur/de source n'empêche jamais la publication du forecast (isolation par étape + apify_runs + data-health).