SPB Git

spb/vrai-prix

Public

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

20.9 KB

Vrai-Prix — La valeur réelle de chaque propriété

Vrai-Prix

La valeur réelle de chaque propriété

Site Documentation PDF Nœud Port PM2

Propriétés Transactions Municipalités Logements Valeur médiane 2026 Croissance MdAPE

Next.js React TypeScript Tailwind SQLite Mapbox Claude Vitest ngrok Groupe KA remote-first

Vrai-Prix estime la valeur marchande de n'importe quelle propriété du Québec — unifamiliale, plex, condo, chalet, terrain — et montre pourquoi : chaque comparable, chaque ajustement en dollars, la pondération du modèle, la fourchette (P10–P90) et l'indice de confiance (A–D). Le différenciateur est la transparence totale : pas de score magique, pas de boîte noire. La méthodologie complète (normes IAAO) est publiée intégralement sur le site.

Sous le capot : les 6 millésimes (2021-2026) des rôles d'évaluation foncière géoréférencés du Québec (MAMH, données ouvertes) — 3 747 008 propriétés, soit 22 150 285 observations — fusionnés spatialement avec 745 119 transactions réelles (99,88 % d'appariement, distance médiane 0,6 m), alimentant un modèle hédonique LightGBM (MdAPE 11,0 %, ratio médian 0,995 en holdout) et un moteur de comparables ajustés. Pour qui ? Propriétaires, acheteurs, courtiers et curieux qui veulent une estimation honnête et vérifiable, gratuite, sur les 1 097 municipalités de la province.

# Chiffres clés (live sur /api/stats, vérifiés au 2026-08-24)

