> ⚠️ **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.









**En production : [www.valoplex.com](https://www.valoplex.com)** · un service **Groupe Ka** · petit frère spécialisé de [Vrai-Prix](https://www.vrai-prix.com)
---
## Visite guidée
*Captures du 2026-08-28 — desktop 1440×900, mobile 390×844.*
### 1 · Accueil — « Votre plex vaut combien, porte par porte ? »

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 »

`/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

`/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

`/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` : 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` : 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é

`/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` : 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

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

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 |
 Parc |
 Stats |
 Agent Ka |
 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](https://www.donneesquebec.ca/recherche/dataset/roles-d-evaluation-fonciere-du-quebec) (MAMH, licence ouverte) + ventes de plex publiées.
## Structure du dépôt
```
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](https://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](https://www.groupe-ka.com), favoris « Mon univers Ka », standards mobile/header/design du groupe. Dans la famille immobilière :
| Site | Spécialité |
|---|---|
| [Vrai-Prix](https://www.vrai-prix.com) | 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](https://www.immo-ka.com) | Propriétés à vendre au Québec |
| [Lou-Ka](https://www.lou-ka.com) | Logements à louer au Québec |
| [House-Ka](https://www.house-ka.com) · [Rent-Ka](https://www.rent-ka.com) | Maisons à vendre · loyers, Canada hors Québec |
| [Ka·Stats](https://www.ka-stats.com) | L'observatoire statistique de l'écosystème |
## Auteur
**Simon-Pierre Boucher** — [contact@spboucher.ai](mailto:contact@spboucher.ai)
*Estimations statistiques à titre indicatif — ne remplacent pas une évaluation par un évaluateur agréé (OEAQ) ni un conseil financier. Voir [conditions](https://www.valoplex.com/conditions) et [méthodologie](https://www.valoplex.com/methodologie).*