La solicitud

De Megan Collins, Directora de Ventas
Tu objetivo
Elige la comparación que da una lectura justa de lo que va de diciembre de 2025.
Lo que recibe Megan, y por qué
La lección
Las cifras de periodo contra periodo solo son justas cuando ambos periodos están completos y son comparables. Un panel que se actualiza a mitad de mes rompe la primera regla todos los días.
Qué hizo el panel
La consulta detrás del recuadro era una suma mensual simple, y luego un cálculo de crecimiento:
-- monthly revenue, then (this month - last month) / last month
SELECT CAST(DATE_TRUNC('month', o.order_date) AS DATE) AS month,
SUM(i.quantity * i.unit_price * (1 - i.discount_pct / 100.0)) AS net_revenue
FROM orders AS o
JOIN order_items AS i ON i.order_id = o.order_id
WHERE o.status = 'completed' AND i.quantity > 0
GROUP BY 1;
El 15 de diciembre la fila de diciembre contiene 14 días y la de noviembre 30. El -43.9% es el calendario hablando, no el negocio.
El mes hasta la fecha, bien hecho
Compara los mismos días del mismo mes de un año antes:
SELECT
SUM(r) FILTER (WHERE d >= '2025-12-01' AND d < '2025-12-15') AS mtd_2025,
SUM(r) FILTER (WHERE d >= '2024-12-01' AND d < '2024-12-15') AS mtd_2024
FROM (
SELECT o.order_date AS d,
i.quantity * i.unit_price * (1 - i.discount_pct / 100.0) AS r
FROM orders AS o
JOIN order_items AS i ON i.order_id = o.order_id
WHERE o.status = 'completed' AND i.quantity > 0
) AS lines;
Eso devuelve $164,124.86 y $151,464.25: diciembre sube un 8.4% hasta ahora. Las ventanas usan
>= start AND < end para que una marca de tiempo tarde el día 14 quede incluida y nada del día 15 se cuele.
¿Por qué no la primera mitad de noviembre?
Del 1 al 14 de noviembre de 2025 es el mismo número de días ($112,031.17), pero está antes del Black Friday, mientras que principios de diciembre es plena temporada de regalos. La comparación dice +46.5%, que es en gran parte la temporada otra vez. El año a año sobre los mismos días elimina el patrón estacional porque el año pasado tuvo el mismo calendario.
Una trampa más de periodo parcial
Los ingresos completados de los últimos días también están incompletos de otra manera: casi todos los
pedidos pendientes de Harbor & Pine están en los últimos días de 2025, y todavía no están “completed”. Los
periodos recientes filtrados con status = 'completed' siguen creciendo un tiempo después de terminar.
Cuando reportes el periodo más reciente, dilo.
Errores comunes
- Comparar un periodo parcial con uno completo. Toda actualización a mitad de mes muestra una “caída”.
- Arreglar el número de días pero ignorar la temporada. Principios de noviembre no es comparable con principios de diciembre.
- Usar promedios diarios en un mes sin terminar sin dividir entre los días transcurridos.
En SQL Server
Los límites del mes hasta la fecha salen de DATEFROMPARTS(YEAR(@d), MONTH(@d), 1) y los mismos días del
año pasado de DATEADD(year, -1, ...). No hay FILTER, así que usa SUM(CASE WHEN ... THEN r END).
EOMONTH(@d) da el último día de un mes cuando necesitas un límite de mes completo.
¡Linterna encendida!
Practicaste: period over periodmonth to dateseasonalityyoy growth
- Resuelto
- Sin pistas
- Al primer intento
