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.

TAM_pisos = hogares × 0.05 × 50 m² × $300/m² ≈ $750/hogar/año

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 pisosJustificación
SPC (vinyl rígido)35%Categoría que más crece — Mordor 2025
Sanitarios38%ENVI baño + INEGI rezago vivienda
Adhesivos20%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×

FactorValorSignificadoJustificación
m2_calibration_multiplier2.00×Informal vs formalENVI sólo mide hogares formales. Mordor incluye autoconstrucción y reposición. Razón empírica 1.8-2.2×.
tam_calibration_multiplier3.55×Bottom-up vs top-downRe-renovaciones parciales, obra comercial (25% TAM/Mordor), gran formato premium fuera del ticket ENVI promedio.
combined_tam_multiplier7.10×Aplicado al bottom-up2.00 × 3.55 = 7.10

Tres plazas trabajadas end-to-end (DB-reconciliado, pisos, MXN 2024)

PlazaHogares (INEGI 2020)Bottom-up
× 0.05 × $4,200
TAM stored
(SSOT)
Ratio efectivoLectura
ZM Zacatecas97,240$20.4M$34.1M1.67×Plaza chica, NSE medio-bajo, mix mass-market.
ZM Monterrey1,017,511$213.7M$434.7M2.03×Corredor industrial, NSE alto, ticket comercial elevado pero saturado retail.
ZMVM3,709,016$778.9M$4.01B5.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

EscenarioMultiplicadorTAM MonterreyTAM ZMVMNacional implícito
Conservador5.0×$1.07B$3.89B$31.55B
Bajo-medio6.0×$1.28B$4.67B$37.86B
Publicado (Mordor 2025)7.1×$1.52B$5.53B$44.80B
Medio-alto8.0×$1.71B$6.23B$50.48B
Agresivo9.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.

FuenteAñoMX market USDvs Terra v2Tipo
Terra v2 (este sistema)2025$2.07BAnchor Mordor 2025 pisos × FX 20
Mordor Intelligence MX2025$2.24B+8%Reporte pagado (referenciado, sin licencia fresca)
MECS Acimac / CANACEM2024$2.20B+6%Industria internacional · independiente y gratuito
IMARC Group MX2024$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)

λ_max = 2.000CI = 0.000RI = 0.00CR = 0.000
AtractivoFacilidadPeso implícito
Atractivo11.5060.0%
Facilidad1/1.50140.0%

Atractivo (60%) — 7 componentes (7×7)

λ_max = 7.093CI = 0.016RI = 1.32CR = 0.012
TAMDinamismoPoder AdquisitivoSeñal de DemandaDemanda ViviendaFuerza LaboralRemesasPeso implícito
TAM122334430.9%
Dinamismo1/211222317.9%
Poder Adquisitivo1/211122215.3%
Señal de Demanda1/31/21112212.0%
Demanda Vivienda1/31/21/211129.8%
Fuerza Laboral1/41/21/21/21117.7%
Remesas1/41/31/21/21/2116.6%

Facilidad (40%) — 6 componentes (6×6)

λ_max = 6.014CI = 0.003RI = 1.24CR = 0.002
Gap CompetitivoLogísticaFragmentaciónManejabilidadGap PenetraciónMacroPeso implícito
Gap Competitivo12223331.0%
Logística1/21112217.0%
Fragmentación1/21112217.0%
Manejabilidad1/21112217.0%
Gap Penetración1/31/21/21/2119.0%
Macro1/31/21/21/2119.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 plazaFactor SAM/TAMLectura
≥ 1437%Plazas A/B+ — SLP, Querétaro, Mérida
10 – 1435%Medio-alto — la mayoría de capitales
7 – 1025%Medio — plazas industriales secundarias
< 715%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_ptsFactor SOM/SAMVeredicto típico
≥ 58%FORTALEZA — defender + crecer
1 – 45%PRIORITARIA — base existe, escalar
03%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.

TierDefiniciónEjemplo
Tier 1 — verifiedPrecio retail scrapeado en vivo (Amazon, Costco, Coppel, Boxito, Construrama).Scrape diario retail · Amazon MX
Tier 2 — derived/calibratedCálculo determinístico sobre Tier 1 (ej: SAM = TAM × NSE-factor).samMxn, somMxn
Tier 3 — estimatedImputación por benchmark regional (plaza sin scrape, se hereda del estado).competitor-prices-by-plaza
Tier 4 — heuristicAsunció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.

  1. 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.

  2. 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%.

  3. 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).

  4. 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).

  5. 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.

  6. 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.

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 pointFuenteVintage
hogares por plazaINEGI Censo 2020 + ITER2020
tasa renovación 5%, avg spendENVI 2024 (INEGI)2024
precio $300/m² ponderadoMordor Intelligence Mexico Tile 2025 + INPC construcción2025
NSE / ingreso plazaENIGH 2022 + INEGI manzanas socioeconómicas2022
INFONAVIT créditos 2024Infonavit + FOVISSSTE + SHF2024
Construcción YoY (T6)ENEC INEGI mensual2024–2025
Aranceles tile 6907SIAVI Secretaría de Economía2025
competidor sucursalesDENUE INEGI + scrape directo2025–2026
precios competencia retailAmazon/Costco/Coppel/Boxito/Construrama (live scrape)marzo 2026

Catálogo completo (14 datasets): /datos-oficiales.

8. Cómo verificar

  1. a) Abrir /quality-audit — ahí corren los 6 tests sobre el snapshot vivo. Reliability ≥ 95% = release ready.
  2. b) Revisar /datos-oficiales — catálogo de 14 fuentes gubernamentales con números nacionales y por estado.
  3. 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.
  4. d) Las correcciones automáticas se versionan por commit (cada plaza × producto con la regla aplicada) en un log auditable interno.