SPB Git forge

spb/vrai-prix

Public

Vrai-Prix — l'évaluation du vrai prix des propriétés résidentielles au Québec.

60commits 1branches 0releases
12.3 MBsize
maindefault branch
17 days agolast push
TypeScript 90.2% JavaScript 3.5% Python 3.4% CSS 1.9% HTML 0.6%
6.3 KB · 39 lines typescript
Raw Blame History
1// Auteur : Simon-Pierre Boucher — contact@spboucher.ai2/**3 * Registre des sources de coûts (cost_sources). Module PUR.4 * license_status : public_open | public_restricted | licensed | manual_import | unknown | disabled5 * Une source `unknown` n'est jamais redistribuée publiquement avant validation.6 */7export type LicenseStatus = "public_open" | "public_restricted" | "licensed" | "manual_import" | "unknown" | "disabled";89export interface SourceSeed {10  key: string; // clé connecteur (ccq, apchq, statcan, canac…)11  name: string;12  sourceType: "labour" | "index" | "retail" | "benchmark" | "internal" | "reference";13  baseUrl: string | null;14  jurisdiction: string;15  licenseStatus: LicenseStatus;16  licenseNotes: string;17  termsUrl: string | null;18  isActive: boolean;19  priority: number; // 1 = la plus fiable20  refreshFrequency: string;21  /** qualité de source pour le score de confiance (0-1) */22  quality: number;23}2425export const SOURCE_SEEDS: SourceSeed[] = [26  { key: "apchq", name: "APCHQ — Coûts horaires de la main-d'œuvre", sourceType: "labour", baseUrl: "https://www.apchq.com/nos-services/relations-du-travail/paie/couts-horaires-et-paie/", jurisdiction: "QC", licenseStatus: "public_open", licenseNotes: "Grilles PDF publiées publiquement par l'APCHQ (résidentiel léger/lourd, IC, chantiers isolés), fondées sur les conventions collectives CCQ. Valeurs numériques et métadonnées conservées, URL citée.", termsUrl: "https://www.apchq.com/conditions-d-utilisation", isActive: true, priority: 1, refreshFrequency: "weekly", quality: 0.95 },27  { key: "ccq", name: "CCQ — Salaires et taux conventionnés", sourceType: "labour", baseUrl: "https://www.ccq.org/fr-CA/avantages-sociaux/salaire-taux", jurisdiction: "QC", licenseStatus: "public_open", licenseNotes: "Taux réglementés publiés par la Commission de la construction du Québec. Site en incident de sécurité (services fermés jusqu'au 2026-09-08) : connecteur en détection de changement.", termsUrl: "https://www.ccq.org/fr-CA/conditions-utilisation", isActive: true, priority: 1, refreshFrequency: "weekly", quality: 1.0 },28  { key: "statcan", name: "Statistique Canada — Indices des prix de la construction de bâtiments (18-10-0289-01)", sourceType: "index", baseUrl: "https://www150.statcan.gc.ca/t1/tbl1/fr/tv.action?pid=1810028901", jurisdiction: "CA", licenseStatus: "public_open", licenseNotes: "Licence ouverte de Statistique Canada. API WDS.", termsUrl: "https://www.statcan.gc.ca/fr/reference/licence", isActive: true, priority: 1, refreshFrequency: "quarterly", quality: 1.0 },29  { key: "canac", name: "Canac", sourceType: "retail", baseUrl: "https://www.canac.ca", jurisdiction: "QC", licenseStatus: "public_open", licenseNotes: "Prix affichés publiquement (fiches produit). robots.txt permissif. Observations de prix + URL, pas de copie de contenu.", termsUrl: "https://www.canac.ca/canac/fr/conditions-utilisation", isActive: true, priority: 2, refreshFrequency: "daily", quality: 0.85 },30  { key: "bmr", name: "BMR", sourceType: "retail", baseUrl: "https://www.bmr.ca", jurisdiction: "QC", licenseStatus: "public_open", licenseNotes: "Prix affichés publiquement (fiches produit SEO). Attention aux variantes « à partir de ».", termsUrl: "https://www.bmr.ca/fr/conditions-d-utilisation", isActive: true, priority: 2, refreshFrequency: "daily", quality: 0.85 },31  { key: "patrickmorin", name: "Patrick Morin", sourceType: "retail", baseUrl: "https://patrickmorin.com", jurisdiction: "QC", licenseStatus: "public_open", licenseNotes: "Prix affichés publiquement (fiches produit).", termsUrl: "https://patrickmorin.com/fr/conditions-d-utilisation", isActive: true, priority: 2, refreshFrequency: "daily", quality: 0.85 },32  { key: "rona", name: "RONA", sourceType: "retail", baseUrl: "https://www.rona.ca", jurisdiction: "QC", licenseStatus: "public_restricted", licenseNotes: "Protection Cloudflare ; recherche interdite par robots.txt (fiches produit permises). Activé seulement si les fiches sont stables.", termsUrl: "https://www.rona.ca/fr/conditions-d-utilisation", isActive: false, priority: 3, refreshFrequency: "daily", quality: 0.8 },33  { key: "homedepot", name: "Home Depot Canada", sourceType: "retail", baseUrl: "https://www.homedepot.ca", jurisdiction: "CA", licenseStatus: "public_restricted", licenseNotes: "Prix dépendants du magasin sélectionné (défaut hors Québec) — désactivé tant que la localisation Québec n'est pas fiable.", termsUrl: "https://www.homedepot.ca/fr/accueil/conditions-d-utilisation.html", isActive: false, priority: 3, refreshFrequency: "daily", quality: 0.75 },34  { key: "altus", name: "Altus Group — Canadian Cost Guide", sourceType: "benchmark", baseUrl: "https://www.altusgroup.com/featured-insights/canadian-cost-guide/", jurisdiction: "CA", licenseStatus: "public_restricted", licenseNotes: "Guide PDF gratuit derrière un formulaire d'inscription. Benchmarks $/pi² saisis par import manuel après téléchargement légal ; usage informatif seulement (avis de l'éditeur).", termsUrl: "https://www.altusgroup.com/terms-of-use/", isActive: true, priority: 2, refreshFrequency: "yearly", quality: 0.9 },35  { key: "rsmeans", name: "RSMeans / Gordian", sourceType: "reference", baseUrl: "https://www.rsmeans.com", jurisdiction: "US/CA", licenseStatus: "licensed", licenseNotes: "Données sous licence payante : import CSV/XLSX autorisé seulement (aucun scraping, aucune redistribution).", termsUrl: "https://www.gordian.com/terms-of-use/", isActive: false, priority: 2, refreshFrequency: "manual", quality: 0.9 },36  { key: "vp_internal", name: "Vrai-Prix — base interne (coût calibré, moteur)", sourceType: "internal", baseUrl: null, jurisdiction: "QC", licenseStatus: "public_open", licenseNotes: "Coût implicite calibré par la technique du résiduel sur les ventes réelles (duel des méthodes, /stats/marche). Benchmark de cohérence interne.", termsUrl: null, isActive: true, priority: 3, refreshFrequency: "monthly", quality: 0.7 },37  { key: "reference", name: "Vrai-Prix — prix de référence internes (hypothèses)", sourceType: "reference", baseUrl: null, jurisdiction: "QC", licenseStatus: "public_open", licenseNotes: "Prix de référence documentés pour les articles sans observation (béton livré, fermes, fenêtres sur mesure…). Toujours étiquetés « hypothèse », jamais présentés comme observés.", termsUrl: null, isActive: true, priority: 9, refreshFrequency: "manual", quality: 0.4 },38];39