Odoo ya tiene muchos reportes. Por qué escribimos otros
La vista pivot responde preguntas nuevas. Los tableros congelan una vista. Ninguna de las dos guarda el criterio, que es lo que de verdad se discute cada lunes.
Odoo trae más reportes de los que la mayoría de las empresas llega a usar. Ventas por vendedor, margen por producto, antigüedad de saldos, valoración de inventario. Y encima te da las vistas para construir los tuyos sin escribir una línea de código. Empezar de cero sería absurdo.
Aun así, seguimos escribiendo reportes nuevos. No porque falten datos —están todos— sino por lo que pasa entre el dato y la decisión.
Los reportes de Odoo son consultivos
El reporte típico de Odoo no es un documento: es una vista. Entras a un modelo, filtras, agrupas, cambias a pivot, te pasas a gráfico, exportas. Es una herramienta de exploración, y como tal es de las mejores que hay en el mercado. Te deja hacer preguntas que nadie previó, en el momento en que se te ocurren.
El precio de esa flexibilidad es que la pregunta se rehace cada vez. Los filtros y las agrupaciones viven en la sesión de quien los armó. El lunes siguiente entra otra persona, elige un rango de fechas ligeramente distinto, se le pasa excluir las devoluciones, y el número no cuadra con el de la semana pasada. No es que el reporte esté mal. Es que no había un reporte: había una consulta.
Para una pregunta que se hace una vez, eso es perfecto. Para una que se hace cada semana, es una fuente inagotable de juntas para aclarar de dónde salió cada cifra.
Los tableros congelan la vista, no el criterio
Odoo respondió a esto con la aplicación de Tableros, montada sobre Odoo Spreadsheet. Fijas una vista, la insertas en una hoja con fórmulas que leen datos vivos, y dejas de depender de que cada quien reconstruya los filtros. Para un panel de seguimiento —ventas del mes, embudo comercial, cobranza— funciona muy bien, y es lo que recomendamos antes de proponer nada a medida.
Donde se pone cuesta arriba es cuando el reporte deja de ser una suma y empieza a ser un juicio. Un ejemplo real, de un análisis de rotación de inventario:
- El stock promedio de un producto no es su existencia de hoy: es el inventario a la fecha inicial y a la final, promediados.
- Una salida cuenta si va a cliente, a producción o a un ajuste, pero no si es un traspaso entre tus propios almacenes.
- Las compras se miden netas: menos las devoluciones a proveedor, más lo que apareció en un conteo físico.
- Un producto que entró hace tres semanas no puede juzgarse como estancado, así que sale de la calificación y se reporta aparte.
- Por debajo de 25% de rotación es alerta. Entre 25% y 100%, aceptable. Arriba de 100%, el inventario rotó completo en el período.
Nada de eso es imposible en una hoja de cálculo. Pero cada regla se convierte en otra columna auxiliar, otro condicional anidado, otra celda que alguien puede pisar sin enterarse. La lógica del negocio termina repartida entre cincuenta fórmulas, y el día que el umbral cambia de 25% a 30% hay que encontrarlas todas.
Lo que aporta un reporte escrito
Un reporte en código guarda las tres cosas que la hoja deja sueltas: qué entra, dónde están los umbrales, y cómo se presenta el resultado.
Las dos primeras son obvias. La tercera es la que más se subestima. Un reporte de inventario que devuelve ochocientas filas ordenadas por código de producto es técnicamente correcto e inútil en la práctica: nadie las lee. El mismo reporte ordenado con las alertas arriba, con los productos de rotación baja o nula ya desplegados y el resto plegado, se revisa en dos minutos.
Esa decisión —qué merece la atención de quien abre el reporte— es parte del reporte. No es maquillaje.
Cuál usar y cuándo
Ninguno sustituye a los otros. La regla con la que trabajamos:
- Vista pivot, lista o gráfico — para preguntas nuevas y exploratorias. Costo cero, disponible ya. Si la pregunta no se va a repetir, para aquí.
- Tablero de Odoo Spreadsheet — para seguir los mismos números de forma recurrente, cuando el cálculo es una suma, un promedio o una comparación directa.
- Reporte a medida — cuando el número depende de criterios que hay que dejar escritos: exclusiones, umbrales, clasificaciones, ventanas de tiempo.
Hay una señal bastante fiable para saber que cruzaste al tercer caso: si estás explicando por teléfono cómo se arma el reporte, o guardaste un instructivo de qué filtros poner en qué orden, el criterio no está en Odoo. Está en tu cabeza, y se pierde el día que te vas de vacaciones.
Una nota sobre dónde corre
Suele sorprender: varios de estos reportes no son módulos instalados, sino acciones de servidor construidas con Odoo Studio. Eso significa que también funcionan en Odoo Online, donde no se puede instalar código a medida. Misma lógica, misma salida, distinta vía de entrega según dónde viva tu base.
Es la diferencia entre «eso no se puede en tu Odoo» y «eso se entrega distinto en tu Odoo».
En el catálogo están los reportes que ya tenemos escritos, con el detalle de qué calcula cada uno y qué necesita para funcionar. Si el tuyo no está, contratar horas suele salir más barato que la tercera junta para decidir de dónde salió el número.

