Skip to content

Tarifas

Las Tarifas son el corazón comercial del sistema: definen cuánto cuesta cada pasaje. Aquí decides el precio según la ruta, el tramo que viaja el pasajero, el tipo de servicio del bus y la categoría del asiento. Cuando programas una salida, el sistema toma estos precios y los congela para ese viaje, de modo que la venta siempre cobra un precio estable.

¿Qué es una tarifa?

Una tarifa es una regla de precio. Cada regla dice: "para esta combinación, el precio es S/ X". La combinación se arma con cuatro dimensiones, de más general a más específica:

DimensiónQué representa¿Obligatoria?
RutaEl corredor completo (ej. Lima – Trujillo)
TramoUn trayecto concreto dentro de la ruta (origen → destino)No
Tipo de servicioLa clase del bus (VIP, Económico, Cama…)No
Categoría de asientoEl nivel del asiento (VIP, Normal…)No

Solo la ruta es obligatoria. Cualquier dimensión que dejes vacía significa "aplica a todo ese nivel": un tramo vacío = "toda la ruta", un servicio vacío = "todos los servicios", una categoría vacía = "precio base para todas las categorías".

El precio es único (sin piso ni mitad)

Cada tarifa tiene un solo precio. Ya no existen "medio pasaje" ni "piso 1 / piso 2": la diferencia de precio entre asientos la marca la categoría de asiento (por ejemplo, una tarifa para categoría VIP y otra para categoría Normal).

Cómo se elige el precio: precedencia (lo más específico gana)

Cuando hay que cobrar un pasaje, el sistema busca entre tus tarifas activas la que mejor encaja con el contexto (ruta, tramo, servicio, categoría de ese pasaje) y vigente en la fecha. Si varias encajan, gana la más específica, con este orden de peso:

  1. Tipo de servicio (el más determinante)
  2. Tramo
  3. Categoría de asiento

Es decir: una tarifa que fija el tipo de servicio pesa más que una que solo fija el tramo, y esta más que una que solo fija la categoría. Una dimensión con valor siempre gana a esa misma dimensión dejada en blanco. Así puedes tener un precio base de la ruta y excepciones más finas sin tocar todo.

Ejemplo

  • Tarifa A: ruta Lima–Trujillo, todo lo demás vacío → S/ 40 (precio base de la ruta).
  • Tarifa B: misma ruta, tramo Lima→Chimbote → S/ 30.
  • Tarifa C: misma ruta, categoría VIP → S/ 55.

Un pasaje Lima→Chimbote en asiento normal resuelve a S/ 30 (gana el tramo). Un pasaje de toda la ruta en asiento VIP resuelve a S/ 55 (gana la categoría sobre la base). Un pasaje de toda la ruta en asiento normal resuelve a S/ 40 (la base).

Campo por campo de una tarifa

CampoQué es¿Obligatorio?Valores / notas
RutaLa ruta a la que aplicaSe busca por nombre
TramoTrayecto origen → destino de esa rutaNo"Toda la ruta" si lo dejas vacío. Solo aparecen los tramos de la ruta elegida
Tipo de servicioClase del busNoVacío = todos los servicios
CategoríaCategoría del asientoNoVacío = precio base (todas las categorías)
PrecioEl importe del pasajeNúmero mayor o igual a 0
MonedaMoneda del precioNoPEN (por defecto) o USD
% niñoPorcentaje del precio que paga un niñoNoEntre 0 y 100. Si lo defines, el sistema calcula el "precio niño"
Vigencia desdeFecha en que empieza a regirNoVacío = sin límite inicial
Vigencia hastaFecha en que deja de regirNoVacío = sin límite final

Vigencia: vigente, futura o vencida

Comparando las fechas con hoy, cada tarifa está en uno de tres estados:

  • Vigente: hoy cae dentro (o no tiene límites).
  • Futura: su "desde" es posterior a hoy (aún no empieza).
  • Vencida: su "hasta" ya pasó.

Esto te permite dejar preparado un nuevo precio con fecha futura sin afectar las ventas de hoy.

No puede haber dos tarifas iguales activas

No se admiten dos tarifas activas con la misma combinación (misma ruta, tramo, servicio y categoría). Si intentas crear una repetida, el sistema lo rechaza. Para cambiar un precio, edita la existente o usa Editar en bloque con versionado.

Las dos vistas: Árbol y Tabla

  • Árbol (vista por defecto): organiza los precios como Ruta → Tramo → Servicio → Categoría. Cada ruta se despliega, y en las hojas ves el precio, la vigencia y el estado. Puedes editar el precio de una hoja haciendo clic sobre él (se corrige en el sitio).
  • Tabla: el listado plano con las columnas Ruta/tramo, Servicio, Categoría, Precio y Vigencia, con paginación.

Ambas vistas respetan la barra de filtros: ruta, vigencia (por defecto "Vigentes"), moneda y rango de precio. Usa Limpiar para volver al estado inicial.

Probar precio

El panel "Probar precio" te deja simular cuánto cobraría el sistema para un contexto concreto, sin vender nada. Elige ruta (y opcionalmente tramo, servicio y categoría) y pulsa Probar:

  • Si hay una tarifa aplicable, muestra el precio resuelto (y el precio niño si corresponde).
  • Si no hay ninguna, avisa "No hay tarifa aplicable para ese contexto".

