# MAI-003: Presupuestos y Control de Costos **ID:** MAI-003 **Fase:** 1 - Alcance Inicial **Presupuesto:** $30,000 MXN **Story Points:** 46 SP **Sprint:** Sprint 7-10 (Semanas 13-20) **Prioridad:** P1 **Estado:** En documentacion --- ## Resumen Ejecutivo Este modulo gestiona el ciclo completo de presupuestos de construccion, desde el catalogo de conceptos base hasta el control de costos reales y analisis de rentabilidad. Incluye gestion de Analisis de Precios Unitarios (APU), explosion de insumos, presupuestos multinivel (obra, etapa, prototipo), control presupuestal con curva S, y analisis de desviaciones con proyecciones. ### Problema que Resuelve Las constructoras **pierden entre 5-15% de margen** debido a: - Presupuestos desactualizados o imprecisos elaborados en Excel - Falta de control sobre costos reales vs presupuestados - Desconocimiento de rentabilidad real por prototipo/proyecto - Reaccion tardia ante desviaciones de costos - Dificultad para reutilizar conceptos y precios entre proyectos - Analisis de precios unitarios manuales propensos a errores **Sin este modulo:** Elaboracion manual en Excel (8-10 horas por presupuesto), errores de calculo, imposibilidad de controlar costos en tiempo real, perdida de margen por desviaciones no detectadas. **Con este modulo:** Catalogo centralizado de 10,000+ conceptos reutilizables, presupuestos generados en 2 horas con precision <3%, control de costos en tiempo real, alertas proactivas de desviaciones, +2 puntos de margen por mejor control. --- ## Objetivos 1. **Catalogar conceptos** reutilizables con APU detallados por especialidad 2. **Generar presupuestos** rapidos y precisos en 3 niveles (obra, etapa, prototipo) 3. **Controlar costos reales** vs presupuestados con curva S y alertas automaticas 4. **Analizar rentabilidad** por proyecto/prototipo con simulaciones de escenarios 5. **Visibilidad total** del estado financiero del portafolio de proyectos --- ## Alcance Funcional ### 1. Catalogo de Conceptos y Precios Unitarios **Catlogo maestro de conceptos reutilizables:** - 4 tipos de conceptos: Material, Mano de Obra, Maquinaria, Compuesto - Organizacion jerarquica por division CMIC (16 capitulos estandar) - Analisis de Precio Unitario (APU) detallado para conceptos compuestos - Versionado y historial de precios con trazabilidad - Regionalizacion de precios por zona geografica - Importacion/exportacion desde/hacia Excel, OPUS, Neodata **Analisis de Precios Unitarios (APU):** - Explosion de insumos: materiales + mano de obra + maquinaria - Factor de Salario Real (FSR) para mano de obra - Cargos por indirectos (12%), financiamiento (3%), utilidad (10%) - Calculo automatico de Precio Unitario (PU) final **Ejemplo de concepto compuesto:** ``` Concepto: "Cimentacion corrida de concreto f'c=200 kg/cm2" ├─ Materiales: │ ├─ Concreto premezclado f'c=200: 1.05 m3 × $1,850 = $1,943 │ ├─ Acero de refuerzo 3/8": 25 kg × $18 = $450 │ ├─ Cimbra de madera: 6 m2 × $125 = $750 │ └─ Alambre recocido: 0.5 kg × $25 = $13 │ Subtotal Materiales: $3,156 │ ├─ Mano de Obra: │ ├─ Oficial albanil: 0.8 jornadas × $450 = $360 │ ├─ Ayudante general: 1.6 jornadas × $280 = $448 │ ├─ FSR (1.65×): $808 × 1.65 = $1,333 │ Subtotal Mano de Obra: $1,333 │ ├─ Maquinaria: │ ├─ Vibrador de concreto: 2 hrs × $80 = $160 │ ├─ Herramienta menor (3%): $3,156 × 3% = $95 │ Subtotal Maquinaria: $255 │ ├─ Costo Directo (CD): $4,744 ├─ Indirectos (12%): $569 ├─ Financiamiento (3%): $142 ├─ Utilidad (10%): $474 ├─ Cargos adicionales (2%): $95 │ └─ Precio Unitario Final: $6,024/m3 + IVA ``` ### 2. Presupuestos Maestros (Obra, Etapa, Prototipo) **Presupuesto de Obra:** - Desglose completo por capitulos CMIC - Volumetrias totales del proyecto - Distribucion temporal (Curva S) - Versionado completo (baseline, ajustes, cambios de alcance) **Presupuesto de Etapa:** - Subdivision por fases constructivas - Programacion de recursos por etapa - Validacion de suma = presupuesto de obra **Presupuesto de Prototipo:** - Presupuesto detallado por modelo de vivienda - Generadores automaticos basados en caracteristicas: - Superficie de construccion - Perimetro de desplante - Numero de niveles - Tipo de acabados - Explosion de insumos por prototipo - Costo unitario por m2 de construccion **Ejemplo de generador automatico:** ```javascript // Excavacion para cimentacion formula: "desplantDepth * buildingPerimeter * 0.60 * 0.80" inputs: { desplantDepth: 0.80m, // Profundidad de desplante buildingPerimeter: 30m, // Perimetro de construccion widthFactor: 0.60m, // Ancho de cepa wasteFactorr: 0.80 // Factor de abundamiento } result: 14.40 m3 de excavacion ``` ### 3. Control de Costos Reales y Desviaciones **Registro automatico de costos reales:** - Integracion con modulo de Compras (MAI-004) - materiales - Integracion con modulo de Nomina (MAI-007) - mano de obra - Integracion con modulo de Subcontratos (MAI-012) - subcontratistas - Registro manual de otros costos **Dashboard de control con Curva S:** - Costo Presupuestado (baseline) - Costo Real acumulado - Valor Ganado (Earned Value) - Proyeccion de costo final (EAC) **Analisis de desviaciones:** - Desviacion en precio: (Precio Real - Precio Presupuestado) × Cantidad Real - Desviacion en cantidad: (Cantidad Real - Cantidad Presupuestada) × Precio Presupuestado - Desviacion mixta: (Precio Real - Precio Presupuestado) × (Cantidad Real - Cantidad Presupuestada) **Indicadores de desempeno:** ``` CPI (Cost Performance Index) = Valor Ganado / Costo Real CPI > 1.0: Proyecto bajo presupuesto CPI < 1.0: Proyecto sobre presupuesto SPI (Schedule Performance Index) = Valor Ganado / Valor Planificado SPI > 1.0: Proyecto adelantado SPI < 1.0: Proyecto retrasado EAC (Estimate at Completion) = Presupuesto / CPI Proyeccion de costo final del proyecto ``` **Alertas automaticas configurables:** - Desviacion >5% en capitulo especifico - Desviacion >3% en presupuesto total - Proyeccion EAC excede presupuesto autorizado - Plan de accion obligatorio para desviaciones >5% ### 4. Analisis de Rentabilidad y Margenes **Analisis financiero por proyecto:** - Ingresos totales (precio de venta × unidades) - Costos totales (presupuesto + desviaciones) - Margen bruto y margen neto - Punto de equilibrio (unidades minimas a vender) - Margen de seguridad **Comparacion de rentabilidad por prototipo:** - Costo unitario por m2 - Precio de venta por m2 - Margen por prototipo - Rentabilidad relativa entre modelos **Simulador de escenarios:** - Escenario optimista (-5% costos, +3% precio) - Escenario base (valores actuales) - Escenario pesimista (+8% costos, -2% precio) **Matriz de sensibilidad:** - Impacto de variaciones de precio de venta (-10% a +10%) - Impacto de variaciones de costo (-10% a +10%) - Mapa de calor de rentabilidad **Ejemplo de analisis:** ``` Proyecto: Residencial Los Pinos (150 viviendas) Ingresos: $165.75M (150 × $1.105M) Costos: $153.70M Margen Bruto: $12.05M (7.3%) Punto de Equilibrio: 110 viviendas (73%) Margen de Seguridad: 27% Resultado: Proyecto viable con margen saludable ``` --- ## Reutilizacion del Core ERP (30%) Este modulo aprovecha la infraestructura del ERP Core: | Componente Core | Uso en MAI-003 | % Reutilizacion | |-----------------|----------------|-----------------| | **MGN-001 (Usuarios)** | Gestion de usuarios con permisos | 100% | | **MGN-002 (RBAC)** | Roles: Presupuestista, Director de Costos, Analista | 100% | | **MGN-003 (Multi-tenant)** | Aislamiento de catalogos por constructora | 100% | | **MGN-005 (Catalogos)** | Base para catalogo de conceptos | 70% | | **MGN-007 (Auditoria)** | Trazabilidad de cambios en precios y presupuestos | 100% | | **MGN-008 (Notificaciones)** | Alertas de desviaciones criticas | 100% | **Total estimado de reutilizacion:** 30% del codigo proviene del core, 70% es especifico del modulo. --- ## Lista de Requerimientos Funcionales ### Requerimientos Funcionales (4) 1. **[RF-COST-001: Catalogo de Conceptos y Precios Unitarios](./requerimientos/RF-COST-001-catalogo-conceptos-precios.md)** - Catalogo maestro de conceptos (material, mano de obra, maquinaria, compuesto) - Analisis de Precios Unitarios (APU) detallado - Versionado y historial de precios - Regionalizacion de precios - Importacion/exportacion Excel, OPUS, Neodata 2. **[RF-COST-002: Presupuestos Maestros (Obra, Etapa, Prototipo)](./requerimientos/RF-COST-002-presupuestos-maestros.md)** - Presupuesto de obra con desglose CMIC - Presupuesto de etapa por fase constructiva - Presupuesto de prototipo con generadores automaticos - Versionado completo (baseline, ajustes, cambios) - Curva S y distribucion temporal 3. **[RF-COST-003: Control de Costos Reales y Desviaciones](./requerimientos/RF-COST-003-control-costos-reales.md)** - Registro automatico desde compras, nomina, subcontratos - Dashboard con curva S - Calculo de desviaciones (precio, cantidad, mixta) - Proyecciones EAC (3 metodos) - Alertas automaticas y planes de accion 4. **[RF-COST-004: Analisis de Rentabilidad y Margenes](./requerimientos/RF-COST-004-analisis-rentabilidad.md)** - Analisis financiero por proyecto - Comparacion de rentabilidad por prototipo - Punto de equilibrio y margen de seguridad - Simulador de escenarios - Matriz de sensibilidad ### Especificaciones Tecnicas (4) 1. **[ET-COST-001: Implementacion del Catalogo de Conceptos](./especificaciones/ET-COST-001-implementacion-catalogo.md)** 2. **[ET-COST-002: Implementacion de Presupuestos](./especificaciones/ET-COST-002-implementacion-presupuestos.md)** 3. **[ET-COST-003: Implementacion de Control de Costos](./especificaciones/ET-COST-003-implementacion-control-costos.md)** 4. **[ET-COST-004: Implementacion de Analisis de Rentabilidad](./especificaciones/ET-COST-004-implementacion-rentabilidad.md)** ### Historias de Usuario (8) **Sprint 7 (13 SP):** - [US-COST-001: Catalogo de Conceptos y Busqueda](./historias-usuario/US-COST-001-catalogo-conceptos.md) - 5 SP - [US-COST-002: Precios Unitarios Compuestos](./historias-usuario/US-COST-002-precios-compuestos.md) - 5 SP - [US-COST-003: Actualizacion Masiva de Precios](./historias-usuario/US-COST-003-actualizacion-precios.md) - 3 SP **Sprint 8 (13 SP):** - [US-COST-004: Presupuesto de Obra Completo](./historias-usuario/US-COST-004-presupuesto-obra.md) - 8 SP - [US-COST-005: Presupuesto de Prototipo con Generadores](./historias-usuario/US-COST-005-presupuesto-prototipo.md) - 5 SP **Sprint 9 (10 SP):** - [US-COST-006: Dashboard de Control de Costos Reales](./historias-usuario/US-COST-006-dashboard-control.md) - 5 SP - [US-COST-007: Analisis de Desviaciones y Plan de Accion](./historias-usuario/US-COST-007-analisis-desviaciones.md) - 5 SP **Sprint 10 (5 SP):** - [US-COST-008: Analisis de Rentabilidad y Simulaciones](./historias-usuario/US-COST-008-analisis-rentabilidad.md) - 5 SP --- ## Dependencias con Otros Modulos ### Modulos que MAI-003 Consume (Input) | Modulo | Relacion | Datos Compartidos | |--------|----------|-------------------| | **MAI-001 (Fundamentos)** | Lee configuracion base | Catalogos generales, parametros de sistema | | **MAI-002 (Proyectos)** | Lee estructura de proyectos | Proyectos, etapas, prototipos, caracteristicas | | **MAI-004 (Compras)** | Lee ordenes de compra | Costos reales de materiales, precios de proveedores | | **MAI-005 (Control de Obra)** | Lee avances fisicos | Porcentaje de avance por partida, volumenes ejecutados | | **MAI-012 (Contratos)** | Lee subcontratos | Costos de subcontratistas, alcances contratados | ### Modulos que Consumen MAI-003 (Output) | Modulo | Relacion | Datos Compartidos | |--------|----------|-------------------| | **MAI-002 (Proyectos)** | Provee costos unitarios | Costo por prototipo, margen esperado | | **MAI-004 (Compras)** | Provee presupuesto de materiales | Alertas de precios fuera de presupuesto | | **MAI-005 (Control de Obra)** | Provee presupuesto base | Cantidades presupuestadas por partida | | **MAI-008 (Estimaciones)** | Provee precios unitarios | Conceptos y PU para generacion de estimaciones | | **MAI-006 (Reportes)** | Provee datos financieros | Indicadores de rentabilidad, desviaciones | ### Diagrama de Dependencias ``` ┌─────────────────────────────────────────────────────────────┐ │ MAI-003: Presupuestos │ │ │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │ │ Catalogo │ │ Presupuestos │ │ Control │ │ │ │ Conceptos │→→│ Maestros │→→│ Costos │ │ │ └──────────────┘ └──────────────┘ └──────────────┘ │ │ ↓ ↓ ↓ │ │ ┌─────────────────────────────────────────────────┐ │ │ │ Analisis de Rentabilidad │ │ │ └─────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────────┘ ↑ ↑ ↑ │ │ │ ┌─────┴──────┐ ┌─────┴──────┐ ┌─────┴──────┐ │ MAI-002 │ │ MAI-004 │ │ MAI-005 │ │ Proyectos │ │ Compras │ │ Control │ └────────────┘ └────────────┘ └────────────┘ ``` --- ## Diagrama de Arquitectura ### Arquitectura de 3 Capas ``` ┌────────────────────────────────────────────────────────────────┐ │ CAPA DE PRESENTACION │ │ (React + Vite) │ ├────────────────────────────────────────────────────────────────┤ │ │ │ ┌───────────────┐ ┌───────────────┐ ┌───────────────┐ │ │ │ Catalogo │ │ Presupuestos │ │ Control │ │ │ │ Conceptos │ │ Maestros │ │ Costos │ │ │ │ │ │ │ │ │ │ │ │ - Lista con │ │ - Wizard de │ │ - Dashboard │ │ │ │ busqueda │ │ creacion │ │ Curva S │ │ │ │ - Formulario │ │ - Generadores │ │ - Analisis de │ │ │ │ APU │ │ automaticos │ │ desviaciones│ │ │ │ - Historial │ │ - Versionado │ │ - Alertas │ │ │ └───────────────┘ └───────────────┘ └───────────────┘ │ │ │ └────────────────────────────────────────────────────────────────┘ ↓ REST API ┌────────────────────────────────────────────────────────────────┐ │ CAPA DE NEGOCIO │ │ (NestJS) │ ├────────────────────────────────────────────────────────────────┤ │ │ │ ┌──────────────────────────────────────────────────────┐ │ │ │ BudgetsModule │ │ │ ├──────────────────────────────────────────────────────┤ │ │ │ │ │ │ │ Services: │ │ │ │ - ConceptCatalogService (CRUD conceptos) │ │ │ │ - APUCalculatorService (calculo PU compuestos) │ │ │ │ - BudgetService (CRUD presupuestos) │ │ │ │ - BudgetGeneratorService (generadores automaticos) │ │ │ │ - CostControlService (registro costos reales) │ │ │ │ - VarianceAnalysisService (analisis desviaciones) │ │ │ │ - ProfitabilityService (analisis rentabilidad) │ │ │ │ │ │ │ │ Controllers: │ │ │ │ - ConceptCatalogController (9 endpoints) │ │ │ │ - BudgetController (12 endpoints) │ │ │ │ - CostControlController (8 endpoints) │ │ │ │ - ProfitabilityController (6 endpoints) │ │ │ │ │ │ │ │ Cron Jobs: │ │ │ │ - CostAnalysisTask.analyzeDailyCosts() (6:00 AM) │ │ │ │ │ │ │ └──────────────────────────────────────────────────────┘ │ │ │ └────────────────────────────────────────────────────────────────┘ ↓ TypeORM ┌────────────────────────────────────────────────────────────────┐ │ CAPA DE DATOS │ │ (PostgreSQL 14+) │ ├────────────────────────────────────────────────────────────────┤ │ │ │ Schema: budgets │ │ ┌──────────────────────────────────────────────────────┐ │ │ │ │ │ │ │ Tablas Principales: │ │ │ │ - concept_catalog (conceptos base) │ │ │ │ - concept_price_history (historial precios) │ │ │ │ - regions (regionalizacion) │ │ │ │ - budgets (presupuestos maestros) │ │ │ │ - budget_items (partidas jerarquicas) │ │ │ │ - budget_versions (versionado) │ │ │ │ - actual_costs (costos reales) │ │ │ │ - cost_variances (desviaciones) │ │ │ │ - cost_projections (proyecciones EAC) │ │ │ │ - profitability_analysis (analisis rentabilidad) │ │ │ │ - prototype_profitability (rentabilidad prototipo) │ │ │ │ │ │ │ │ Funciones SQL: │ │ │ │ - calculate_composite_price() (calculo PU) │ │ │ │ - calculate_variances() (desviaciones) │ │ │ │ - calculate_eac() (proyeccion costo final) │ │ │ │ - calculate_profitability() (rentabilidad) │ │ │ │ │ │ │ │ Triggers: │ │ │ │ - Auto-actualizacion de updated_at │ │ │ │ - Historial automatico de precios │ │ │ │ - Recalculo de totales en presupuestos │ │ │ │ - Alertas en desviaciones >5% │ │ │ │ │ │ │ └──────────────────────────────────────────────────────┘ │ │ │ └────────────────────────────────────────────────────────────────┘ ``` ### Modelo de Datos Simplificado ```sql -- Schema principal CREATE SCHEMA budgets; -- Tipos ENUM CREATE TYPE budgets.concept_type AS ENUM ('material', 'labor', 'equipment', 'composite'); CREATE TYPE budgets.budget_scope AS ENUM ('project', 'stage', 'prototype'); CREATE TYPE budgets.budget_status AS ENUM ('draft', 'in_review', 'approved', 'active', 'completed'); -- Tabla principal de conceptos CREATE TABLE budgets.concept_catalog ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), constructora_id UUID NOT NULL REFERENCES constructoras.constructoras(id), code VARCHAR(50) NOT NULL, name VARCHAR(255) NOT NULL, concept_type budgets.concept_type NOT NULL, category VARCHAR(100), unit VARCHAR(20), base_price DECIMAL(12,2), region_id UUID REFERENCES budgets.regions(id), is_active BOOLEAN DEFAULT true, created_at TIMESTAMP DEFAULT NOW(), updated_at TIMESTAMP DEFAULT NOW() ); -- Tabla de presupuestos CREATE TABLE budgets.budgets ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), constructora_id UUID NOT NULL REFERENCES constructoras.constructoras(id), project_id UUID REFERENCES projects.projects(id), code VARCHAR(50) NOT NULL, scope budgets.budget_scope NOT NULL, status budgets.budget_status DEFAULT 'draft', total_amount DECIMAL(14,2), created_at TIMESTAMP DEFAULT NOW(), updated_at TIMESTAMP DEFAULT NOW() ); -- Tabla de partidas del presupuesto CREATE TABLE budgets.budget_items ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), budget_id UUID NOT NULL REFERENCES budgets.budgets(id), concept_id UUID REFERENCES budgets.concept_catalog(id), parent_id UUID REFERENCES budgets.budget_items(id), quantity DECIMAL(12,4), unit_price DECIMAL(12,2), total_amount DECIMAL(14,2), level INTEGER DEFAULT 0 ); -- Tabla de costos reales CREATE TABLE budgets.actual_costs ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), budget_item_id UUID NOT NULL REFERENCES budgets.budget_items(id), source_type VARCHAR(50), -- 'purchase', 'payroll', 'subcontract', 'manual' source_id UUID, quantity DECIMAL(12,4), unit_cost DECIMAL(12,2), total_cost DECIMAL(14,2), cost_date DATE, created_at TIMESTAMP DEFAULT NOW() ); ``` --- ## Stack Tecnologico ### Backend - **Framework:** NestJS 10+ - **ORM:** TypeORM con PostgreSQL - **Validacion:** class-validator, class-transformer - **Documentacion API:** Swagger/OpenAPI - **Testing:** Jest ### Frontend - **Framework:** React 18+ con TypeScript - **Build Tool:** Vite 5+ - **Estado:** Zustand (stores por modulo) - **UI Components:** shadcn/ui + Tailwind CSS - **Formularios:** React Hook Form + Zod - **Graficos:** Chart.js para Curva S - **Tablas:** TanStack Table v8 ### Base de Datos - **DBMS:** PostgreSQL 14+ - **Schema:** `budgets` - **RLS:** Row Level Security para multi-tenant - **Triggers:** Auto-actualizacion de totales y alertas - **Funciones:** Calculos complejos en SQL ### DevOps - **Contenedores:** Docker + Docker Compose - **CI/CD:** GitHub Actions - **Migraciones:** TypeORM migrations - **Monitoreo:** Logs estructurados con Winston --- ## Enlaces a Documentacion ### Documentacion Tecnica Detallada - **[RESUMEN-EPICA-MAI-003.md](./RESUMEN-EPICA-MAI-003.md)** - Resumen ejecutivo completo de la epica ### Requerimientos Funcionales - [RF-COST-001: Catalogo de Conceptos y Precios Unitarios](./requerimientos/RF-COST-001-catalogo-conceptos-precios.md) - [RF-COST-002: Presupuestos Maestros](./requerimientos/RF-COST-002-presupuestos-maestros.md) - [RF-COST-003: Control de Costos Reales](./requerimientos/RF-COST-003-control-costos-reales.md) - [RF-COST-004: Analisis de Rentabilidad](./requerimientos/RF-COST-004-analisis-rentabilidad.md) ### Especificaciones Tecnicas - [ET-COST-001: Implementacion del Catalogo](./especificaciones/ET-COST-001-implementacion-catalogo.md) - [ET-COST-002: Implementacion de Presupuestos](./especificaciones/ET-COST-002-implementacion-presupuestos.md) - [ET-COST-003: Implementacion de Control de Costos](./especificaciones/ET-COST-003-implementacion-control-costos.md) - [ET-COST-004: Implementacion de Rentabilidad](./especificaciones/ET-COST-004-implementacion-rentabilidad.md) ### Historias de Usuario - [Todas las historias de usuario (US-COST-001 a US-COST-008)](./historias-usuario/) ### Implementacion - [Archivos de implementacion (SQL, migrations, seeds)](./implementacion/) --- ## Indicadores Clave (KPIs) ### Metricas de Adopcion - **Proyectos con presupuesto formal:** >95% - **Conceptos reutilizados del catalogo:** >90% - **Conceptos duplicados:** <5% ### Metricas de Eficiencia - **Tiempo de elaboracion de presupuesto:** <2 horas (vs 8-10h manual) - **Busqueda de conceptos:** <200ms - **Actualizacion masiva de precios:** <5 seg (500 conceptos) - **Generacion de presupuesto:** <2 seg (100 partidas) ### Metricas de Calidad - **Precision presupuesto vs real:** <3% desviacion - **Alertas criticas con plan de accion:** 100% en <48h - **Proyeccion EAC vs costo final:** <2% error ### Metricas de Rentabilidad - **Proyectos con margen >= target:** >80% - **Incremento de margen promedio:** +2 puntos anuales - **ROI del portafolio:** >=12% anual --- ## Puntos Criticos 1. **Calidad del catalogo de conceptos** - Base de todo el sistema, requiere revision y depuracion continua 2. **Precision de generadores automaticos** - Formulas deben validarse contra casos reales 3. **Integracion con compras/nomina** - Registro automatico de costos reales depende de otros modulos 4. **Alertas de desviaciones** - Configuracion de umbrales critica para evitar spam 5. **Performance en calculos masivos** - Optimizacion de queries para presupuestos grandes (>1000 partidas) --- ## Roles y Permisos | Rol | Permisos | |-----|----------| | **Presupuestista** | Crear/editar conceptos y presupuestos, actualizar precios | | **Director de Costos** | Aprobar presupuestos, ver analisis de rentabilidad, configurar alertas | | **Analista de Costos** | Registrar costos reales, analizar desviaciones, crear planes de accion | | **Director General** | Ver dashboard global, aprobar presupuestos criticos (>$10M) | | **Solo Lectura** | Ver presupuestos y reportes, sin edicion | --- ## Flujos de Trabajo ### Flujo 1: Creacion de Presupuesto de Obra ``` 1. [Presupuestista] Crea nuevo presupuesto desde proyecto 2. [Sistema] Sugiere conceptos del catalogo segun tipo de proyecto 3. [Presupuestista] Agrega partidas y conceptos, define cantidades 4. [Sistema] Calcula automaticamente PU compuestos con APU 5. [Sistema] Genera totales por capitulo CMIC 6. [Presupuestista] Revisa y envia a aprobacion 7. [Director de Costos] Valida margenes y rentabilidad esperada 8. [Director General] Aprueba presupuesto (si >$10M) 9. [Sistema] Marca presupuesto como "Aprobado" (baseline) 10. [Sistema] Habilita control de costos reales para el proyecto ``` ### Flujo 2: Control de Costos y Alertas ``` 1. [Sistema] Registra automaticamente costos reales desde: - Modulo de Compras (materiales) - Modulo de Nomina (mano de obra) - Modulo de Subcontratos (subcontratistas) 2. [Cron Job Diario] Recalcula desviaciones y proyecciones 3. [Sistema] Detecta desviacion >5% en capitulo "Estructura" 4. [Sistema] Envia alerta a Director de Costos y Analista 5. [Analista de Costos] Investiga causa de desviacion 6. [Analista] Crea plan de accion correctivo (obligatorio) 7. [Director de Costos] Revisa y aprueba plan de accion 8. [Sistema] Monitorea ejecucion de plan de accion 9. [Sistema] Actualiza proyeccion EAC con nuevas estimaciones ``` ### Flujo 3: Analisis de Rentabilidad ``` 1. [Director de Costos] Accede a dashboard de rentabilidad 2. [Sistema] Muestra analisis actualizado: - Margen bruto por proyecto - Comparacion de rentabilidad por prototipo - Punto de equilibrio 3. [Director] Ejecuta simulador de escenarios 4. [Sistema] Calcula impacto de: - Reducir costo de estructura 5% - Incrementar precio de venta 2% 5. [Sistema] Muestra matriz de sensibilidad 6. [Director] Identifica prototipos con baja rentabilidad 7. [Director] Solicita optimizacion de presupuesto de prototipo 8. [Presupuestista] Ajusta concepto y crea nueva version 9. [Sistema] Recalcula rentabilidad con nuevo presupuesto ``` --- **Generado:** 2025-12-06 **Estado:** Completo **Mantenedores:** @tech-lead @backend-team @frontend-team