SPB Git forge

spb/valoplex

Public

ValoPlex — moteur d'évaluation spécialisé pour les plex au Québec, petit frère de Vrai-Prix.

11commits 1branches 0releases
2.4 MBsize
maindefault branch
20 days agolast push
TypeScript 91.9% Python 6% CSS 2.1%
ZIP tar.gz
NameLast commitUpdated
app Mon univers Ka : SSO KA ID + favoris unifiés au hub Groupe KA 1 mo ago
docs docs: README ultra détaillé + visite guidée en 10 captures... 27 days ago
scripts feat: ValoPlex — moteur d'évaluation spécialisé plex du Québec 1 mo ago
.gitignore docs: README ultra détaillé + visite guidée en 10 captures... 27 days ago
README.md chore(retrait cluster): synchro copie du nœud M3U96a + README « URL... 20 days ago
README.md source

⚠️ URL live hors fonction pour le moment. L'application a été retirée du cluster MacLustr le 2026-09-04 (processus arrêtés, copie du nœud supprimée). Ce dépôt spbgit est désormais la seule source de vérité du projet. Ancienne URL : https://www.valoplex.com

# ValoPlex

La vraie valeur de votre plex, porte par porte. Le moteur d'évaluation spécialisé plex du Québec — 393 867 immeubles de 2 logements et plus, 1 733 744 portes, un modèle hédonique en ratio à l'épreuve des échelles.

Plex Portes Ventes MdAPE Couverture Valeur totale Tests Next.js TypeScript

En production : www.valoplex.com · un service Groupe Ka · petit frère spécialisé de Vrai-Prix


# Visite guidée

Captures du 2026-08-28 — desktop 1440×900, mobile 390×844.

# 1 · Accueil — « Votre plex vaut combien, porte par porte ? »

Accueil

Le hero éditorial pose la promesse : un moteur spécialisé plex (Québec, 2021-2026), pas un estimateur généraliste. Bandeau-marquee des chiffres clés (1 733 744 portes, 91 060 ventes, fourchette P10-P90 calibrée à 80 %, « zéro boîte noire »), compteurs officiels, puis la recherche d'adresse plein texte sur les 393 867 plex indexés (FTS5). Sources affichées en toutes lettres : rôles d'évaluation foncière du Québec (MAMH) et ventes de plex publiées.

# 2 · Ka · agent IA — « il pense en portes, en cashflow et en TGA »

Agent Ka

/ka : l'agent conversationnel de la maison, propulsé par Claude. 13 outils branchés sur le registre, le moteur d'évaluation et le pro forma : on lui donne une adresse, il retrouve le plex, l'évalue porte par porte, puis monte le pro forma investisseur complet (loyer implicite, hypothèque, DSCR, projection 5 ans) — réponse en streaming, suggestions prêtes à cliquer.

# 3 · Méthodologie — le calcul, montré en entier

Méthodologie

/methodologie : la page qui tient la promesse « zéro boîte noire » — modèle hédonique en ratio log(prix / valeur au rôle), rétrécissement hors domaine au-delà de 12 portes, calibration conforme des fourchettes par gabarit, validation IAAO sur ventes jamais vues. Tout le raisonnement du moteur, expliqué au lecteur.

# 4 · Statistiques — 400 638 996 500 $, au dollar près

Statistiques

/stats : la somme des 393 867 estimations ValoPlex — 400,6 G$ de plex au Québec (millésime 2026), soit 43 973 $ par Québécois·e, ×2,4 budgets annuels de la province, +40 % depuis 2021 à périmètre constant. Valeur médiane 751 900 $, 128,5 km² de plancher bâti, 1 124,6 km² de terrains, 1 065 municipalités. Rapport statistique provincial en PDF + rapport personnalisé à la carte.

# 5 · Parc immobilier — le portefeuille au complet

Parc

/parc : pour les propriétaires multiples et investisseurs — on ajoute jusqu'à 40 plex, ValoPlex évalue chaque immeuble puis agrège le parc (valeur totale, fourchette, croissance 2021→2026) et produit un rapport PDF consolidé.

# 6 · Conditions d'utilisation

Conditions

