🔒 Fórmulas FARO por KPI · Activo Etapa 5.2 · NDA OBLIGATORIO
← Índice de activos
Activo Etapa 5.2 · Versión V1 — 1.000 fórmulas iniciales diseñadas

Fórmulas FARO por KPI

Activo canónico FARO Connect correspondiente a la etapa 5.2 de la tabla maestra. Documentación técnica completa con cruces hacia los modelos relacionados del pack NDA.

← Tabla maestra (etapa 5.2) ↑ Hub Modelos NDA ▦ Índice 29 activos ⬇ Descargar .txt fuente
📄 Fuente: Fórmulas FARO por KPI Versión V1.txt 📏 Tamaño: 54.7 KB 📑 Secciones: 43 H2 · 20 H3 📊 Tablas: 430 filas
✓ Header canónico "ACTIVO FARO NECESARIO"✓ Versión declarada✓ Bloques de código/fórmula✓ 430 filas de tabla✓ 43 secciones jerárquicas
🔗 Cruza con · piezas relacionadas del pack

ACTIVO FARO NECESARIO

Fórmulas FARO por KPI

Versión V1 — 1.000 fórmulas iniciales diseñadas

---

1. Objetivo del activo

Definir la biblioteca de fórmulas que FARO utiliza para calcular KPIs por:

Este activo permite que FARO ejecute fórmulas simples, compuestas, comparativas, contextuales y ponderadas para alimentar:

---

2. Tesis FARO

FARO no debe tener KPIs escritos a mano como fórmulas sueltas.

Debe tener un motor de fórmulas gobernado, donde cada KPI tenga:

La regla madre:

Todo KPI FARO debe tener fórmula trazable, ejecutable, versionada y auditable.

Si no hay fórmula clara, el KPI es opinión con porcentaje. Y de eso las empresas ya tienen bastante.

---

3. Diferencia entre métrica, KPI, fórmula, alerta y tensión

ConceptoQué esEjemplo
MétricaDato medible simpleVenta neta
FórmulaCálculo que produce una métrica o KPIVenta - descuentos
KPIIndicador con propósito ejecutivoMargen bruto
AlertaDesvío contra umbralMargen menor al 24%
TensiónContradicción entre KPIsVenta sube, margen baja
AcciónRespuesta ejecutivaRevisar descuentos

---

4. Tipos de fórmulas FARO

TipoDescripciónEjemplo
SimpleCálculo directoVenta neta = venta bruta - descuentos
PorcentualRelación entre dos variablesMargen % = margen / venta neta
PromedioMedia simple o ponderadaTicket promedio
AcumuladaSuma por períodoVenta mensual
ComparativaActual vs anteriorVariación mensual
PonderadaUsa pesos por contextoFARO Score
CondicionalDepende de reglaComisión si margen supera mínimo
CompuestaCombina varias fórmulasRentabilidad por cliente
TemporalUsa días, vencimientos o agingDSO
ContextualCambia según industria, canal o rubroMargen esperado por rubro
Predictiva básicaProyecta con históricoForecast de ventas
De confianzaAjusta por calidad del datoKPI con confianza reducida

---

5. Convenciones de fórmula FARO

Para estandarizar, FARO debería usar una sintaxis interna.

Funciones base

FunciónUso
`SUM()`Suma valores
`COUNT()`Cuenta registros
`AVG()`Promedio
`MAX()`Máximo
`MIN()`Mínimo
`SAFE_DIVIDE(a,b)`Divide evitando error por cero
`DATEDIFF(a,b)`Diferencia de fechas
`IF(condition,a,b)`Condición
`COALESCE(a,b)`Valor alternativo si es nulo
`WEIGHTED_AVG(value,weight)`Promedio ponderado
`PERIOD_PREVIOUS(value)`Valor del período anterior
`VAR_PCT(current,previous)`Variación porcentual
`SCORE_BAND(value,thresholds)`Clasificación por rango

---

6. Dimensiones obligatorias de ejecución

Cada fórmula debe poder ejecutarse con filtros o agrupaciones.

DimensiónEjemplo
company_idEmpresa
branch_idSucursal
area_codeComercial, Finanzas, Stock
module_codeVentas, Cobranza, Compras
responsible_user_idResponsable
seller_idVendedor
customer_idCliente
product_idProducto
supplier_idProveedor
project_idProyecto
cost_center_idCentro de costo
channel_codeCanal
rubro_codeRubro
subrubro_codeSubrubro
industry_codeIndustria
period_idSemana, mes, trimestre, año

---

7. Estructura técnica de cada fórmula

Cada fórmula FARO debe tener esta ficha.

CampoDescripción
formula_idIdentificador
formula_codeCódigo único
kpi_codeKPI asociado
formula_nameNombre
formula_typeSimple, compuesta, ponderada, condicional
expressionFórmula ejecutable
data_sourcesFuentes requeridas
input_fieldsCampos necesarios
output_typeMonto, porcentaje, cantidad, score, días
aggregation_levelEmpresa, sucursal, área, responsable
dimensionsDimensiones permitidas
frequencyFrecuencia de cálculo
minimum_data_qualityCalidad mínima requerida
threshold_rulesUmbrales
alert_codesAlertas vinculadas
tension_codesTensiones vinculadas
action_codesAcciones sugeridas
score_impactImpacto en FARO Score
industry_scopeIndustrias donde aplica
versionVersión
active_statusActiva/inactiva

---

8. Volumen recomendado

NivelCantidad de fórmulas
MVP mínimo120 a 180
MVP sólido200 a 300
Business400 a 600
Enterprise800 a 1.000
Neural / Multiindustria1.000 a 1.500+

Decisión recomendada

