Saltar a contenido

SOURCE-003 Channel Taxonomy

Fecha: 2026-06-09

Estado: VALIDACION REAL EXPLORATORIA / TAXONOMIA FUNCIONAL PARCIAL

Scope: tenant

tenant_id: alpuntodeventa

Owner: Gabi / Carlos Canu

Fuente de verdad: docs/tenants/alpuntodeventa/business-observer/sources/SOURCE-003-CHANNEL-TAXONOMY.md

Documentos relacionados:

  • docs/tenants/alpuntodeventa/business-observer/sources/SOURCE-003-SGC-VENTAS-COMPROBANTES.md
  • docs/tenants/alpuntodeventa/business-observer/analytics/SELLER-RECONCILIATION-RULES.md
  • docs/tenants/alpuntodeventa/business-observer/analytics/CUSTOMER-OWNERSHIP-ANALYTICS.md
  • docs/tenants/alpuntodeventa/business-observer/BUSINESS-OBSERVER-DATA-CONTRACT-001.md

1. Objetivo

Validar y documentar la semantica funcional observable del canal transaccional de SOURCE-003, con foco especial en OTROS y SIN ASIGNAR, para no mezclar:

  • seller_assigned
  • seller_transactional
  • ecommerce
  • canal compartido
  • venta tradicional
  • casos que todavia requieren manual_review

Este documento no crea SQL, no crea tablas, no crea vistas fisicas y no cierra una taxonomia definitiva si la evidencia no alcanza.

2. Campo de canal identificado

Campo real identificado en la autoridad SOURCE-003 / Tabla 2:

  • canal transaccional: LTRIM(RTRIM(v.Canal)) AS Canal
  • ramo transaccional complementario: LTRIM(RTRIM(v.Ramo)) AS Ramo

Lectura correcta:

  • Canal existe y es usable como senal transaccional real
  • Ramo agrega semantica adicional y en la practica explica mejor a OTROS
  • Canal de SOURCE-003 no reemplaza el canal del maestro cliente de SOURCE-001
  • debe preservarse siempre canal_raw

3. Ventana y filtros de validacion

Validacion ejecutada en modo de solo lectura, registrando solo agregados:

  • ventana principal: 2026-03-11 a 2026-06-09 (90 dias)
  • filtro documental: v.Estado <> 'ANULADO'
  • filtro exploratorio prudente: TipoComp IN ('FACTURA A','GUIA DE DESPACHO','FACTURA B')
  • join de reconciliacion: V_VENTAS.CodigoCliente -> VCLIENTES.Codigo

4. Valores distintos observados

Valores de canal_raw observados en la ventana:

canal_raw ventas clientes_unicos lectura inicial
OTROS 81018 1518 canal real pero demasiado amplio; necesita apoyo de Ramo
NULL/VACIO 10990 217 canal faltante; Ramo observado como SIN ASIGNAR
TRADIC 5017 129 senal fuerte de canal tradicional
KIOSCO 860 34 senal fuerte de subcanal tradicional

Valores de ramo_raw observados por canal:

canal_raw ramo_raw ventas clientes mismatch_pct
OTROS SUPER CHINO 67783 1075 2.02%
OTROS CLIENTE PARTICULAR 11430 388 2.44%
NULL/VACIO SIN ASIGNAR 10990 217 2.56%
TRADIC ALMACEN GRANDE 3774 79 3.29%
TRADIC DIETETICA 1243 50 0.00%
OTROS REVENDEDOR 1173 30 10.14%
KIOSCO MAXI KIOSCO 860 34 1.51%
OTROS FIAMBRERIA 632 25 1.58%

Lectura prudente respaldada:

  • NULL/VACIO no aparecio mezclado con otros ramos; en la ventana observada corresponde siempre a SIN ASIGNAR
  • OTROS no es un unico canal funcional; agrupa por lo menos SUPER CHINO, CLIENTE PARTICULAR, REVENDEDOR y FIAMBRERIA
  • TRADIC y KIOSCO se comportan como etiquetas mas especificas