/conditions : cadre d'usage honnête — estimations statistiques à titre indicatif qui ne remplacent ni une évaluation par un évaluateur agréé (OEAQ) ni un conseil financier, licence des données ouvertes MAMH, limites de responsabilité.

# 7 · Politique de confidentialité

Confidentialité

/confidentialite : données collectées, témoins (bannière de consentement), compte KA ID, droits des utilisateurs — rédigée pour le cadre québécois (Loi 25).

# 8 · Favoris — « Mon univers Ka »

Favoris

/favoris : les plex sauvegardés d'un cœur, rattachés au compte KA ID (l'identité unique du Groupe Ka — courriel, Google ou Apple) et synchronisés dans « Mon univers Ka » à travers tout l'écosystème.

# 9 · Accueil (suite) — le plan B et les trois promesses

Accueil section 2

Pas d'adresse ? Le formulaire descriptif prend le relais : municipalité, nombre de portes, superficie habitable, année de construction, terrain. En dessous, les trois promesses de la maison : 01 · Spécialisé, pas généraliste (entraîné exclusivement sur des ventes de plex), 02 · Fourchette calibrée à 80 % (vérifiée, pas promise), 03 · Le calcul, montré (chaque ajustement affiché en dollars).

# 10 · Mobile — la même exigence dans la poche

Accueil mobile

L'accueil en 390×844 : header opaque, menu tactile et zones de touche au standard mobile Ka (tokens, dvh, safe-area), recherche et compteurs sans compromis.

Galerie complémentaire (campagne du 2026-08-25, WebP)
Accueil mobile
Accueil
Parc mobile
Parc
Stats mobile
Stats
Ka mobile
Agent Ka
Favoris mobile
Favoris

# Pourquoi un moteur spécialisé plex ?

Un plex est un immeuble à revenus : sa valeur se pense par porte, par revenu, par TGA — pas comme une unifamiliale. ValoPlex couvre tous les immeubles résidentiels multi-logements du Québec (CUBF 1000, 2 logements et plus — du duplex à la tour) avec un modèle et une interface dédiés à cette logique.

Fonctionnalité Description
🚪 Économie par porte Valeur/porte, rôle/porte, aire/porte, terrain/porte + benchmark vs marché local
🧮 Pro forma investisseur Loyer implicite, état des résultats complet, hypothèque canadienne, DSCR, cashflow/porte, projection 5 ans, point mort, sensibilité aux taux — interactif
💸 Frais « tout le kit » Droits de mutation (barème QC + barème bonifié de Montréal), notaire, inspection, liquidités totales
🏢 Frise des portes Une porte SVG dessinée par logement (signature) + badge DUPLEX/TRIPLEX/…/MULTI N PORTES
📍 Adresses officielles Toutes les inscriptions d'adresses de l'unité (table des adresses du rôle)
⚖️ Ajustement portes 4ᵉ ajustement des comparables : 50 % du prix/porte, plafonné ±30 %
🗺️ Plan des comparables Carte plan d'arpenteur SVG (azimut + distance réels), état vide honnête si aucun plex comparable
📄 Rapports PDF Standard 3 p. (avec pro forma), professionnel bancaire 6 p., parc, statistique provincial, personnalisé
📉 Statistiques Les plex du Québec valent 400,6 G$ — répartition par gabarit et par municipalité
🤖 Ka · agent IA 13 outils (registre, moteur, pro forma), streaming, garde anti-hallucination, liens PDF fiables
♥ Favoris KA ID SSO Groupe Ka (courriel, Google, Apple), favoris synchronisés « Mon univers Ka »
🌐 Bilingue Interface FR/EN (bascule instantanée, contexte de langue côté client)

# Le modèle : hédonique en ratio, calibré par gabarit

Gradient boosting LightGBM (objectif L1) entraîné sur 91 060 ventes réelles de plex (2021-2026). Trois idées font la différence :

  1. Cible en ratio log(prix / valeur au rôle) — pas le prix. Un modèle en prix brut, dominé par la masse des duplex, écrase les grands immeubles (nous avons mesuré une tour au rôle de 705 M$ prédite… 5,6 M$). En ratio, le duplex de 400 k$ et la tour de 700 M$ sont évalués avec la même justesse relative. Le modèle connaît en plus l'ancienneté du rôle (mois depuis la date des conditions du marché du dénominateur).
  2. Rétrécissement hors domaine : au-delà de 12 portes (données de ventes rares), l'estimation glisse vers l'ancre empirique de sa bande de gabarit (poids du modèle : 55 % → 20 %).
  3. Calibration conforme Mondrian : les fourchettes P10–P90 sont calibrées par bande de portes sur un ensemble de calibration dédié — couverture vérifiée de 80,0 % (pas promise : mesurée).

