Que es una etiqueta (y que no es)
La idea de negocio antes de la tecnica
Pensa en las etiquetas como los hashtags de una foto. Una misma foto puede tener #playa, #verano y #familia al mismo tiempo. No es que "playa" este por encima de "familia": son etiquetas independientes que conviven. Buscar por #playa te trae esa foto aunque tambien tenga las otras dos.
Un viaje (manifiesto: Mendoza → Neuquen del 15/03) puede tener las etiquetas NACIONAL, LINEA e IP a la vez. Filtrar por "NACIONAL" trae todos los pasajes de ese viaje, aunque tambien lleve las otras etiquetas. Igual que el hashtag.
| Se confunde con... | Pero en realidad es otra cosa |
|---|---|
| Origen / destino | Es la geografia del pasaje. La etiqueta describe el tipo de servicio del viaje. |
| Canal de venta | Donde se vendio (web, agencia). Es otro eje del tablero. |
| Estado del ticket | Pagado, cancelado, redimido. Es independiente de las etiquetas del viaje. |
| Nombre del servicio | "Mendoza - Neuquen 22:00" es el itinerario, no la etiqueta NACIONAL. |
El problema que teniamos: los numeros no cerraban
Por que un mismo viaje aparecia repartido en muchas filas
Los reportes leian las etiquetas como un texto unico con todas las palabras juntas:
["LINEA", "IP", "NACIONAL"]
Cada combinacion distinta se volvia una categoria distinta. Si en Betterez filtrabas solo NACIONAL,
en Andesmar el mismo viaje aparecia repartido en NACIONAL+LINEA, NACIONAL+LINEA+IP, etc.
Imposible reproducir el clic de Betterez.
Cada etiqueta es una dimension filtrable por si sola. Un viaje con NACIONAL + LINEA + IP se registra tres veces en la relacion interna viaje↔etiqueta...
...pero al contar pasajes el tablero usa conteo sin duplicar: el pasaje sigue siendo uno solo. Asi reproducimos exactamente el clic de Betterez.
Como se relacionan pasaje, viaje y etiqueta
La estructura de datos, en una imagen
1 → 1
1 → varias
Que construimos por dentro
Las piezas tecnicas, en lenguaje claro
| Pieza tecnica | Nombre real | Para que sirve |
|---|---|---|
| Catalogo de etiquetas | dim_manifest_tag |
La lista oficial: nombre, descripcion y faceta de cada una de las ~13 etiquetas. Las mismas que usa Betterez en admin. |
| Relacion viaje ↔ etiqueta | bridge_manifest_tag |
El "puente": una fila por cada par (viaje, etiqueta). Es lo que permite filtrar por etiqueta suelta sin inflar combinaciones. |
| Cubo principal de pasajes | fact_ticket |
1 fila = 1 pasaje. Trae columnas rapidas de alcance: has_nacional, has_internacional, has_linea_provincial. |
| Cubo de etiquetas finas | fact_ticket_mstr |
1 fila = 1 pasaje, con 13 columnas has_* (La Cuyanita, IP, ENCOMIENDAS, etc.) para filtros finos en el tablero. |
recientes
El catalogo de etiquetas
Las ~13 etiquetas agrupadas por faceta (no es jerarquia, es agrupacion logica)
Alcance de ruta
fact_ticket.Tipo de servicio
fact_ticket_mstr.Funcion
Estado / uso interno
| Etiqueta | Faceta | Idea de negocio |
|---|---|---|
| NACIONAL | Alcance de ruta | Servicios en rutas argentinas (planificados o refuerzos). |
| INTERNACIONAL | Alcance de ruta | Itinerarios con check-in internacional habilitado. |
| LINEA PROVINCIAL | Alcance de ruta | Lineas operadas bajo G-400-540 provinciales. |
| LINEA | Tipo de servicio | Itinerario planificado de forma periodica. |
| REFUERZO | Tipo de servicio | Salida adicional a la planificacion base. |
| VIAJES ESPECIALES | Tipo de servicio | Itinerarios contratados / especiales. |
| AUXILIO | Tipo de servicio | Movimiento vacio. |
| Bus Turistico | Tipo de servicio | City tour Mendoza. |
| COMBO MILLONARIO | Tipo de servicio | Combo River Plate. |
| La Cuyanita | Tipo de servicio | Servicio La Cuyanita. |
| ENCOMIENDAS | Funcion | Servicio que carga encomiendas. |
| IP | Funcion | Modalidad interjurisdiccional periodico CNRT. |
| FICTICIO | Estado / uso interno | Rutas ficticias en sistema. |
Como leer los numeros: el triple conteo
El error mas comun y como lo evitamos
Count(Distinct ticket_id) en vez de Count(*)).
Si ves totales inflados al cruzar varias etiquetas en filas, avisa al responsable del tablero.
| Tipo de filtro | Significado |
|---|---|
| Una etiqueta solo NACIONAL | Viajes que tienen esa etiqueta. Equivale al clic en Betterez. |
| Varias con "Y" NACIONAL y ENCOMIENDAS | Viajes que tienen las dos a la vez (interseccion). |
| Varias con "O" NACIONAL o REFUERZO | Viajes que tienen al menos una. Los tickets se cuentan una sola vez en el total. |
Que usar segun la pregunta
Guia rapida para quien arma reportes
fact_ticket + has_nacional ...fact_ticket_mstr + has_*bridge_manifest_tag + dim_manifest_tagCount(Distinct).trip_scope / lista de textotrip_scope solo da 2 valores; el texto quedo por compatibilidad.Equivalencia con Betterez
Para cuadrar totales con la plataforma del proveedor
| En Betterez (reporte web) | En el tablero Andesmar |
|---|---|
| Etiqueta = NACIONAL | Filtro atributo Etiqueta = NACIONAL |
| Etiquetas = Todos | Sin filtro de etiqueta |
| Tipo producto = Reservas | Filtro de tipo de producto del ticket |
| Fecha de salida del viaje | Dimension fecha del manifiesto / viaje — no confundir con fecha de venta |
sale_date). Para cuadrar totales, alinea el mismo eje de tiempo y el mismo estado de ticket en ambos lados.
Preguntas frecuentes
Lo que mas se pregunta negocio
| Idea | En una linea |
|---|---|
| Que es | Una clasificacion operativa del viaje, como un hashtag. Varias conviven en el mismo manifiesto. |
| A que se pega | Al manifiesto (viaje del dia), no al pasaje ni al horario abstracto. |
| El cambio que hicimos | Pasar de "lista de texto unica" a "etiquetas filtrables por separado", como Betterez. |
| El error a evitar | Triple conteo: sumar la misma persona una vez por cada etiqueta. Se cuenta una sola vez. |
| Donde filtrar | Alcance → fact_ticket. Etiquetas finas → fact_ticket_mstr. Auditoria → bridge_manifest_tag. |
| Para cuadrar con Betterez | Alinear fecha (venta vs salida), producto (reservas) y estado del ticket. |