5. Relacion con TipoComp

canal_raw GUIA DE DESPACHO FACTURA A FACTURA B
OTROS 65576 15212 230
NULL/VACIO 8388 2574 28
TRADIC 3596 1405 16
KIOSCO 654 196 10

Lectura:

  • no aparecio un TipoComp exclusivo que identifique por si solo ecommerce
  • todos los canales observados estan dominados por GUIA DE DESPACHO
  • FACTURA B existe pero es marginal en los cuatro canales

6. Relacion con seller_transactional

Vendedores transaccionales mostrados como S-xxx para no exponer codigo raw.

Top observado por canal:

canal_raw seller_transactional ventas clientes assigned_distintos mismatches
OTROS S-016 6359 95 3 578
OTROS S-032 5753 193 8 172
OTROS S-005 5622 84 2 13
OTROS S-012 5001 89 2 22
OTROS S-050 4626 82 2 30
NULL/VACIO S-035 2321 35 4 194
NULL/VACIO S-093 1242 18 1 0
NULL/VACIO S-033 1167 20 1 0
NULL/VACIO S-107 1029 19 1 0
NULL/VACIO S-041 877 20 2 3

Lectura:

  • OTROS esta repartido entre muchos vendedores transaccionales y no apunta a un unico vendedor centralizador obvio
  • NULL/VACIO tampoco queda absorbido por un solo vendedor, aunque S-035 concentra una porcion relevante y merece seguimiento
  • la evidencia observada no alcanza para afirmar que un vendedor especifico sea por si mismo un canal ecommerce

7. Relacion con seller_assigned vs seller_transactional

canal_raw ventas mismatches mismatch_pct
OTROS 81018 1777 2.19%
NULL/VACIO 10990 281 2.56%
TRADIC 5017 124 2.47%
KIOSCO 860 13 1.51%

Lectura:

  • el mismatch existe en todos los canales observados
  • NULL/VACIO no puede descartarse del analisis porque su mismatch no es cero
  • OTROS domina el volumen absoluto de mismatch por peso de volumen, no por una tasa radicalmente distinta

8. Senales de canal compartido

Clientes con mas de un seller_transactional dentro del mismo canal en la ventana:

canal_raw clientes_canal clientes_multiseller clientes_multiseller_pct max_sellers_por_cliente
OTROS 1518 54 3.56% 2
NULL/VACIO 217 5 2.30% 2
TRADIC 129 1 0.78% 2
KIOSCO 34 0 0.00% 1

Lectura prudente:

  • existe una senal real pero acotada de cuentas trabajadas por mas de un vendedor dentro de OTROS y NULL/VACIO
  • la escala observada no alcanza para reclasificar todo OTROS o todo SIN ASIGNAR como shared_channel
  • los candidatos reales de canal compartido deben quedar focalizados en subgrupos de clientes o vendedores, no en el canal entero

9. Senales de ecommerce

Busqueda textual directa en Canal y Ramo:

  • no aparecieron etiquetas con ECOM
  • no aparecieron etiquetas con WEB
  • no aparecieron etiquetas con MERCADO

Lectura prudente:

  • no existe evidencia textual directa de un canal ecommerce explicito en la ventana observada
  • no corresponde inferir ecommerce solo porque el canal sea OTROS
  • tampoco corresponde inferir ecommerce solo porque exista mismatch

10. Taxonomia funcional sugerida

La taxonomia sugerida es operativa y no definitiva.