À côté du modèle, le moteur de comparables sélectionne des ventes de plex proches et affiche chaque ajustement en dollars — marché (indice municipal), superficie, âge, et le 4ᵉ ajustement signature : les portes.

# Validation (norme IAAO, 13 617 ventes de test jamais vues)

Segment MdAPE Ratio médian
Tous les plex 13,8 % 0,976
Duplex (2 portes) 13,9 % 0,970
Triplex (3 portes) 12,6 % 0,983
4–5 portes 14,1 % 0,971
6–12 portes 17,9 % 0,955
Test temporel 2026 (9 172 ventes) 13,8 % 0,972
Couverture de la fourchette (calibrée) 79,9 ≈ 80 % —

# Le pro forma (app/src/lib/proforma.ts — 20 tests)

Approche revenu inversée : quelle structure de revenus la valeur estimée suppose-t-elle ?

  • Loyer implicite en forme fermée : RB = (V·TGA + F) / (1 − vacance − %variables)
  • Dépenses détaillées : taxes municipales et scolaire (dérivées du rôle), assurances, entretien, gestion, déneigement, énergie des communs, réserve
  • Hypothèque canadienne (composition semestrielle), cashflow/porte/mois, DSCR, cash-on-cash
  • Capital remboursé an 1, projection 5 ans (équité, gain total, multiple sur liquidités)
  • Loyer de point mort et taux de point mort (bissection), sensibilité taux ±1 %
  • Droits de mutation : barème provincial + barème bonifié de Montréal (jusqu'à 4 %)

Cinq curseurs (taux, mise de fonds, amortissement, TGA, appréciation) — tout recalcule en direct.

# Pages

Route Contenu
/ Accueil : recherche d'adresse (FTS5) + formulaire descriptif « plan B »
/estimation/[id] Fiche d'estimation d'un plex du registre : valeur + fourchette P10-P90, frise des portes, comparables ajustés, plan d'arpenteur, pro forma, rapports PDF
/estimation/manuelle Estimation sans adresse (municipalité, portes, superficies, année)
/parc Évaluation consolidée d'un parc (jusqu'à 40 plex) + rapport PDF
/stats Statistiques provinciales : 400,6 G$, gabarits, 200 municipalités, rapports PDF
/ka Ka · agent IA conversationnel (13 outils, streaming)
/favoris Favoris « Mon univers Ka » (compte KA ID)
/methodologie Méthodologie complète du modèle et des comparables
/conditions · /confidentialite Pages légales (FR/EN)

# API

Toutes les routes sous app/src/app/api/ (App Router Next.js) :

Endpoint Méthodes Rôle
/api/search GET Recherche plein texte d'adresses (FTS5)
/api/estimate GET ?id= / POST Estimation d'une unité du registre / estimation manuelle (municipalité, portes, superficies, année)
/api/portfolio POST Évaluation agrégée d'un parc
/api/report POST Rapport PDF standard (3 p., avec pro forma)
/api/report/pro POST Rapport PDF professionnel bancaire (6 p.)
/api/report/portfolio POST Rapport PDF de parc
/api/report/stats GET Rapport statistique provincial (PDF)
/api/stats · /api/stats/catalog · /api/stats/report/custom GET/POST Statistiques, catalogue de métriques, rapport PDF personnalisé
/api/ka POST Agent Ka (streaming, 13 outils)
/api/favorites · /api/favorites/toggle GET/POST Favoris KA ID
/api/auth/ka/login · /api/auth/ka/callback · /api/auth/me · /api/auth/logout GET/POST SSO KA ID (hub Groupe Ka)
/api/lead POST Demandes de contact (stockées côté base)

Les PDF sont générés côté serveur avec pdfkit et les polices embarquées du dépôt (app/assets/fonts/ : Space Grotesk, Inter, JetBrains Mono).