Diseñar 1.000 fórmulas iniciales.
Activar 180 en MVP.
Activar 450 en Business.
Activar 800 en Enterprise.
Usar 1.000+ en Neural.

---

9. Familias de fórmulas FARO

La biblioteca V1 se organiza en 25 familias, con 40 fórmulas por familia.

Familia de fórmulasCantidad
1Comercial / Ventas40
2Margen / Rentabilidad comercial40
3Clientes / CRM40
4Cotizaciones / Conversión40
5Descuentos / Bonificaciones40
6Comisiones / Incentivos40
7Caja / Bancos40
8Cobranza / Cuentas por cobrar40
9Pagos / Cuentas por pagar40
10Gastos / Administración40
11Compras40
12Proveedores40
13Stock / Inventario40
14Reposición / Abastecimiento40
15Logística / Entregas40
16Operaciones / Productividad40
17RRHH / Personas40
18Sueldos / Costo laboral40
19Proyectos / Obras / Servicios40
20Contratos / Abonos40
21Calidad / Reclamos / SLA40
22Datos / Calidad / Auditoría40
23Workflow / Acciones / Evidencia40
24FARO Score / Dirección40
25Industria / Contexto / Benchmark40
**Total V1****1.000**

---

10. Núcleo MVP — 180 fórmulas prioritarias

Para el MVP, FARO debe activar primero fórmulas que demuestren la cadena completa:

dato → KPI → alerta → tensión → acción → Score

---

10.1 Comercial / Ventas

15 fórmulas MVP

CódigoKPI / FórmulaExpresión
FML-COM-001Venta bruta`SUM(sales.gross_amount)`
FML-COM-002Venta neta`SUM(sales.gross_amount - sales.discount_amount - sales.returns_amount)`
FML-COM-003Cantidad vendida`SUM(sales.quantity)`
FML-COM-004Tickets / operaciones`COUNT(DISTINCT sales.transaction_id)`
FML-COM-005Ticket promedio`SAFE_DIVIDE(venta_neta, tickets)`
FML-COM-006Venta por sucursal`SUM(sales.net_amount) GROUP BY branch_id`
FML-COM-007Venta por vendedor`SUM(sales.net_amount) GROUP BY seller_id`
FML-COM-008Venta por cliente`SUM(sales.net_amount) GROUP BY customer_id`
FML-COM-009Venta por producto`SUM(sales.net_amount) GROUP BY product_id`
FML-COM-010Venta por rubro`SUM(sales.net_amount) GROUP BY rubro_code`
FML-COM-011Venta por canal`SUM(sales.net_amount) GROUP BY channel_code`
FML-COM-012Variación venta vs período anterior`VAR_PCT(venta_neta, PERIOD_PREVIOUS(venta_neta))`
FML-COM-013Cumplimiento objetivo ventas`SAFE_DIVIDE(venta_neta, sales_target)`
FML-COM-014Participación de sucursal en ventas`SAFE_DIVIDE(venta_sucursal, venta_total_empresa)`
FML-COM-015Concentración de ventas top clientes`SAFE_DIVIDE(SUM(top_10_customers.sales), venta_total)`

---

10.2 Margen / Rentabilidad Comercial

15 fórmulas MVP

CódigoKPI / FórmulaExpresión
FML-MAR-001Costo de mercadería vendida`SUM(sales.quantity * sales.unit_cost)`
FML-MAR-002Margen bruto monto`SUM(sales.net_amount - sales.cost_amount)`
FML-MAR-003Margen bruto %`SAFE_DIVIDE(margen_bruto_monto, venta_neta)`
FML-MAR-004Margen por producto`SAFE_DIVIDE(SUM(product.net_amount - product.cost_amount), SUM(product.net_amount))`
FML-MAR-005Margen por rubro`SAFE_DIVIDE(SUM(rubro.net_amount - rubro.cost_amount), SUM(rubro.net_amount))`
FML-MAR-006Margen por vendedor`SAFE_DIVIDE(SUM(seller.net_amount - seller.cost_amount), SUM(seller.net_amount))`
FML-MAR-007Margen por cliente`SAFE_DIVIDE(SUM(customer.net_amount - customer.cost_amount), SUM(customer.net_amount))`
FML-MAR-008Margen por canal`SAFE_DIVIDE(SUM(channel.net_amount - channel.cost_amount), SUM(channel.net_amount))`
FML-MAR-009Margen esperado vs real`actual_margin_pct - expected_margin_pct`
FML-MAR-010Venta bajo margen mínimo`SUM(IF(actual_margin_pct < minimum_margin_pct, sales.net_amount, 0))`
FML-MAR-011% venta bajo margen mínimo`SAFE_DIVIDE(venta_bajo_margen_minimo, venta_neta)`
FML-MAR-012Margen perdido por descuento`SUM(discount_amount * expected_margin_pct)`
FML-MAR-013Rentabilidad neta comercial estimada`margen_bruto_monto - commercial_variable_costs`
FML-MAR-014Variación margen vs período anterior`VAR_PCT(margen_bruto_pct, PERIOD_PREVIOUS(margen_bruto_pct))`
FML-MAR-015Aporte al margen por rubro`SAFE_DIVIDE(margen_rubro_monto, margen_total_monto)`

---

10.3 Descuentos / Bonificaciones

10 fórmulas MVP

