Skip to content
Empieza gratis

¿Cómo comparo contra el mismo periodo del año pasado?

Compara contra el mismo tramo del año pasado con intervalos semiabiertos, para que un año a medias no parezca una caída.

Curso gratis. Tu Maestro, una IA, .

¿Vamos mejor que el año pasado?

Es 30 de junio de 2026 y la dirección de Café Altura pregunta si vamos mejor que el año pasado. La respuesta rápida suma lo vendido en 2026 y lo compara con lo vendido en 2025:

  • 2026, hasta hoy: 6,980,100 pesos.
  • 2025 completo: 12,984,830 pesos.
  • Cambio: -46.2%.

El número es aritmética correcta y conclusión falsa. 2026 lleva seis meses y 2025 tiene doce. La comparación justa es el mismo tramo del calendario: enero a junio de 2025, que vendió 6,468,030 pesos. Contra ese tramo, 2026 va 7.9% arriba.

Mover una fecha un año o un mes atrás parece trivial, y tiene orillas. Predice.

Dos fechas que no tienen equivalente exacto un periodo antes. Escribe qué crees que da cada una y por qué.

Dos fechas que no tienen equivalente exacto un periodo antes. Escribe qué crees que da cada una y por qué.

Un mes antes del 31 de marzo y un año antes del 29 de febrero

intervalos.py
import duckdb

print(duckdb.sql("""
    SELECT
      (DATE '2026-03-31' - INTERVAL 1 MONTH)::DATE::VARCHAR AS un_mes_antes,
      (DATE '2024-02-29' - INTERVAL 1 YEAR)::DATE::VARCHAR AS un_anio_antes
""").fetchall())

Adivinar está bien: se guarda tal como la escribiste para compararla. Solo tú y tu Maestro ven tus predicciones.

Haz tu predicción

Cómo comparar periodos

Tres reglas cubren casi todos los casos:

  • Compara tramos con el mismo calendario. Escribe los dos periodos con intervalos semiabiertos: >= '2026-01-01' AND < '2026-07-01' contra >= '2025-01-01' AND < '2025-07-01'. Para un mes, el mes completo de cada año: marzo de 2026 vendió 1,229,670 pesos y marzo de 2025, 1,148,240, un 7.1% más.
  • Compara periodos completos. Si tus datos llegan a mitad de mes, el mes actual está incompleto y va a salir abajo. Aquí los datos llegan al 30 de junio, así que junio está completo.
  • Por día, mira el día de la semana. El 2 de marzo de 2026 fue lunes y el 2 de marzo de 2025 fue domingo. Una cafetería no vende igual en lunes que en domingo. 364 días antes (52 semanas) cae el mismo día de la semana: el lunes 3 de marzo de 2025.

Si tu negocio compara semanas o días contra el año pasado, revisa con tu Maestro qué fecha usar.

Un filtro por periodo y una suma para cada año:

Python
f = data["fecha"]
v26 = data.loc[(f >= "2026-01-01") & (f < "2026-07-01"), "ventas"].sum()
v25 = data.loc[(f >= "2025-01-01") & (f < "2025-07-01"), "ventas"].sum()
print(round(100 * (v26 - v25) / v25, 1))

FILTER suma solo las filas que cumplen su condición, así que los dos periodos caben en una consulta:

SQL
SELECT
  sum(ventas) FILTER (WHERE fecha >= '2026-01-01' AND fecha < '2026-07-01') AS ventas_2026,
  sum(ventas) FILTER (WHERE fecha >= '2025-01-01' AND fecha < '2025-07-01') AS ventas_2025
FROM ventas_diarias;

Inténtalo

La consulta compara, por sucursal, enero a junio de 2026 contra todo 2025, y todas parecen caer a la mitad. Corrige el periodo de 2025 para que sea el mismo tramo. Una buena respuesta tiene tres filas con cambios positivos, entre 7 y 9%. Si nunca habías visto FILTER, pídele a tu Maestro que te lo explique con esta misma consulta.

Por sucursal, compara las ventas de enero a junio de 2026 con las del mismo periodo de 2025 y calcula el cambio porcentual con un decimal.

Tu turno

Por sucursal, compara las ventas de enero a junio de 2026 con las del mismo periodo de 2025 y calcula el cambio porcentual con un decimal.

Tablas: ventas_diarias (fecha, sucursal, ventas)

ventas_diarias · 1,598 filas

ColumnaTipo
fecha El día de la venta.DATE
sucursal Roma, Coyoacán o Del Valle.VARCHAR
ventas Ventas del día en pesos.BIGINT

Primeras filas

fechasucursalventas
2025-01-02Roma12120
2025-01-02Coyoacán10650
2025-01-02Del Valle8880

Cada ejecución empieza con copias nuevas de las tablas del curso, así que puedes probar lo que quieras.

Listo para ejecutar tu consulta.

Ejecútalo tú

Inténtalo sin ayuda

Ahora en pandas: compara las ventas de toda la cadena en marzo de 2026 contra marzo de 2025 e imprime los dos totales y el cambio porcentual con un decimal. Una buena respuesta da 7.1.

Compara las ventas de la cadena en marzo de 2026 contra marzo de 2025: imprime los dos totales y el cambio porcentual con un decimal.

Compara las ventas de la cadena en marzo de 2026 contra marzo de 2025: imprime los dos totales y el cambio porcentual con un decimal.

Ejecuta tu código para ver lo que imprime y el valor de su última expresión. Cada ejecución empieza de nuevo.

Listo para ejecutar tu código.

Ejecuta tu código para ver su salida aquí.

Datos: ventas-diarias, 1,598 filas

Enter guarda una celda y Escape la deja como estaba. Deja una celda vacía para un valor faltante.

Los datos del ejercicio, "ventas-diarias". Tus cambios corren con tu código.
FilaQuitar
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Página 1 de 80

Ejecútalo tú

Comprueba lo que sabes: Tus datos llegan al 30 de junio de 2026. ¿Contra qué comparas lo vendido en 2026 para saber si vas mejor que el año pasado?