Una pyme que usa Odoo puede gobernarse con unos diez indicadores: ventas, margen bruto, cartera vencida, días de la calle, cobertura de inventario y pocos más. Lo importante es fijar por escrito cómo se calcula cada uno y de qué modelo de Odoo sale, para que todos obtengan la misma cifra.
¿Qué indicadores debería mirar una pyme que usa Odoo, y cómo se definen para que todos lean lo mismo? Esto es para gerentes y dueños que quieren una lista corta y defendible. La respuesta: unos diez indicadores, cada uno con su definición escrita, su tabla de origen en Odoo y una consulta que se pueda revisar.
¿Cuántos indicadores son demasiados?
El catálogo de Sixara tiene 128 métricas en 15 módulos. No es una lista para mirar completa: es un menú. Un gerente no necesita 128 números, necesita los pocos que cambian una decisión. El resto sirve para cuando algo se mueve y quieres saber por qué: la métrica general te avisa y las demás te explican.
Una regla práctica nuestra, no una norma: un indicador merece estar en la reunión semanal si cumple tres condiciones.
- Tiene un responsable que puede moverlo.
- Tiene una decisión asociada: si sube, haces algo distinto que si baja.
- Tiene una definición escrita que todos aceptan.
Los que no cumplen eso se quedan en el análisis, disponibles cuando los necesites, pero fuera de la mesa. Para una pyme que vende, cobra y mantiene stock, ocho a diez bastan para empezar. Cómo se arma el reporte con ellos está en este artículo sobre reportes gerenciales.
¿Cómo se define la venta neta, el margen bruto, la cartera vencida y la cobertura?
Cuatro definiciones tal como están en el catálogo:
- Venta neta (métrica
ventas, «Ventas facturadas»): total de facturas de clientes publicadas, neto de notas de crédito. - Margen bruto (
margen_bruto): (venta menos costo estándar) dividido por la venta, calculado sobre las líneas de producto de facturas publicadas. Los servicios quedan fuera. - Cartera vencida (
deuda_vencida): saldo de facturas de clientes con vencimiento pasado. - Cobertura (
dias_cobertura): días que alcanza el disponible al ritmo de venta de los últimos 90 días. Cuando se agrupa, muestra el menor del grupo, es decir, el producto más justo.
Cada una de esas frases tiene detrás una consulta SQL exacta, visible en la ficha de la métrica. Por ejemplo, el margen bruto:
select round(100 * (sum(l.subtotal) - sum(sign(l.subtotal) * l.cantidad * coalesce(cp.costo, p.costo, 0))) / nullif(sum(l.subtotal), 0), 1)
from core.lineas_factura l join core.facturas f on f.id = l.factura_id left join core.productos p on p.id = l.producto_id
left join core.contactos c on c.id = f.contacto_id left join core.empresas e on e.id = f.empresa_id
left join core.costos_producto cp on cp.producto_id = p.id and cp.empresa_id = f.empresa_id
where f.estado = 'posted' and coalesce(p.tipo, '') <> 'servicio'
Dos detalles del margen que conviene tener presentes. El costo usado es el costo estándar que tienes cargado en Odoo, o el costo por empresa si existe, de modo que el margen es tan bueno como esos costos. Y si un producto no tiene costo, el cálculo lo toma como cero y el margen sale inflado. Por eso el módulo de inventario cuenta aparte las facturas con productos sin costo, un tema que se explica en el artículo sobre quiebres de stock.
¿Qué tabla de Odoo alimenta cada uno?
Esta tabla resume diez indicadores del catálogo. La columna de origen indica el modelo de Odoo del que sale el dato; las tablas core.* son la copia normalizada que usa Sixara. Cada nombre enlaza a su ficha en el glosario.
| Indicador | Qué mide | Origen en Odoo |
|---|---|---|
| Ventas facturadas | Facturas de clientes publicadas, neto de notas de crédito | account.move |
| Pedidos de venta | Monto de pedidos confirmados | sale.order |
| Ticket promedio | Promedio por factura de cliente publicada | account.move |
| Margen bruto | (Venta − costo estándar) / venta en líneas de producto | account.move, product.product |
| Deuda vencida | Saldo de facturas con vencimiento pasado | account.move |
| Días de la calle | Deuda por cobrar sobre la venta diaria de 90 días | account.move |
| Días de cobertura | Días que alcanza el disponible al ritmo de venta | stock.quant, stock.move |
| Quiebres en 15 días | Productos con disponible para menos de 15 días | stock.quant, stock.move |
| Capital sin rotación | Stock valorizado de productos sin despachos en 90 días | stock.quant, stock.move |
| Clientes que compraron | Clientes distintos con al menos una factura en el período | account.move, res.partner |
Verás que la mitad sale de las facturas y la otra mitad del inventario. Eso es normal: son las dos fuentes que más pesan en el resultado de una pyme. Puedes explorar el resto de los módulos y métricas en la página de módulos.
Leer los indicadores de a pares ayuda a no engañarse. Ventas y margen bruto van juntos, porque vender más con menos margen puede ser un mal negocio. Deuda vencida y días de la calle van juntos, porque una mide cuánto está atrasado y la otra cuánto tarda en cobrarse todo. Cobertura y capital sin rotación van juntos, porque uno mide lo que falta y el otro lo que sobra.
¿Cada cuánto se revisa cada indicador?
No todos al mismo ritmo. Una guía razonable, que cada empresa ajusta según su rubro:
- Cada semana: ventas facturadas, deuda vencida, quiebres en 15 días. Son los que piden una acción rápida.
- Cada mes: margen bruto, ticket promedio, clientes que compraron, días de la calle. Se mueven despacio y se interpretan mejor en períodos completos.
- Cuando algo cambia: capital sin rotación y rotación anual. Interesan al ordenar compras o al cerrar un trimestre.
La vigilancia nocturna cubre la parte que el calendario no cubre: si un indicador se sale de lo esperado entre dos reuniones, una regla deja un hallazgo y no tienes que esperar al siguiente lunes para enterarte.
¿Por qué dos personas sacan dos cifras distintas del mismo Odoo?
Casi nunca porque Odoo esté mal. Es porque cada persona aplica, sin decirlo, una definición distinta. Las diferencias más frecuentes:
- Estado de la factura. Una cuenta borradores y publicadas, la otra solo publicadas.
- Notas de crédito. Un reporte las resta, el otro las ignora.
- Fecha. Pedido, factura y contabilización pueden caer en meses distintos.
- Empresa. En instalaciones multiempresa, una cifra suma todas y otra solo la compañía activa.
- Costo. El margen cambia según se use costo estándar o costo real, y si un producto no tiene costo, el margen sale inflado.
En Constructora Sur, finanzas dice que octubre cerró con 500.000 en ventas y la gerente comercial dice 520.000. La diferencia de 20.000 son facturas en borrador que Odoo muestra en el reporte de ventas pero que contabilidad no ha publicado. Ninguno se equivocó: medían cosas distintas con el mismo nombre.
La salida es la misma en todos los casos: una definición única por indicador y una consulta que se pueda leer. Por eso en Sixara cada métrica cita su SQL, y la IA no escribe consultas: elige del catálogo y el núcleo compone la consulta parametrizada.
¿Qué es un puntaje de salud por área?
Es una forma de resumir muchos hallazgos en un solo número por área, de 0 a 100, para saber dónde mirar primero. Parte en 100 y descuenta según los hallazgos abiertos: una alerta de severidad alta pesa 25, una media 10 y una baja 3. El descuento es decreciente, con la fórmula 100 · e−peso/150, para que diez problemas no dejen el área en cero y el puntaje siga distinguiendo un área mala de una peor.
El área de cobranza de Acme tiene 2 hallazgos altos y 3 medios. El peso suma 2 × 25 + 3 × 10 = 80, y el puntaje es 100 · e−80/150, cerca de 59. Si se resuelven los dos altos, el peso baja a 30 y el puntaje sube a unos 82.
La IA no calcula este número. Sale de los hallazgos que dejaron las reglas, y cada baja puede explicarse con la lista que la originó. Es un resumen para orientar, no un veredicto: la decisión está en los hallazgos de abajo.
Si quieres definir tus diez indicadores con tus datos de Odoo, el Diagnóstico de US$349 dura 4 semanas y se descuenta si contratas dentro de los 30 días siguientes. Si prefieres mirar primero el panel con datos de ejemplo, agenda una demo.
Escribimos sobre cómo leer un negocio con sus propios datos. Cada cifra de nuestros ejemplos es ficticia y está marcada como tal.