CódigoKPI / FórmulaExpresión
FML-DES-001Descuento total`SUM(sales.discount_amount)`
FML-DES-002Descuento promedio %`SAFE_DIVIDE(SUM(discount_amount), SUM(gross_amount))`
FML-DES-003Descuento por vendedor`SAFE_DIVIDE(SUM(seller.discount_amount), SUM(seller.gross_amount))`
FML-DES-004Descuento por cliente`SAFE_DIVIDE(SUM(customer.discount_amount), SUM(customer.gross_amount))`
FML-DES-005Descuento por rubro`SAFE_DIVIDE(SUM(rubro.discount_amount), SUM(rubro.gross_amount))`
FML-DES-006Operaciones con descuento superior al límite`COUNT(IF(discount_pct > authorized_discount_pct, transaction_id, NULL))`
FML-DES-007Venta con descuento no autorizado`SUM(IF(discount_authorized = false, net_amount, 0))`
FML-DES-008Impacto descuento en margen`SUM(discount_amount * gross_margin_pct_before_discount)`
FML-DES-009Variación descuento promedio`VAR_PCT(discount_avg_pct, PERIOD_PREVIOUS(discount_avg_pct))`
FML-DES-010Descuento crítico ponderado`discount_pct * product_criticality_weight * margin_gap_weight`

---

10.4 Clientes / CRM

10 fórmulas MVP

CódigoKPI / FórmulaExpresión
FML-CLI-001Clientes activos`COUNT(DISTINCT customer_id WHERE sales_in_period > 0)`
FML-CLI-002Clientes nuevos`COUNT(customer_id WHERE first_purchase_date BETWEEN period_start AND period_end)`
FML-CLI-003Clientes inactivos`COUNT(customer_id WHERE days_since_last_purchase > inactivity_threshold)`
FML-CLI-004Venta promedio por cliente`SAFE_DIVIDE(venta_neta, clientes_activos)`
FML-CLI-005Margen promedio por cliente`SAFE_DIVIDE(margen_total, clientes_activos)`
FML-CLI-006Rentabilidad por cliente`SUM(customer.margin_amount - customer.service_cost - customer.logistics_cost)`
FML-CLI-007Concentración cliente principal`SAFE_DIVIDE(sales_top_customer, venta_total)`
FML-CLI-008Frecuencia de compra`SAFE_DIVIDE(COUNT(transactions), COUNT(DISTINCT customer_id))`
FML-CLI-009Recencia promedio`AVG(DATEDIFF(period_end, customer.last_purchase_date))`
FML-CLI-010Riesgo cliente ponderado`credit_risk_score * exposure_amount * overdue_weight`

---

10.5 Cotizaciones / Conversión

10 fórmulas MVP

CódigoKPI / FórmulaExpresión
FML-COT-001Cotizaciones emitidas`COUNT(quote_id)`
FML-COT-002Monto cotizado`SUM(quote.total_amount)`
FML-COT-003Cotizaciones ganadas`COUNT(quote_id WHERE status='WON')`
FML-COT-004Cotizaciones perdidas`COUNT(quote_id WHERE status='LOST')`
FML-COT-005Tasa de conversión`SAFE_DIVIDE(cotizaciones_ganadas, cotizaciones_emitidas)`
FML-COT-006Monto convertido`SUM(quote.total_amount WHERE status='WON')`
FML-COT-007Conversión por vendedor`SAFE_DIVIDE(won_quotes_seller, total_quotes_seller)`
FML-COT-008Cotizaciones vencidas`COUNT(quote_id WHERE valid_until < today AND status='OPEN')`
FML-COT-009Tiempo promedio de cierre`AVG(DATEDIFF(close_date, quote_date))`
FML-COT-010Margen esperado cotizado`SAFE_DIVIDE(SUM(quote.expected_margin_amount), SUM(quote.total_amount))`

---

10.6 Caja / Bancos

10 fórmulas MVP

CódigoKPI / FórmulaExpresión
FML-CAJ-001Caja disponible`SUM(bank_accounts.available_balance) + SUM(cash_register.balance)`
FML-CAJ-002Ingresos del período`SUM(cash_movements.amount WHERE movement_type='IN')`
FML-CAJ-003Egresos del período`SUM(cash_movements.amount WHERE movement_type='OUT')`
FML-CAJ-004Flujo neto`ingresos_periodo - egresos_periodo`
FML-CAJ-005Saldo proyectado`caja_disponible + projected_collections - projected_payments`
FML-CAJ-006Cobertura de caja en días`SAFE_DIVIDE(caja_disponible, avg_daily_outflows)`
FML-CAJ-007% ingresos conciliados`SAFE_DIVIDE(reconciled_inflows, total_inflows)`
FML-CAJ-008% egresos conciliados`SAFE_DIVIDE(reconciled_outflows, total_outflows)`
FML-CAJ-009Caja por sucursal`SUM(cash_balance) GROUP BY branch_id`
FML-CAJ-010Variación caja vs período anterior`VAR_PCT(caja_disponible, PERIOD_PREVIOUS(caja_disponible))`

---

10.7 Cobranza / Cuentas por Cobrar

15 fórmulas MVP

CódigoKPI / FórmulaExpresión
FML-COB-001Cuentas por cobrar total`SUM(receivables.open_amount)`
FML-COB-002Saldo vencido`SUM(open_amount WHERE due_date < today)`
FML-COB-003Saldo no vencido`SUM(open_amount WHERE due_date >= today)`
FML-COB-004% cartera vencida`SAFE_DIVIDE(saldo_vencido, cuentas_por_cobrar_total)`
FML-COB-005Días promedio de mora`AVG(DATEDIFF(today, due_date) WHERE due_date < today)`
FML-COB-006DSO`SAFE_DIVIDE(accounts_receivable, avg_daily_credit_sales)`
FML-COB-007Cobranza del período`SUM(collections.amount)`
FML-COB-008Efectividad de cobranza`SAFE_DIVIDE(collections.amount, receivables_due_in_period)`
FML-COB-009Mora por cliente`SUM(open_amount WHERE due_date < today) GROUP BY customer_id`
FML-COB-010Mora por vendedor`SUM(overdue_amount) GROUP BY seller_id`
FML-COB-011Exposición crediticia cliente`open_amount + uninvoiced_orders_amount`
FML-COB-012Uso de límite de crédito`SAFE_DIVIDE(credit_exposure, credit_limit)`
FML-COB-013Clientes con crédito excedido`COUNT(customer_id WHERE credit_exposure > credit_limit)`
FML-COB-014Promesas de pago incumplidas`COUNT(promise_id WHERE promise_date < today AND paid=false)`
FML-COB-015Riesgo de cobranza ponderado`overdue_amount * risk_score * days_overdue_weight`