Es la mejor forma de verificar que tu configuración de precedencia hace lo que esperas.

Crear una tarifa (una a una)

  1. Entra a Comercial → Tarifas y pulsa Nueva tarifa.
  2. Busca y elige la Ruta (obligatoria).
  3. Opcional: elige un Tramo (si no, aplica a toda la ruta).
  4. Opcional: elige Tipo de servicio y Categoría.
  5. Escribe el Precio y, si aplica, ajusta Moneda, % niño y las fechas de vigencia.
  6. Pulsa Crear tarifa. Verás "Tarifa creada".

Carga masiva (matriz de precios)

Para cargar muchos precios de una ruta de golpe, usa Carga masiva:

  1. Elige la Ruta: se cargan sus tramos.
  2. Marca los servicios y las categorías que quieres precisar (checkboxes).
  3. Se arma una matriz: filas = tramos, columnas = cada combinación servicio × categoría.
  4. Escribe el precio en cada celda. Atajos:
    • Prellenar por recargos (opcional): pon un precio base por tramo y un recargo por servicio y por categoría (en % o monto fijo), y el sistema rellena la matriz como punto de partida editable.
    • El botón de una columna copia el precio de la primera fila a toda la columna.
  5. Ajusta vigencia y moneda del lote.
  6. Pulsa Crear tarifas. Se crean todas o ninguna (es transaccional): si alguna celda choca con una tarifa existente o se repite dentro del lote, no se crea nada y se te indica el conflicto.

Editar en bloque (ajuste masivo)

Con Editar en bloque cambias muchos precios a la vez, sobre el filtro actual o sobre una rama del árbol. Eliges:

  • Operación: subir/bajar un porcentaje, subir/bajar un monto fijo, o fijar un precio exacto.
  • Cómo aplicar:
    • Desde una fecha (versiona): crea tarifas nuevas con vigencia desde esa fecha y cierra las anteriores el día previo. No afecta a las salidas ya programadas (que tienen su precio congelado). Ideal para subir precios "a partir del día 1".
    • Corregir ahora (sobrescribe): cambia el precio en el sitio. Úsalo para arreglar un error.

El precio resultante siempre debe ser mayor a 0.

Cómo la salida "congela" el precio

Esta es la relación clave con las Salidas:

Cuando programas una salida, el sistema resuelve el precio de cada tramo × cada categoría del bus (usando la precedencia y la fecha del viaje) y lo guarda pegado a esa salida. A partir de ahí, la venta de ese viaje usa ese precio congelado, no las tarifas vivas.

Por qué importa

  • Cambiar una tarifa hoy no altera los viajes que ya programaste: sus precios quedaron fijos al programarlos. Así el pasajero paga lo anunciado y la caja cuadra.
  • Los precios nuevos aplican a las salidas que programes después del cambio.
  • Si al programar una ruta no hay tarifa para alguna celda, esa celda se congela en 0 (editable por quien tenga permiso de editar precios en la salida), pero el tramo sigue existiendo. Si la ruta no tiene tramos configurados, la salida no se puede programar.

Casos límite y preguntas frecuentes

Vendí y cobró un precio distinto al que veo en Tarifas

La venta usa el precio congelado de la salida, fijado cuando se programó el viaje. Si cambiaste la tarifa después, es normal que difieran. Para el próximo viaje programa una nueva salida (o re-congela) y tomará el precio nuevo.

¿Cómo subo todos los precios un 10% desde el mes que viene?

Usa Editar en bloque → operación Subir/bajar % con valor 10 → modo Desde una fecha (versiona) e indica el 1.º del próximo mes. Se crean las tarifas nuevas y se cierran las viejas automáticamente.

Puse una categoría pero el precio no cambia entre asientos

Verifica que cada asiento del bus tenga asignada su categoría en el croquis, y que exista una tarifa por cada categoría. Sin categoría, el asiento toma el precio base.

"No hay tarifa aplicable para ese contexto" al Probar precio

No existe ninguna tarifa vigente que encaje. Crea al menos una tarifa base para la ruta, o revisa las fechas de vigencia.

¿La moneda mezcla soles y dólares?

Cada tarifa tiene su moneda (PEN o USD). Trabaja con una moneda coherente por ruta; el filtro de moneda te ayuda a revisarlas por separado.

Mensajes que puedes ver

SituaciónMensaje
Precio negativo o no numéricoEl precio debe ser un número ≥ 0.
% niño fuera de rangoEl porcentaje de niño debe estar entre 0 y 100.
Combinación repetida activaYa existe una tarifa activa para esa combinación.
Tramo que no es de la rutaEl tramo no pertenece a la ruta.
Carga masiva sin celdasNo hay celdas con precio para crear.
Combinación repetida en el loteCombinación duplicada dentro del lote.
Conflictos en el loteHay celdas en conflicto; no se creó ninguna.
Ajuste que deja precio ≤ 0El precio resultante debe ser mayor a 0.
Versionar sin fechaIndica la fecha de vigencia (YYYY-MM-DD).
Ruta sin tramos al programarLa ruta no tiene tramos configurados. Define los tramos de la ruta antes de programar el viaje.

Enlaces relacionados

Manual de usuario de TitanicBus