Auditable methodology
Metodología — TAM / SAM / SOM / plaza-score
Esta página documenta cómo se calcula cada número que aparece en Terra v2. Está diseñada para que el equipo de Cesantoni pueda auditar la matemática sin abrir el código. Toda fórmula citada aquí refleja exactamente lo que vive en el snapshot inmutable de datos, la suite de smell tests de calidad y el pipeline automático de corrección.
1. Cómo calculamos TAM
TAM = mercado direccionable total anual, en pesos, por plaza × producto. La calibración nacional viene de el reporte público Mordor Intelligence — Recubrimientos Cerámicos México 2025.
- hogares — INEGI Censo 2020 + ENVI 2024 (vivienda particular habitada por plaza).
- 0.05 — tasa de renovación anual ENVI (5% del parque renueva piso/baño cada año).
- 50 m² — superficie promedio renovada por hogar/evento (Mordor + ENVI cross-check).
- $300/m² — precio promedio retail ponderado (cerámico + porcelánico + SPC, INPC construcción).
Nota crítica: Terra v1 usaba $4,200/hogar/año — ese número era 5.6× alto vs Mordor. v2 lo recalibró a $750/hogar/año, validado contra ENVI avgSpendMXN nacional. Smell test T1 hace enforcement: rango aceptable 150–50,000 MXN/persona/año (≈215 base × 3.5 personas/hogar).
Ratios TAM por producto (% del TAM_pisos plaza)
| Producto | % TAM pisos | Justificación |
|---|---|---|
| SPC (vinyl rígido) | 35% | Categoría que más crece — Mordor 2025 |
| Sanitarios | 38% | ENVI baño + INEGI rezago vivienda |
| Adhesivos | 20% | Pegacrete/lechadas atado a m² instalado |
| WPC (deck/exterior) | 15% | Nicho — exterior premium, residencial alto |
Calibración TAM — Auditoría del multiplicador 7.1× (Mordor)
El TAM bottom-up por plaza (hogares × penetración × ticket) se multiplica por 7.1× para alinear contra el mercado nacional Mordor 2025 ($44.80B MXN ≈ $2.24B USD @ 20 MXN/USD).
Decomposición 7.1× = 3.55× × 2.0×
| Factor | Valor | Significado | Justificación |
|---|---|---|---|
| m2_calibration_multiplier | 2.00× | Informal vs formal | ENVI sólo mide hogares formales. Mordor incluye autoconstrucción y reposición. Razón empírica 1.8-2.2×. |
| tam_calibration_multiplier | 3.55× | Bottom-up vs top-down | Re-renovaciones parciales, obra comercial (25% TAM/Mordor), gran formato premium fuera del ticket ENVI promedio. |
| combined_tam_multiplier | 7.10× | Aplicado al bottom-up | 2.00 × 3.55 = 7.10 |
Tres plazas trabajadas end-to-end (DB-reconciliado, pisos, MXN 2024)
| Plaza | Hogares (INEGI 2020) | Bottom-up × 0.05 × $4,200 | TAM stored (SSOT) | Ratio efectivo | Lectura |
|---|---|---|---|---|---|
| ZM Zacatecas | 97,240 | $20.4M | $34.1M | 1.67× | Plaza chica, NSE medio-bajo, mix mass-market. |
| ZM Monterrey | 1,017,511 | $213.7M | $434.7M | 2.03× | Corredor industrial, NSE alto, ticket comercial elevado pero saturado retail. |
| ZMVM | 3,709,016 | $778.9M | $4.01B | 5.15× | Concentración premium centro-MX (Mordor central_mx 37.1%), gran formato, 30%+ obra comercial. |
Lectura honesta: el TAM stored viene del SSOT (public/data-api/v1/plazas/[slug].json), NO de aplicar un 7.1× uniforme al bottom-up. La calibración efectiva varía por plaza (1.5×–5.5× en pisos) según mix segmento (mass-market vs premium), tipo de obra (residencial vs comercial) y NSE. El 7.1× es el promedio nacional implícito, no un parámetro per-plaza.
Cross-check Σ plazas vs nacional Mordor: Σ pisos publicado = $19.9B MXN sobre 102 plazas = 48% del nacional $44.8B. Banda objetivo 60–75% — gap actual indica conservadurismo (autoconstrucción rural + obra federal dispersa no asignadas a plaza). Ver METHODOLOGY.md §Reconciliation Audit.
Sensibilidad — TAM a multiplicadores alternativos
| Escenario | Multiplicador | TAM Monterrey | TAM ZMVM | Nacional implícito |
|---|---|---|---|---|
| Conservador | 5.0× | $1.07B | $3.89B | $31.55B |
| Bajo-medio | 6.0× | $1.28B | $4.67B | $37.86B |
| Publicado (Mordor 2025) | 7.1× | $1.52B | $5.53B | $44.80B |
| Medio-alto | 8.0× | $1.71B | $6.23B | $50.48B |
| Agresivo | 9.0× | $1.92B | $7.01B | $56.79B |
Invariante crítica: la banda SAM/TAM de 15-40% se mantiene válida bajo CUALQUIER calibración porque numerador y denominador escalan con el mismo factor. INV_04 verifica samPct ≈ samMxn/tamMxn × 100 ± 1.5pp.
1b.2 Back-test · cross-validation contra fuentes independientes /back-test (full →)
El TAM nacional Terra v2 ($2.07B USD = $41.4B MXN @ FX 20) se contrasta contra fuentes de asociaciones de industria recolectadas independientemente para validar orden de magnitud.
| Fuente | Año | MX market USD | vs Terra v2 | Tipo |
|---|---|---|---|---|
| Terra v2 (este sistema) | 2025 | $2.07B | — | Anchor Mordor 2025 pisos × FX 20 |
| Mordor Intelligence MX | 2025 | $2.24B | +8% | Reporte pagado (referenciado, sin licencia fresca) |
| MECS Acimac / CANACEM | 2024 | $2.20B | +6% | Industria internacional · independiente y gratuito |
| IMARC Group MX | 2024 | $2.1–2.4B | ±10% | Sample report público (banda) |
Conclusión back-test: el TAM Terra v2 está dentro de ±10% de tres fuentes independientes (Mordor, MECS Acimac/CANACEM, IMARC). Es defendible ante board / CFO citando MECS Acimac como cross-check primario gratuito. Las divergencias residuales se atribuyen a: (a) año diferente (2024 vs 2025), (b) FX assumption (18.5 vs 20), (c) inclusión/exclusión de SPC y mosaicos.
Fuente datos MX MECS: data/global-tile-market-comparison.json → countries[Mexico]· per cápita 1.85 m² · producción 270 Mm² · consumo 245 Mm² · imports 50 Mm² · exports 75 Mm².
Pesos AHP — matrices pairwise + Consistency Ratio (Saaty)
Los pesos asignados a los 13 componentes del score (7 atractivo + 6 facilidad) provienen de matrices de comparación pairwise Saaty 1-9. Aquí publicamos las matrices que producen exactamente esos pesos y reportamos el Consistency Ratio (CR): si CR ≤ 0.10 el juicio pairwise es internamente consistente (criterio estándar Saaty 1980).
El build emite un warning si cualquier matriz tiene CR > 0.10. Las matrices publicadas viven en lib/derive/ahp-matrix.ts y se evalúan en tiempo de carga del módulo (sin I/O).
Ejes principales — Atractivo vs Facilidad (2×2)
| — | Atractivo | Facilidad | Peso implícito |
|---|---|---|---|
| Atractivo | 1 | 1.50 | 60.0% |
| Facilidad | 1/1.50 | 1 | 40.0% |
Atractivo (60%) — 7 componentes (7×7)
| — | TAM | Dinamismo | Poder Adquisitivo | Señal de Demanda | Demanda Vivienda | Fuerza Laboral | Remesas | Peso implícito |
|---|---|---|---|---|---|---|---|---|
| TAM | 1 | 2 | 2 | 3 | 3 | 4 | 4 | 30.9% |
| Dinamismo | 1/2 | 1 | 1 | 2 | 2 | 2 | 3 | 17.9% |
| Poder Adquisitivo | 1/2 | 1 | 1 | 1 | 2 | 2 | 2 | 15.3% |
| Señal de Demanda | 1/3 | 1/2 | 1 | 1 | 1 | 2 | 2 | 12.0% |
| Demanda Vivienda | 1/3 | 1/2 | 1/2 | 1 | 1 | 1 | 2 | 9.8% |
| Fuerza Laboral | 1/4 | 1/2 | 1/2 | 1/2 | 1 | 1 | 1 | 7.7% |
| Remesas | 1/4 | 1/3 | 1/2 | 1/2 | 1/2 | 1 | 1 | 6.6% |
Facilidad (40%) — 6 componentes (6×6)
| — | Gap Competitivo | Logística | Fragmentación | Manejabilidad | Gap Penetración | Macro | Peso implícito |
|---|---|---|---|---|---|---|---|
| Gap Competitivo | 1 | 2 | 2 | 2 | 3 | 3 | 31.0% |
| Logística | 1/2 | 1 | 1 | 1 | 2 | 2 | 17.0% |
| Fragmentación | 1/2 | 1 | 1 | 1 | 2 | 2 | 17.0% |
| Manejabilidad | 1/2 | 1 | 1 | 1 | 2 | 2 | 17.0% |
| Gap Penetración | 1/3 | 1/2 | 1/2 | 1/2 | 1 | 1 | 9.0% |
| Macro | 1/3 | 1/2 | 1/2 | 1/2 | 1 | 1 | 9.0% |
Los pesos publicados en lib/derive/score-components.ts (TAM 30%, Dinamismo 18%, etc.) son los pesos asertados; los pesos implícitos por la matriz pairwise están cerca pero no idénticos — la diferencia documenta los redondeos Saaty 1-9 vs los pesos finos elegidos. La matriz es la justificación auditable.
2. Cómo calculamos SAM
SAM = parte del TAM que Cesantoni puede atacar dado su posicionamiento (medio-alto / alto). Se aplica un factor por NSE promedio de la plaza (proxy: ingreso ENIGH + INEGI manzanas socioeconómicas).
| NSE score plaza | Factor SAM/TAM | Lectura |
|---|---|---|
| ≥ 14 | 37% | Plazas A/B+ — SLP, Querétaro, Mérida |
| 10 – 14 | 35% | Medio-alto — la mayoría de capitales |
| 7 – 10 | 25% | Medio — plazas industriales secundarias |
| < 7 | 15% | Bajo — Cesantoni compite mal en este NSE |
Smell test T2 valida que SAM/TAM caiga en 15–40% (yellow fuera, red si <5% o >60%).
3. Cómo calculamos SOM
SOM = porción realista capturable a 12–24 meses, dada la presencia actual de Cesantoni (sucursales propias + distribuidores). El proxy es cesa_pts = sucursales propias × 2 + distribuidores activos × 1.
| cesa_pts | Factor SOM/SAM | Veredicto típico |
|---|---|---|
| ≥ 5 | 8% | FORTALEZA — defender + crecer |
| 1 – 4 | 5% | PRIORITARIA — base existe, escalar |
| 0 | 3% | EMERGENTE — entrada vía distribuidor |
Smell test T2 valida SOM/SAM en 3–10% (red fuera de 1–20%). T5 valida que plazas con cesa_pts ≥ 5 no estén marcadas EMERGENTE y que ≥3 sucursales propias impliquen FORTALEZA.
4. Tier de confiabilidad
Cada precio, conteo y métrica derivada lleva un tier. El dashboard muestra el tier al lado del número para que el lector pondere la confianza.
| Tier | Definición | Ejemplo |
|---|---|---|
| Tier 1 — verified | Precio retail scrapeado en vivo (Amazon, Costco, Coppel, Boxito, Construrama). | Scrape diario retail · Amazon MX |
| Tier 2 — derived/calibrated | Cálculo determinístico sobre Tier 1 (ej: SAM = TAM × NSE-factor). | samMxn, somMxn |
| Tier 3 — estimated | Imputación por benchmark regional (plaza sin scrape, se hereda del estado). | competitor-prices-by-plaza |
| Tier 4 — heuristic | Asunción explícita (ratio default cuando no hay dato). | wpc 15% fallback |
5. Cinco smell tests automáticos
Cada snapshot publicado pasa por seis tests deterministas. Cada test produce flags red (bloquea release) o yellow (revisar). El score público de Reliability es pass / total × 100.
- T1 · TAM/persona price band
ratio = TAM_mdp × 1e6 / población. Bounds por producto: pisos 150–50,000; spc 30–15,000; sanitarios 30–12,000; adhesivos 20–8,000; wpc 5–5,000 MXN/persona/año. Red si fuera de 0.5×lower o 2×upper.
- T2 · SAM/SOM bounds
SAM/TAM esperado 15–40%. SOM/SAM esperado 3–10%. Red si SAM/TAM <5% o >60%, o SOM/SAM <1% o >20%.
- T3 · product ordering
Por plaza, debe cumplirse TAM_pisos > TAM_spc > TAM_wpc. Inversión = red flag (significa que los ratios 35/15% se aplicaron mal o el TAM base está roto).
- T4 · INEGI vs RUV consistency (industrial corridor)
Plazas clasificadas como corredor industrial deben tener INFONAVIT 2024 ≥ 3,000 créditos. Si no, yellow flag (revisar si la plaza realmente es industrial o si falta data INEGI/RUV/INFONAVIT).
- T5 · verdict ↔ data alignment
cesa_pts ≥ 5 con verdict = EMERGENTE → red. Sucursales propias ≥ 3 con verdict ≠ FORTALEZA → red. Esto evita que un humano sobreescriba el veredicto con uno inconsistente con la presencia.
- T6 · construction seasonality
ENEC YoY < -15% del estado → yellow (construcción cayendo, revisar TAM). YoY > +25% → green highlight. Lluvia > 1500 mm/año + verdict alta prioridad → yellow (ventana de obra reducida).
Resultado en vivo: /quality-audit.
6. Auto-fix engine
Antes de cada publicación corre el pipeline automático de corrección. Las violaciones determinísticas (no requieren juicio humano) se corrigen automáticamente y quedan registradas en el log de auto-fix.
- T2 clamp: si SAM/TAM cae fuera de 15–40%, se recalibra al límite del rango usando el factor NSE de la tabla §2. Si SOM/SAM cae fuera de 3–10%, se clampa al límite con el factor cesa_pts de §3. Última corrida: 37 fixes T2.
- T5 verdict bump: si cesa_pts ≥ 5 y verdict = EMERGENTE, se promueve a PRIORITARIA. Si propias ≥ 3 y verdict ≠ FORTALEZA, se promueve a FORTALEZA.
- T1, T3, T4, T6: NO se auto-corrigen — requieren revisión humana (precios reales, ratios de producto, presencia industrial, datos climáticos).
El log incluye snapshot pre/post: cada plaza × producto modificada queda con rastro completo (valor original, valor nuevo, regla aplicada, timestamp).
7. Fuentes oficiales por data point
| Data point | Fuente | Vintage |
|---|---|---|
| hogares por plaza | INEGI Censo 2020 + ITER | 2020 |
| tasa renovación 5%, avg spend | ENVI 2024 (INEGI) | 2024 |
| precio $300/m² ponderado | Mordor Intelligence Mexico Tile 2025 + INPC construcción | 2025 |
| NSE / ingreso plaza | ENIGH 2022 + INEGI manzanas socioeconómicas | 2022 |
| INFONAVIT créditos 2024 | Infonavit + FOVISSSTE + SHF | 2024 |
| Construcción YoY (T6) | ENEC INEGI mensual | 2024–2025 |
| Aranceles tile 6907 | SIAVI Secretaría de Economía | 2025 |
| competidor sucursales | DENUE INEGI + scrape directo | 2025–2026 |
| precios competencia retail | Amazon/Costco/Coppel/Boxito/Construrama (live scrape) | marzo 2026 |
Catálogo completo (14 datasets): /datos-oficiales.
8. Cómo verificar
- a) Abrir /quality-audit — ahí corren los 6 tests sobre el snapshot vivo. Reliability ≥ 95% = release ready.
- b) Revisar /datos-oficiales — catálogo de 14 fuentes gubernamentales con números nacionales y por estado.
- c) Para cualquier plaza, entrar a
/[plaza]y comparar TAM/SAM/SOM vs lo que arroja la fórmula §1–§3 con los hogares INEGI de esa plaza. - d) Las correcciones automáticas se versionan por commit (cada plaza × producto con la regla aplicada) en un log auditable interno.