---

10.8 Pagos / Cuentas por Pagar

10 fórmulas MVP

CódigoKPI / FórmulaExpresión
FML-PAG-001Cuentas por pagar total`SUM(payables.open_amount)`
FML-PAG-002Pagos vencidos`SUM(open_amount WHERE due_date < today)`
FML-PAG-003Pagos próximos 7 días`SUM(open_amount WHERE due_date BETWEEN today AND today+7)`
FML-PAG-004Pagos críticos`SUM(open_amount WHERE supplier_criticality='HIGH')`
FML-PAG-005Días promedio pago proveedor`AVG(DATEDIFF(payment_date, invoice_date))`
FML-PAG-006% pagos vencidos`SAFE_DIVIDE(pagos_vencidos, cuentas_por_pagar_total)`
FML-PAG-007Concentración deuda proveedor`SAFE_DIVIDE(payable_top_supplier, cuentas_por_pagar_total)`
FML-PAG-008Pagos sin comprobante`SUM(payment.amount WHERE document_id IS NULL)`
FML-PAG-009Pagos fuera de política`COUNT(payment_id WHERE approval_required=true AND approved=false)`
FML-PAG-010Presión de pagos sobre caja`SAFE_DIVIDE(payments_due_7_days, caja_disponible)`

---

10.9 Gastos / Administración

10 fórmulas MVP

CódigoKPI / FórmulaExpresión
FML-GAS-001Gasto total`SUM(expenses.amount)`
FML-GAS-002Gasto por área`SUM(expenses.amount) GROUP BY area_code`
FML-GAS-003Gasto por sucursal`SUM(expenses.amount) GROUP BY branch_id`
FML-GAS-004Gasto por centro de costo`SUM(expenses.amount) GROUP BY cost_center_id`
FML-GAS-005Gasto sobre ventas`SAFE_DIVIDE(gasto_total, venta_neta)`
FML-GAS-006Gasto fijo total`SUM(expenses.amount WHERE expense_type='FIXED')`
FML-GAS-007Gasto variable total`SUM(expenses.amount WHERE expense_type='VARIABLE')`
FML-GAS-008Variación gasto vs período anterior`VAR_PCT(gasto_total, PERIOD_PREVIOUS(gasto_total))`
FML-GAS-009Gasto sin comprobante`SUM(expenses.amount WHERE document_id IS NULL)`
FML-GAS-010Desvío contra presupuesto`gasto_real - gasto_presupuestado`

---

10.10 Compras

10 fórmulas MVP

CódigoKPI / FórmulaExpresión
FML-CMP-001Compra total`SUM(purchases.total_amount)`
FML-CMP-002Compras por proveedor`SUM(purchases.total_amount) GROUP BY supplier_id`
FML-CMP-003Compras por producto`SUM(purchases.total_amount) GROUP BY product_id`
FML-CMP-004Variación costo compra`VAR_PCT(current_unit_cost, previous_unit_cost)`
FML-CMP-005Órdenes de compra emitidas`COUNT(purchase_order_id)`
FML-CMP-006Órdenes pendientes`COUNT(po_id WHERE status IN ('OPEN','PARTIAL'))`
FML-CMP-007Recepción completa %`SAFE_DIVIDE(received_quantity, ordered_quantity)`
FML-CMP-008Compra urgente %`SAFE_DIVIDE(urgent_purchase_amount, total_purchase_amount)`
FML-CMP-009Ahorro por negociación`SUM(reference_price - actual_price) * quantity`
FML-CMP-010Sobrecosto por compra urgente`SUM((urgent_price - standard_price) * quantity)`

---

10.11 Proveedores

10 fórmulas MVP

CódigoKPI / FórmulaExpresión
FML-PRV-001Proveedores activos`COUNT(DISTINCT supplier_id WHERE purchases_in_period > 0)`
FML-PRV-002Cumplimiento proveedor`SAFE_DIVIDE(on_time_deliveries, total_deliveries)`
FML-PRV-003Lead time promedio proveedor`AVG(DATEDIFF(receipt_date, purchase_order_date))`
FML-PRV-004Variación precio proveedor`VAR_PCT(current_supplier_price, previous_supplier_price)`
FML-PRV-005Dependencia proveedor`SAFE_DIVIDE(purchase_amount_supplier, total_purchase_amount)`
FML-PRV-006Proveedores críticos sin alternativa`COUNT(supplier_id WHERE critical=true AND alternative_supplier=false)`
FML-PRV-007Calidad proveedor`SAFE_DIVIDE(accepted_quantity, received_quantity)`
FML-PRV-008Reclamos a proveedor`COUNT(supplier_claim_id)`
FML-PRV-009Condición promedio de pago proveedor`AVG(payment_term_days)`
FML-PRV-010Score proveedor`reliability*0.35 + price_score*0.25 + quality*0.25 + payment_terms*0.15`

---

10.12 Stock / Inventario