evidencia observada canal_normalized sugerido channel_type sugerido estado
canal_raw = 'TRADIC' tradicional traditional_seller utilizable
canal_raw = 'KIOSCO' kiosco traditional_seller utilizable
canal_raw IS NULL/VACIO y ramo_raw = 'SIN ASIGNAR' sin_asignar unassigned utilizable con prudencia
canal_raw = 'OTROS' y ramo_raw = 'SUPER CHINO' super_chino traditional_seller sugerido, no definitivo
canal_raw = 'OTROS' y ramo_raw = 'CLIENTE PARTICULAR' cliente_particular traditional_seller sugerido, no definitivo
canal_raw = 'OTROS' y ramo_raw = 'FIAMBRERIA' fiambreria traditional_seller sugerido, no definitivo
canal_raw = 'OTROS' y ramo_raw = 'REVENDEDOR' revendedor manual_review ambiguo por mismatch alto
canal_raw = 'OTROS' sin Ramo util o con patron nuevo otros unknown pendiente

Regla de uso:

  • para OTROS, conviene priorizar ramo_raw como normalizador funcional liviano antes que dejar todo colapsado en OTROS
  • aun usando ramo_raw, el catalogo debe seguir preservando canal_raw + ramo_raw

11. Reglas de no inferencia

  • no asumir ecommerce solo por OTROS
  • no asumir shared_channel sin evidencia por cliente o por vendedor
  • no excluir SIN ASIGNAR sin analisis
  • preservar siempre canal_raw
  • preservar siempre ramo_raw
  • no sobrescribir seller_transactional con una lectura de canal
  • no sobrescribir seller_assigned con una lectura de canal
  • no cerrar una taxonomia definitiva mientras sigan apareciendo patrones ambiguos en OTROS

12. Casos que deben quedar en manual_review

Casos recomendados para manual_review:

  • OTROS + REVENDEDOR: 1173 ventas, 30 clientes, 119 mismatch, 10.14% de mismatch
  • clientes OTROS con mas de un vendedor transaccional en la ventana: 54 clientes, 2587 ventas
  • clientes NULL/VACIO / SIN ASIGNAR con mas de un vendedor transaccional en la ventana: 5 clientes, 197 ventas
  • vendedores ambiguos dentro de NULL/VACIO con varios seller_assigned distintos y mismatch relevante, por ejemplo S-035 y S-052

Lectura:

  • estos casos no invalidan el uso general del canal
  • si marcan donde puede esconderse un patron de canal compartido o de asignacion comercial no resuelta

13. Impacto sobre seller reconciliation

  • seller_transactional sigue siendo la autoridad para atribucion real de ventas
  • seller_mismatch sigue siendo una senal valida aunque el canal sea unassigned o unknown
  • OTROS no debe tratarse automaticamente como excepcion operativa
  • NULL/VACIO + SIN ASIGNAR no debe excluirse del mismatch ni de la reconciliacion
  • el canal ayuda a priorizar revision manual, pero no redefine el vendedor de la venta

14. Impacto sobre Customer Ownership Analytics

  • ownership_last_sale sigue saliendo de seller_transactional
  • channel_type puede servir como contexto explicativo de cuentas trabajadas por terceros, pero no como sustituto de ownership
  • unassigned debe preservarse como contexto porque puede coexistir con ventas reales y mismatch real
  • shared_channel debe quedar reservado para casos focalizados con evidencia, no para todo OTROS

15. Conclusion recomendada

Semaforo recomendado: AMARILLO

Motivo:

  • el canal de SOURCE-003 es utilizable y medible
  • TRADIC, KIOSCO y NULL/VACIO -> SIN ASIGNAR tienen lectura funcional aprovechable
  • OTROS tambien es aprovechable si se preserva junto con Ramo
  • no existe evidencia suficiente para cerrar ecommerce
  • no existe evidencia suficiente para reclasificar todo OTROS o todo SIN ASIGNAR como canal compartido

16. Confirmaciones de alcance

  • solo lectura
  • sin runtime
  • sin tablas
  • sin vistas fisicas
  • sin migraciones
  • sin modificacion de datos
  • sin credenciales expuestas
  • sin datos personales expuestos
  • solo agregados documentados