Métrique Valeur
Propriétés (unités d'évaluation) 3 747 008
Observations (6 millésimes 2021-2026) 22 150 285
Transactions réelles appariées 745 119 (99,88 %, distance médiane 0,6 m)
Logements couverts 4 400 551
Municipalités 1 097
Valeur totale du parc 2026 2 009 452 277 400 $ (≈ 2,01 billions $)
Valeur médiane 2026 444 300 $
Croissance 2021 → 2026 +43,1 %
Modèle hédonique LightGBM + comparables ajustés — MdAPE 11,0 %, ratio médian 0,995
Millésime de la base 2026 (dernier recalcul : 2026-08-08)

# Visite guidée

Accueil — desktop
Accueil — recherche d'adresse (desktop)
Accueil — mobile
Accueil — mobile
Fiche d'estimation
Fiche d'estimation — fourchette P10–P90 + indice de confiance
Portrait de la propriété
Portrait de la propriété — façade SVG + historique 2021→2026
Fiche — mobile
Fiche d'estimation — mobile
Vrai-Prix Maps
Vrai-Prix Maps — recherche par carte 3D (Mapbox GL)
Page municipalité
Page municipalité — agrégats et palmarès locaux
Statistiques provinciales
Statistiques provinciales — tableau de bord /stats
Méthodologie
Méthodologie publique — 7 sections, normes IAAO
Ka · agent IA
Ka · agent IA — 12 outils serveur (Claude, streaming SSE)

# Guide pas à pas (« Utiliser le site en 5 étapes », depuis /doc)

Étape 1 — accueil de Vrai-Prix
Étape 1 — Arriver sur l'accueil
Étape 2 — recherche d'adresse avec suggestions
Étape 2 — Chercher l'adresse
Étape 3 — fiche d'estimation avec fourchette et indice de confiance
Étape 3 — Lire la fiche d'estimation
Étape 4 — recherche par carte 3D
Étape 4 — Explorer par la carte
Étape 5 — tableau de bord statistiques
Étape 5 — Aller plus loin : statistiques, parc, agent Ka

# Fonctionnalités

  • Estimation par adresse — recherche plein-texte (SQLite FTS5) parmi 3 747 008 unités d'évaluation, tolérante aux fautes ; plan B sans adresse : estimation manuelle par municipalité + caractéristiques.
  • Estimation hybride — 65 % modèle hédonique LightGBM + 35 % comparables ajustés (marché, superficie, âge), fourchette P10–P90 par régression quantile, indice de confiance A–D obligatoire.
  • Portrait de la propriété — façade SVG dessinée par les données du registre, terrain à l'échelle, composition de la valeur ; historique 2021→2026 (six millésimes, badges YoY).
  • Vrai-Prix Maps — recherche par carte 3D (Mapbox GL via le framework partagé @groupe-ka/ka-maps), grappes de valeurs estimées pilotées par le viewport ; plan des comparables « arpenteur » en SVG pur.
  • Ka · agent IA — agent conversationnel (Claude, SDK Anthropic, streaming SSE) branché sur 12 outils serveur : evaluer_propriete, chercher_propriete, chercher_proprietes_secteur, comparables_detailles, comparer_proprietes, estimation_manuelle, evaluer_parc, dossier_complet, indice_marche, stats_municipalite, stats_provinciales, liens_rapports.
  • Rapports PDF 100 % vectoriels (pdfkit) — standard (3 p.), professionnel bancaire (6 p.), parc consolidé, statistique provincial.
  • Parc immobilier — évaluation multi-adresses agrégée (jusqu'à 40 propriétés).
  • Statistiques provinciales — valeur totale du parc (2,01 billions $ au millésime 2026), palmarès des 200 municipalités, tableau de bord /stats + rapports PDF v3 personnalisés (catalogue de blocs, ReportBuilder).
  • Contexte marché — indice de marché, fourchette visuelle, accueil enrichi (upgrade 2026-08-22).
  • SEO programmatique — 3,76 M d'URLs indexables : 1 097 pages municipalités + ~5 900 pages municipalité × type + 3,75 M fiches d'estimation SSR avec métadonnées uniques, JSON-LD, sitemaps générés à la volée.
  • KA ID — connexion unique du Groupe KA (SSO signé via le hub groupe-ka.com, sans base d'utilisateurs) + favoris « Mon univers Ka ».
  • Bilingue FR/EN, méthodologie publique (7 sections, IAAO), conformité Loi 25, app compagnon iOS SwiftUI (dépôt séparé).

# Architecture

text
Rôles d'évaluation MAMH 2021-2026 (6 millésimes × ~3,7 M unités)
        │ fusion spatiale XY (EPSG:32198) — kNN k=25 ≤200 m
        ▼
745 119 transactions enrichies ──▶ modèle hédonique LightGBM (log-prix,
                                    18 variables + quantiles P10/P90)
        ▼
Application Next.js 16 (App Router) — SQLite better-sqlite3 (units + FTS5
+ transactions + indice de marché) · moteur de comparables (src/lib/engine.ts)
· Ka Maps (Mapbox GL) · agent Ka (Claude + 12 outils) · rapports pdfkit
· SSO KA ID · SEO programmatique
  • Frontend / API : Next.js 16.3 (App Router), React 19, TypeScript strict, Tailwind CSS 4 — tout est servi par une seule app (pages SSR + routes /api/*).
  • Base de données : SQLite (data/vraiprix.db, ~1,5 Go, non versionnée) via better-sqlite3 — 3,75 M unités, FTS5, index spatiaux, mode WAL.
  • Modèle : pipeline externe LightGBM / scikit-learn (réentraînement : scripts/hedonic-retrain.py), estimations pré-calculées injectées dans la base (dernière ré-estimation sur le nœud : 2026-08-22, terrain/autre + recalibrage P10/P90).
  • Agent Ka : SDK Anthropic (@anthropic-ai/sdk), streaming SSE, 12 outils serveur, garde anti-hallucination sur les liens PDF.
  • PDF : pdfkit (rapports 100 % vectoriels, aucune capture d'écran).
  • Tests : Vitest (moteur d'estimation, npm run test) + Playwright (captures : scripts/screenshots.mjs).

# API — endpoints principaux (21 routes)

Endpoint Méthode Rôle
/api/search GET recherche plein-texte d'adresses (FTS5, tolérante aux fautes)
/api/estimate GET estimation hybride d'une unité (modèle + comparables, P10–P90, confiance A–D)
/api/nearby GET unités voisines / grappes pour la carte
/api/ka POST agent Ka (Claude, streaming SSE, 12 outils serveur)
/api/portfolio POST évaluation de parc immobilier multi-adresses (≤ 40)
/api/report GET rapport PDF standard (3 p.)
/api/report/pro GET rapport PDF professionnel bancaire (6 p.)
/api/report/portfolio GET rapport PDF de parc consolidé
/api/report/stats GET rapport PDF statistique provincial
/api/stats GET agrégats provinciaux publics (source des pastilles dynamiques ci-dessus)
/api/stats/catalog · /api/stats/dashboard GET catalogue de blocs + tableau de bord (kit stats v3 Groupe KA)
/api/stats/report · /api/stats/report/custom GET/POST rapports PDF v3 (modèles + personnalisés)
/api/auth/ka/login · /api/auth/ka/callback GET SSO KA ID (hub groupe-ka.com)
/api/auth/me · /api/auth/logout GET/POST session KA ID
/api/favorites · /api/favorites/toggle GET/POST favoris « Mon univers Ka »
/api/lead POST prise de contact / lead

# Données & conformité

Source Contenu Volume Mise à jour
MAMH — rôles d'évaluation foncière géoréférencés (données ouvertes, Données Québec) 6 millésimes 2021-2026, caractéristiques complètes des unités 3 747 008 propriétés · 22 150 285 observations à chaque millésime annuel (réingestion scripts/)
Transactions réelles (fusion spatiale XY, EPSG:32198) prix de vente appariés aux unités (99,88 %, distance médiane 0,6 m) 745 119 transactions lors du réentraînement du modèle
Connecteur « nouvelles ventes » (JdM / api.qub.ca) ingestion incrémentale de transactions récentes à la demande scripts/ingest-jdm.mjs (process PM2 vrai-prix-ingest)
Modèle hédonique LightGBM log-prix, 18 variables, quantiles P10/P90 — MdAPE 11,0 %, ratio médian 0,995 estimations pré-calculées sur ~3,75 M unités réentraînement scripts/hedonic-retrain.py (hors ligne)
  • Contrairement aux apps à connecteurs du Groupe KA, Vrai-Prix ne dépend d'aucune synchronisation horaire : la base est pré-calculée et versionnée par millésime — l'app sert les estimations en lecture seule.
  • Méthodologie publique (7 sections, normes IAAO) publiée intégralement sur le site ; chaque estimation affiche ses comparables, ses ajustements et son indice de confiance.
  • Disclaimer : estimations statistiques à titre indicatif — elles ne remplacent pas une évaluation par un évaluateur agréé (OEAQ).
  • Vie privée : conformité Loi 25 ; SSO KA ID sans base d'utilisateurs locale ; analytics première partie (admin-ka /collect), aucun script publicitaire (Monetag retiré le 2026-08-23).

# Structure du repo

Répertoire Rôle
src/app/ pages App Router (accueil, estimation/[id], municipalite/[slug]/[type], carte, ka, parc, stats, favoris, sitemaps/robots) + routes /api/*
src/components/ SearchBox, ResultView, MetricViz, RadarMap, KaCarte, KaChat, StatsView…
src/lib/ moteur de comparables (engine.ts), accès DB, agrégats municipalités, agent Ka (ka/), SSO KA ID, générateurs PDF (report*.ts), SEO, i18n
data/ base SQLite vraiprix.db (non versionnée)
scripts/ réentraînement hédonique, build des stats, ingestion (dont ingest-jdm.mjs), captures Playwright
docs/ pipeline de données (PIPELINE-DONNEES.md), notes Ka Maps, captures d'écran
public/ assets statiques (favicons, OG, polices) + guide /doc (page, images, PDF)
ios/ ressources de l'app compagnon iOS (SwiftUI)
assets/ matériel graphique du projet

# Démarrage rapide

bash
ssh M3U96a && cd ~/apps/vrai-prix
npm install                # dépendances (au besoin)
npm run test               # Vitest — moteur d'estimation (src/lib/engine.test.ts)
npm run lint               # ESLint 9 + config Next
npm run dev                # serveur de développement (next dev)
npm run build              # build de production
npm start                  # next start (en prod : PM2, voir Déploiement)

# Développement (remote-first)

⚠️ La source de vérité est le repo git sur le nœud M3U96a (~/apps/vrai-prix) — on n'édite jamais les copies laptop. Toute modification se fait sur le nœud via SSH : édition, build, redémarrage, puis commit + push depuis le nœud.

bash
cd ~/apps/vrai-prix
npm run build              # après changement de code
pm2 restart vrai-prix
git add <fichiers> && git commit -m "…" && git push origin main

# Variables d'environnement

Noms seulement — aucun secret n'est versionné (.env.local sur le nœud).

Variable Rôle
VRAIPRIX_DB chemin de la base SQLite (data/vraiprix.db)
NEXT_PUBLIC_SITE_URL URL canonique du site (SEO, sitemaps)
NEXT_PUBLIC_MAPBOX_TOKEN carte 3D Vrai-Prix Maps (jeton public)
ANTHROPIC_API_KEY agent Ka (Claude)
KA_SSO_SECRET · KA_AUTH_SECRET signature SSO / session KA ID
KA_HUB_URL · KA_BASE_URL hub groupe-ka.com + URL de rappel du site

# Déploiement

Nœud M3U96a (Mac Studio M3 Ultra, cluster MacLustr) — ~/apps/vrai-prix
Port 8090
Domaine www.vrai-prix.com via tunnel ngrok
Processus PM2 Commande réelle Rôle
vrai-prix next start -H 0.0.0.0 -p 8090 l'app Next.js — pages SSR + API
vrai-prix-ngrok ngrok http --url=www.vrai-prix.com 8090 tunnel vers www.vrai-prix.com
vrai-prix-ingest node scripts/ingest-jdm.mjs connecteur incrémental « nouvelles ventes » — lancé à la demande, arrêté au repos
bash
# sur M3U96a, après un changement :
cd ~/apps/vrai-prix && npm run build && pm2 restart vrai-prix
pm2 logs vrai-prix --lines 30

# Documentation

  • Guide utilisateur en ligne : www.vrai-prix.com/doc/index.html — à quoi sert le site, utilisation en 5 étapes, provenance des données, FAQ.
  • Guide PDF téléchargeable : vrai-prix-documentation.pdf.
  • Méthodologie complète (normes IAAO, 7 sections) : publiée sur le site.
  • Docs internes : docs/ (pipeline de données PIPELINE-DONNEES.md, notes Ka Maps, captures).

# Historique

Date Jalon
2026-08-08 naissance du projet ; 08-09 : moteur d'évaluation transparent v1 + agent Ka (Claude, streaming, 11 puis 12 outils)
2026-08-13 Vrai-Prix Maps (framework Ka Maps), SSO KA ID, SEO programmatique (sitemaps 3,7 M de fiches)
2026-08-17 harmonisation Groupe KA (ka-ui, footer commun) + API publique /api/stats + assets OG
2026-08-19 stats v2 (/stats ultra complet + 5 rapports PDF), KA Agent v2 plein écran, socle mobile
2026-08-22 ré-estimation hédonique sur le nœud (terrain/autre + recalibrage P10/P90), connecteur « nouvelles ventes » JdM, upgrade apparence (contexte marché, fourchette visuelle)
2026-08-23/24 stats v3 (rapports PDF personnalisés), favoris « Mon univers Ka », page /doc + PDF, README v3

# Écosystème Groupe KA

Site Univers
groupe-ka.com portail
lou-ka.com logements à louer
immo-ka.com propriétés à vendre
vrai-prix.com estimation immobilière
auto-ka.com véhicules
fabri-ka.com produits québécois
food-ka.com épicerie / alimentation
resto-ka.com restaurants
sorti-ka.com sorties et événements
job-ka.com emplois
crea-ka.com créateurs
trouve-ka.com petites annonces
api-ka.com API de données

# Contact

Simon-Pierre Boucher — fondateur, Groupe KA 📧 contact@spboucher.ai


© Groupe KA — Simon-Pierre Boucher · contact@spboucher.ai

Ce dépôt vit sur spbgit (git perso — https://git.spboucher.ai). Estimations statistiques à titre indicatif — elles ne remplacent pas une évaluation par un évaluateur agréé (OEAQ).

Files · d2a75de81caf185050f2d57989b8d9e762d7ffd3
Menu

Theme