15 fórmulas MVP

CódigoKPI / FórmulaExpresión
FML-STK-001Stock disponible`SUM(stock.on_hand - stock.reserved)`
FML-STK-002Stock valorizado`SUM(stock.quantity * product.unit_cost)`
FML-STK-003Stock por producto`SUM(stock.quantity) GROUP BY product_id`
FML-STK-004Stock por sucursal`SUM(stock.quantity) GROUP BY branch_id`
FML-STK-005Stock por depósito`SUM(stock.quantity) GROUP BY warehouse_id`
FML-STK-006Productos bajo mínimo`COUNT(product_id WHERE stock_available < min_stock)`
FML-STK-007Productos con stock crítico`COUNT(product_id WHERE stock_status='CRITICAL')`
FML-STK-008Productos con sobrestock`COUNT(product_id WHERE stock_available > max_stock)`
FML-STK-009Rotación de stock`SAFE_DIVIDE(cost_of_goods_sold, avg_inventory_value)`
FML-STK-010Días de inventario`SAFE_DIVIDE(avg_inventory_value, avg_daily_cogs)`
FML-STK-011Quiebre de stock`COUNT(product_id WHERE stock_available <= 0 AND demand_recent > 0)`
FML-STK-012Stock inmovilizado`SUM(stock_value WHERE days_without_sale > threshold)`
FML-STK-013% stock inmovilizado`SAFE_DIVIDE(stock_inmovilizado, stock_valorizado)`
FML-STK-014Diferencia inventario`physical_count - system_stock`
FML-STK-015Valor de stock crítico rentable`SUM(stockout_risk_value WHERE margin_profile='HIGH')`

---

10.13 Reposición / Abastecimiento

10 fórmulas MVP

CódigoKPI / FórmulaExpresión
FML-REP-001Punto de pedido sugerido`avg_daily_sales * supplier_lead_time_days + safety_stock`
FML-REP-002Cantidad sugerida de reposición`max_stock - stock_available`
FML-REP-003Cobertura de stock días`SAFE_DIVIDE(stock_available, avg_daily_sales)`
FML-REP-004Riesgo de quiebre`SCORE_BAND(stock_coverage_days, thresholds)`
FML-REP-005Prioridad de reposición`margin_weight * rotation_weight * stockout_risk_weight * supplier_lead_time_weight`
FML-REP-006Necesidad de compra crítica`SUM(IF(stock_status='CRITICAL', reorder_quantity, 0))`
FML-REP-007Compra sugerida valorizada`SUM(reorder_quantity * unit_cost)`
FML-REP-008Reposición atrasada`COUNT(product_id WHERE reorder_required=true AND purchase_order_open=false)`
FML-REP-009Demanda promedio diaria`SAFE_DIVIDE(quantity_sold_last_n_days, n_days)`
FML-REP-010Stock de seguridad`demand_std_dev * service_level_factor * SQRT(lead_time_days)`

---

10.14 Logística / Entregas

10 fórmulas MVP

CódigoKPI / FórmulaExpresión
FML-LOG-001Entregas totales`COUNT(delivery_id)`
FML-LOG-002Entregas a tiempo`COUNT(delivery_id WHERE delivered_at <= promised_at)`
FML-LOG-003% entrega a tiempo`SAFE_DIVIDE(entregas_a_tiempo, entregas_totales)`
FML-LOG-004Entregas fallidas`COUNT(delivery_id WHERE status='FAILED')`
FML-LOG-005% entregas fallidas`SAFE_DIVIDE(entregas_fallidas, entregas_totales)`
FML-LOG-006Costo logístico total`SUM(delivery.logistics_cost)`
FML-LOG-007Costo logístico por entrega`SAFE_DIVIDE(costo_logistico_total, entregas_totales)`
FML-LOG-008Costo logístico sobre ventas`SAFE_DIVIDE(costo_logistico_total, venta_neta)`
FML-LOG-009Demora promedio entrega`AVG(DATEDIFF(delivered_at, promised_at) WHERE delivered_at > promised_at)`
FML-LOG-010Entregas críticas demoradas`COUNT(delivery_id WHERE criticality='HIGH' AND delivered_at > promised_at)`

---

10.15 RRHH / Personas

10 fórmulas MVP

CódigoKPI / FórmulaExpresión
FML-RRHH-001Dotación total`COUNT(employee_id WHERE status='ACTIVE')`
FML-RRHH-002Dotación por área`COUNT(employee_id) GROUP BY area_code`
FML-RRHH-003Dotación por sucursal`COUNT(employee_id) GROUP BY branch_id`
FML-RRHH-004Costo laboral total`SUM(payroll.gross_salary + payroll.employer_contributions + payroll.variable_pay)`
FML-RRHH-005Costo laboral sobre ventas`SAFE_DIVIDE(costo_laboral_total, venta_neta)`
FML-RRHH-006Venta por empleado`SAFE_DIVIDE(venta_neta, dotacion_total)`
FML-RRHH-007Margen por empleado`SAFE_DIVIDE(margen_bruto_monto, dotacion_total)`
FML-RRHH-008Ausentismo %`SAFE_DIVIDE(absent_days, scheduled_work_days)`
FML-RRHH-009Rotación de personal`SAFE_DIVIDE(employee_terminations, avg_headcount)`
FML-RRHH-010Productividad comercial por vendedor`SAFE_DIVIDE(venta_vendedor, vendedor_active_days)`

---

10.16 Comisiones

10 fórmulas MVP