# Données

Base SQLite unique (app/data/valoplex.db, ~181 Mo, WAL — non versionnée), interrogée avec better-sqlite3 :

Table Contenu
units 393 867 plex (rôle MAMH, CUBF 1000, 2+ logements) : adresses, portes, superficies, année, valeurs au rôle, estimation 2021-2026 + P10/P90
transactions 91 060 ventes réelles de plex 2021-2026 (comparables)
market_index Indices de marché municipaux (ajustement temporel des comparables)
units_fts Index FTS5 des adresses (la recherche de l'accueil)
leads Demandes de contact (jamais versionné, données personnelles)

Source : rôles d'évaluation foncière du Québec (MAMH, licence ouverte) + ventes de plex publiées.

# Structure du dépôt

text
valoplex/
├── app/                  # application Next.js 16 (TypeScript strict, Tailwind 4)
│   ├── src/lib/          # engine.ts (comparables), estimator.ts, proforma.ts,
│   │                     # report*.ts (pdfkit), ka/tools.ts (outils de l'agent),
│   │                     # ka-auth.ts + hubfav.ts (SSO KA ID), i18n.ts, db.ts
│   ├── src/components/   # RadarMap, MetricViz, Proforma, EstimateForm, KaChat,
│   │                     # StatsView, ReportBuilder, SearchBox, HeaderNav…
│   ├── src/app/          # pages + routes API (App Router)
│   └── assets/fonts/     # polices embarquées pour les PDF
├── docs/screenshots/     # visite guidée (JPG 2026-08-28) + galerie WebP
└── scripts/              # pipeline données/modèle (Python)
    ├── hedonic_plex.py   # entraînement LightGBM (ratio + Mondrian), prédictions 2021-2026
    └── build_valoplex_db.py  # base SQLite + stats provinciales

# Démarrage

bash
cd app && npm install
# placer la base dans app/data/valoplex.db (non versionnée)
npm run dev
npm run test       # 33 tests (moteur + finance)

Pipeline (nécessite les rôles MAMH et les transactions enrichies, non versionnés) :

bash
python3 scripts/hedonic_plex.py train && python3 scripts/hedonic_plex.py predict
python3 scripts/build_valoplex_db.py

Note données : base SQLite, modèles entraînés (models/) et parquets d'estimation ne sont jamais versionnés (voir .gitignore). L'agent Ka requiert une clé API Anthropic et le SSO des favoris une configuration KA ID — via variables d'environnement locales, hors dépôt.

# Déploiement

Nœud M3U96a (MacLustr), app déployée dans ~/apps/valoplex (contenu de app/ + docs/)
Port 8091 (Next.js next start)
Process manager PM2 : valoplex (app) + valoplex-ngrok (tunnel)
Domaine www.valoplex.com via ngrok
Dépôt spbgit (git perso) — bare ~/srv/git/valoplex.git sur M3U96a, visible sur git.spboucher.ai

# Design

Identité « éditorial sharp » : papier grainé #f5f3ee, encre #141814, accent orange vif #ff9f45, ocre brûlé #b25f16 — sœur chromatique de Vrai-Prix (rouge). Titres Space Grotesk, mono JetBrains, marquee de chiffres clés, ombres franches et surlignages au marqueur orange.

# Un service Groupe Ka

ValoPlex porte le badge « Un service Groupe Ka » : compte unique KA ID, favoris « Mon univers Ka », standards mobile/header/design du groupe. Dans la famille immobilière :

Site Spécialité
Vrai-Prix La valeur de toute propriété du Québec (le grand frère généraliste)
ValoPlex Les plex du Québec, porte par porte (2 logements et plus)
Immo-Ka Propriétés à vendre au Québec
Lou-Ka Logements à louer au Québec
House-Ka · Rent-Ka Maisons à vendre · loyers, Canada hors Québec
Ka·Stats L'observatoire statistique de l'écosystème

# Auteur

Simon-Pierre Boucher — contact@spboucher.ai

Estimations statistiques à titre indicatif — ne remplacent pas une évaluation par un évaluateur agréé (OEAQ) ni un conseil financier. Voir conditions et méthodologie.