CódigoKPI / FórmulaExpresión
FML-COMIS-001Comisión por venta bruta`sales.gross_amount * commission_rate`
FML-COMIS-002Comisión por venta neta`sales.net_amount * commission_rate`
FML-COMIS-003Comisión por margen`margin_amount * commission_rate`
FML-COMIS-004Comisión por margen cobrado`collected_margin_amount * commission_rate`
FML-COMIS-005Comisión bloqueada por mora`IF(customer_overdue=true, 0, calculated_commission)`
FML-COMIS-006Comisión bloqueada por margen bajo`IF(actual_margin_pct < minimum_margin_pct, 0, calculated_commission)`
FML-COMIS-007Comisión ajustada por descuento`base_commission * (1 - discount_penalty_factor)`
FML-COMIS-008Comisión total vendedor`SUM(commission_amount) GROUP BY seller_id`
FML-COMIS-009Comisión sobre margen generado`SAFE_DIVIDE(commission_amount, margin_amount)`
FML-COMIS-010Comisión sana FARO`collected_margin * rate * quality_factor * no_overdue_factor`

---

10.17 Proyectos / Obras / Servicios

10 fórmulas MVP

CódigoKPI / FórmulaExpresión
FML-PROY-001Presupuesto proyecto`SUM(project.budget_amount)`
FML-PROY-002Costo real proyecto`SUM(project_costs.amount)`
FML-PROY-003Ingreso facturado proyecto`SUM(project_invoices.amount)`
FML-PROY-004Margen proyecto monto`ingreso_facturado_proyecto - costo_real_proyecto`
FML-PROY-005Margen proyecto %`SAFE_DIVIDE(margen_proyecto_monto, ingreso_facturado_proyecto)`
FML-PROY-006Avance físico %`SAFE_DIVIDE(completed_milestones_weight, total_milestones_weight)`
FML-PROY-007Avance financiero %`SAFE_DIVIDE(invoiced_amount, contract_amount)`
FML-PROY-008Desvío de costo`costo_real_proyecto - costo_presupuestado`
FML-PROY-009Desvío plazo`DATEDIFF(actual_finish_date, planned_finish_date)`
FML-PROY-010Rentabilidad esperada vs real`actual_project_margin_pct - expected_project_margin_pct`

---

10.18 Workflow / Acciones

10 fórmulas MVP

CódigoKPI / FórmulaExpresión
FML-WF-001Acciones creadas`COUNT(action_id)`
FML-WF-002Acciones abiertas`COUNT(action_id WHERE status='OPEN')`
FML-WF-003Acciones cerradas`COUNT(action_id WHERE status='CLOSED')`
FML-WF-004Acciones vencidas`COUNT(action_id WHERE due_date < today AND status!='CLOSED')`
FML-WF-005% acciones vencidas`SAFE_DIVIDE(acciones_vencidas, acciones_abiertas)`
FML-WF-006Cumplimiento de acciones`SAFE_DIVIDE(acciones_cerradas_a_tiempo, acciones_vencidas_periodo + acciones_cerradas_periodo)`
FML-WF-007Acciones críticas vencidas`COUNT(action_id WHERE priority='CRITICAL' AND due_date < today AND status!='CLOSED')`
FML-WF-008Acciones con evidencia`SAFE_DIVIDE(actions_with_evidence, closed_actions)`
FML-WF-009Tiempo promedio de cierre`AVG(DATEDIFF(closed_at, created_at))`
FML-WF-010Score de ejecución`on_time_rate*0.40 + evidence_rate*0.30 + critical_resolution_rate*0.30`

---

10.19 Calidad de Datos / Auditoría

10 fórmulas MVP

CódigoKPI / FórmulaExpresión
FML-DQ-001Completitud de datos`SAFE_DIVIDE(required_fields_completed, required_fields_total)`
FML-DQ-002Consistencia de datos`SAFE_DIVIDE(validation_rules_passed, validation_rules_total)`
FML-DQ-003Factor sin errores críticos`100 - critical_error_penalty`
FML-DQ-004Score calidad de datos`completeness*0.40 + consistency*0.35 + critical_error_factor*0.25`
FML-DQ-005% registros rechazados`SAFE_DIVIDE(records_rejected, records_received)`
FML-DQ-006% registros observados`SAFE_DIVIDE(records_observed, records_received)`
FML-DQ-007% cargas con RAW`SAFE_DIVIDE(loads_with_raw, total_loads)`
FML-DQ-008% KPIs trazables`SAFE_DIVIDE(kpis_with_lineage, total_kpis)`
FML-DQ-009Fuentes vencidas`COUNT(source_id WHERE freshness_status='EXPIRED')`
FML-DQ-010Confianza auditada`data_quality_score*0.50 + traceability_score*0.30 + freshness_score*0.20`

---

10.20 FARO Score / Dirección

10 fórmulas MVP

CódigoKPI / FórmulaExpresión
FML-SCORE-001Score comercial`sales_score*0.30 + margin_score*0.35 + customer_score*0.15 + action_score*0.20`
FML-SCORE-002Score financiero`cash_score*0.30 + collection_score*0.30 + payable_score*0.15 + debt_score*0.10 + action_score*0.15`
FML-SCORE-003Score stock`stock_availability_score*0.30 + rotation_score*0.25 + overstock_score*0.20 + data_quality_score*0.10 + action_score*0.15`
FML-SCORE-004Score operaciones`delivery_score*0.30 + quality_score*0.25 + capacity_score*0.20 + incident_score*0.10 + action_score*0.15`
FML-SCORE-005Score RRHH`productivity_score*0.30 + cost_labor_score*0.25 + attendance_score*0.20 + structure_score*0.10 + action_score*0.15`
FML-SCORE-006Score calidad de datos`data_quality_score*0.50 + traceability_score*0.30 + freshness_score*0.20`
FML-SCORE-007FARO Score empresa`SUM(module_score * module_weight)`
FML-SCORE-008Confianza FARO Score`SUM(module_data_confidence * module_weight)`
FML-SCORE-009Variación FARO Score`faro_score_current - faro_score_previous`
FML-SCORE-010Score ajustado por ejecución`faro_score_base + execution_delta - overdue_critical_penalty`

---

11. Fórmulas compuestas críticas

Estas fórmulas son las que hacen que FARO deje de ser tablero.

---

11.1 Crecimiento no rentable

crecimiento_no_rentable_score =
sales_growth_score * 0.25
+ margin_decline_score * 0.35
+ discount_increase_score * 0.20
+ collection_risk_score * 0.10
+ stock_pressure_score * 0.10

Lectura

Si ventas suben, margen baja, descuentos suben, cobranza empeora y stock se presiona, FARO detecta tensión de crecimiento no rentable.

---

11.2 Venta sin caja

venta_sin_caja_score =
sales_growth_score * 0.25
+ accounts_receivable_growth_score * 0.25
+ dso_increase_score * 0.25
+ cash_decline_score * 0.25

---

11.3 Stock rentable en riesgo

stock_rentable_en_riesgo =
product_margin_score * 0.30
+ product_rotation_score * 0.30
+ stockout_risk_score * 0.30
+ supplier_lead_time_risk * 0.10

---

11.4 Cliente grande riesgoso

cliente_grande_riesgoso =
customer_sales_concentration_score * 0.25
+ overdue_score * 0.30
+ margin_low_score * 0.20
+ credit_exposure_score * 0.25

---

11.5 Comisión mal alineada

comision_mal_alineada =
commission_growth_score * 0.25
+ margin_decline_score * 0.30
+ discount_increase_score * 0.25
+ collection_delay_score * 0.20

---

11.6 Diagnóstico sin ejecución

diagnostico_sin_ejecucion =
critical_alerts_open_score * 0.25
+ overdue_actions_score * 0.30
+ repeated_tensions_score * 0.25
+ evidence_missing_score * 0.20

---

12. Reglas de ejecución por alcance

La misma fórmula debe poder ejecutarse por distintos alcances.

Ejemplo: margen bruto %

margen_bruto_pct =
SAFE_DIVIDE(SUM(net_amount - cost_amount), SUM(net_amount))

Puede calcularse por:

AlcanceResultado
EmpresaMargen total empresa
SucursalMargen por sucursal
ÁreaMargen comercial por área
VendedorMargen por vendedor
ClienteMargen por cliente
ProductoMargen por producto
RubroMargen por rubro
CanalMargen por canal
PeríodoMargen mensual, semanal, anual

---

13. Reglas de calidad mínima

No toda fórmula puede ejecutarse con cualquier dato.

Tipo de fórmulaCalidad mínima sugerida
KPI informativo60
KPI operativo70
KPI ejecutivo75
Alerta crítica80
Tensión80
FARO Score85
Recomendación automática85
Simulación90

Regla

Si la calidad de datos es menor al mínimo requerido,
FARO debe calcular con advertencia o bloquear la fórmula.

---

14. Fórmulas por industria

Algunas fórmulas cambian según industria.

Retail

venta_por_m2 =
venta_neta / superficie_m2
rotacion_stock_retail =
costo_mercaderia_vendida / inventario_promedio

Construcción / obras

margen_por_obra =
(ingreso_certificado - costo_real_obra) / ingreso_certificado
avance_fisico_vs_financiero =
avance_fisico_pct - avance_financiero_pct

Salud

ocupacion_camas =
camas_ocupadas / camas_disponibles
ausentismo_turnos =
turnos_no_asistidos / turnos_programados

Hotelería

revpar =
ingreso_habitaciones / habitaciones_disponibles
adr =
ingreso_habitaciones / habitaciones_ocupadas

SaaS

mrr =
SUM(active_subscription_monthly_amount)
churn_rate =
customers_lost / customers_start_period

Logística

costo_por_km =
costo_total_flota / kilometros_recorridos
entrega_a_tiempo_pct =
entregas_a_tiempo / entregas_totales

---

15. Tabla SQL sugerida: biblioteca de fórmulas

CREATE TABLE faro_kpi_formulas (
    formula_id UUID PRIMARY KEY,
    formula_code VARCHAR(80) UNIQUE NOT NULL,
    kpi_code VARCHAR(80) NOT NULL,

    formula_name VARCHAR(240) NOT NULL,
    formula_type VARCHAR(80) NOT NULL,

    expression TEXT NOT NULL,
    expression_language VARCHAR(40) DEFAULT 'FARO_DSL',

    output_type VARCHAR(60),
    aggregation_level VARCHAR(80),
    allowed_dimensions JSONB,

    required_tables JSONB,
    required_fields JSONB,
    required_data_quality_score NUMERIC(5,2),

    frequency_code VARCHAR(40),
    module_code VARCHAR(80),
    area_code VARCHAR(80),

    applies_to_industries JSONB,
    applies_to_company_types JSONB,

    threshold_rules JSONB,
    alert_codes JSONB,
    tension_codes JSONB,
    action_codes JSONB,

    score_impact_direction VARCHAR(40),
    score_impact_weight NUMERIC(6,4),

    formula_status VARCHAR(40) DEFAULT 'ACTIVE',
    version VARCHAR(40) DEFAULT 'V1',

    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

---

16. Tabla SQL sugerida: ejecuciones de fórmulas

CREATE TABLE faro_formula_executions (
    formula_execution_id UUID PRIMARY KEY,
    company_id UUID NOT NULL,

    formula_code VARCHAR(80) NOT NULL,
    kpi_code VARCHAR(80),

    period_id VARCHAR(80) NOT NULL,
    execution_scope JSONB,

    result_value NUMERIC(18,6),
    result_text TEXT,
    result_status VARCHAR(40),

    data_quality_score NUMERIC(5,2),
    confidence_score NUMERIC(5,2),

    records_used INTEGER,
    source_batches JSONB,

    alerts_triggered JSONB,
    tensions_triggered JSONB,
    actions_suggested JSONB,

    executed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

---

17. Tabla SQL sugerida: dependencias de fórmulas

CREATE TABLE faro_formula_dependencies (
    dependency_id UUID PRIMARY KEY,

    formula_code VARCHAR(80) NOT NULL,
    depends_on_formula_code VARCHAR(80) NOT NULL,

    dependency_type VARCHAR(60),
    required BOOLEAN DEFAULT TRUE,

    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

---

18. Reglas FARO para fórmulas

CódigoRegla
FML-R001Toda fórmula debe tener código único
FML-R002Toda fórmula debe estar vinculada a un KPI
FML-R003Toda fórmula debe declarar fuentes y campos requeridos
FML-R004Toda fórmula debe declarar dimensiones permitidas
FML-R005Toda fórmula ejecutiva debe tener calidad mínima de datos
FML-R006Toda fórmula debe ser versionada
FML-R007Toda fórmula compuesta debe declarar dependencias
FML-R008Toda fórmula que active alerta debe tener umbral
FML-R009Toda fórmula que active tensión debe conectarse al mapa causal
FML-R010Toda fórmula que impacte Score debe tener peso
FML-R011Toda fórmula debe poder auditar registros usados
FML-R012Toda fórmula específica por industria debe declarar industria
FML-R013Toda fórmula con división debe usar `SAFE_DIVIDE`
FML-R014Fórmulas con datos débiles deben mostrar confianza reducida
FML-R015Fórmulas críticas no deben ejecutarse sin RAW trazable

---

19. Output esperado en FARO

FARO debe poder mostrar el resultado así:

KPI:
Margen bruto %

Resultado:
21%

Alcance:
Sucursal San Juan / Rubro Cemento / Mayo 2026

Fórmula:
SUM(venta_neta - costo) / SUM(venta_neta)

Datos usados:
1.248 líneas de venta

Fuente:
Excel ventas + maestro productos + costos ERP

Calidad del dato:
92%

Comparación:
Período anterior: 28%

Alerta:
Margen cayó 7 puntos.

Tensión:
Crecimiento no rentable.

Acción sugerida:
Revisar descuentos por vendedor y bloquear operaciones bajo margen mínimo.

---

20. Relación con alertas, tensiones y acciones

FórmulaAlertaTensiónAcción
Margen bruto %Margen bajoCrecimiento no rentableRevisar descuentos
DSOCobranza lentaVenta sin cajaPriorizar cobranza
Stock críticoQuiebreProducto rentable sin stockReponer
Gasto sobre ventasGasto altoRentabilidad invisibleRevisar gastos
Comisión sobre margenComisión altaIncentivo rotoAjustar comisión
Acciones vencidasEjecución débilDiagnóstico sin ejecuciónEscalar responsable

---

21. Definición oficial del activo

Nombre

Fórmulas FARO por KPI

Objetivo

Definir una biblioteca gobernada de fórmulas ejecutables por empresa, sucursal, área, módulo, responsable, cliente, producto, proveedor, canal, rubro, industria y período, permitiendo calcular KPIs simples, compuestos, contextuales y ponderados para alimentar alertas, tensiones, acciones, reportes y FARO Score.

Volumen estimado V1

ElementoCantidad
Fórmulas diseñadas1.000
Familias de fórmulas25
Fórmulas por familia40
Fórmulas MVP180
Fórmulas Business450
Fórmulas Enterprise800
Fórmulas Neural1.000+
Tablas técnicas sugeridas3
Reglas base15

---

22. Frase para explicar

FARO tiene una biblioteca de fórmulas por KPI. Cada fórmula puede ejecutarse por empresa, sucursal, área, responsable, cliente, producto, canal, rubro, industria y período. Así calcula indicadores simples y compuestos, detecta alertas, activa tensiones, recomienda acciones y actualiza FARO Score con trazabilidad.

---

23. Decisión recomendada

Para MVP:

Diseñar 1.000 fórmulas.
Activar 180 fórmulas críticas.
Priorizar ventas, margen, descuentos, cobranza, caja, stock, compras, gastos, RRHH, logística, acciones, calidad de datos y Score.

Para Business:

Activar 450 fórmulas.
Sumar comisiones avanzadas, clientes, proveedores, centros de costo, sucursales, flujo financiero, proyectos y calidad.

Para Enterprise:

Activar 800 fórmulas.
Sumar presupuesto, contratos, producción, mantenimiento, industria, benchmark, riesgo y auditoría avanzada.

Para Neural:

Usar 1.000+ fórmulas con pesos dinámicos por industria, contexto, confianza de datos, aprendizaje y simulación.

---

24. Cadena correcta dentro de FARO

Dato validado
→ maestro
→ contexto
→ fórmula KPI
→ resultado
→ umbral
→ alerta
→ relación causal
→ tensión
→ recomendación
→ acción
→ evidencia
→ impacto FARO Score

La fórmula es el puente entre el dato y la dirección. Si la fórmula está mal, todo lo demás queda elegante pero torcido.

¿Querés activar este activo en tu empresa?

Workshop de 90 min: analizamos tu caso, identificamos qué de este activo aplica a tu rubro y armamos el plan de implementación FARO.

📅 Programar workshop →