erp-construccion/docs/02-definicion-modulos/MAI-003-presupuestos-costos/_MAP.md

861 lines
30 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# _MAP: MAI-003 - Presupuestos y Control de Costos
**Epica:** MAI-003
**Nombre:** Presupuestos y Control de Costos
**Fase:** 1 - Alcance Inicial
**Presupuesto:** $30,000 MXN
**Story Points:** 46 SP
**Estado:** Completo
**Sprint:** Sprint 7-10 (Semanas 13-20)
**Ultima actualizacion:** 2025-11-17
**Prioridad:** P1
---
## Proposito
Sistema integral de presupuestos y control de costos para construccion que permite:
- Catalogo centralizado de 10,000+ conceptos reutilizables con APU (Analisis de Precios Unitarios)
- Presupuestos en 3 niveles (obra, etapa, prototipo) con generadores automaticos
- Control en tiempo real de costos con alertas proactivas
- Analisis de rentabilidad con simulaciones y proyecciones
- Explosion de insumos para optimizacion de compras
- Control presupuestal con desviaciones y planes de accion
**Problema que resuelve:** Las constructoras pierden entre 5-15% de margen por presupuestos imprecisos, falta de control sobre costos reales y desconocimiento de rentabilidad real por prototipo.
**Beneficios esperados:**
- Eficiencia: -80% tiempo elaboracion presupuestos (2h vs 10h)
- Precision: <3% desviacion presupuesto vs real
- Rentabilidad: +2 puntos de margen por mejor control
- Visibilidad: Dashboard actualizado en tiempo real
---
## Contenido
### Requerimientos Funcionales (4)
| ID | Archivo | Titulo | Estado |
|----|---------|--------|--------|
| RF-COST-001 | [RF-COST-001-catalogo-conceptos-precios.md](./requerimientos/RF-COST-001-catalogo-conceptos-precios.md) | Catalogo de Conceptos y Precios Unitarios | Completo |
| RF-COST-002 | [RF-COST-002-presupuestos-maestros.md](./requerimientos/RF-COST-002-presupuestos-maestros.md) | Presupuestos Maestros (Obra, Etapa, Prototipo) | Completo |
| RF-COST-003 | [RF-COST-003-control-costos-reales.md](./requerimientos/RF-COST-003-control-costos-reales.md) | Control de Costos Reales y Desviaciones | Completo |
| RF-COST-004 | [RF-COST-004-analisis-rentabilidad.md](./requerimientos/RF-COST-004-analisis-rentabilidad.md) | Analisis de Rentabilidad y Margenes | Completo |
### Especificaciones Tecnicas (4)
| ID | Archivo | Titulo | RF | Estado |
|----|---------|--------|-------|--------|
| ET-COST-001 | [ET-COST-001-implementacion-catalogo-conceptos.md](./especificaciones/ET-COST-001-implementacion-catalogo-conceptos.md) | Implementacion del Catalogo de Conceptos | RF-COST-001 | Completo |
| ET-COST-002 | [ET-COST-002-implementacion-presupuestos.md](./especificaciones/ET-COST-002-implementacion-presupuestos.md) | Implementacion de Presupuestos | RF-COST-002 | Completo |
| ET-COST-003 | [ET-COST-003-implementacion-control-costos.md](./especificaciones/ET-COST-003-implementacion-control-costos.md) | Implementacion de Control de Costos | RF-COST-003 | Completo |
| ET-COST-004 | [ET-COST-004-implementacion-analisis-rentabilidad.md](./especificaciones/ET-COST-004-implementacion-analisis-rentabilidad.md) | Implementacion de Analisis de Rentabilidad | RF-COST-004 | Completo |
### Historias de Usuario (8)
| ID | Archivo | Titulo | SP | Estado |
|----|---------|--------|----|--------|
| US-COST-001 | [US-COST-001-catalogo-conceptos.md](./historias-usuario/US-COST-001-catalogo-conceptos.md) | Catalogo de Conceptos y Busqueda | 5 | Completo |
| US-COST-002 | [US-COST-002-precios-compuestos.md](./historias-usuario/US-COST-002-precios-compuestos.md) | Precios Unitarios Compuestos | 5 | Completo |
| US-COST-003 | [US-COST-003-actualizacion-precios.md](./historias-usuario/US-COST-003-actualizacion-precios.md) | Actualizacion Masiva de Precios | 3 | Completo |
| US-COST-004 | [US-COST-004-presupuesto-obra.md](./historias-usuario/US-COST-004-presupuesto-obra.md) | Presupuesto de Obra Completo | 8 | Completo |
| US-COST-005 | [US-COST-005-presupuesto-prototipo.md](./historias-usuario/US-COST-005-presupuesto-prototipo.md) | Presupuesto de Prototipo con Generadores | 5 | Completo |
| US-COST-006 | [US-COST-006-dashboard-control-costos.md](./historias-usuario/US-COST-006-dashboard-control-costos.md) | Dashboard de Control de Costos Reales | 5 | Completo |
| US-COST-007 | [US-COST-007-analisis-desviaciones.md](./historias-usuario/US-COST-007-analisis-desviaciones.md) | Analisis de Desviaciones y Plan de Accion | 5 | Completo |
| US-COST-008 | [US-COST-008-analisis-rentabilidad.md](./historias-usuario/US-COST-008-analisis-rentabilidad.md) | Analisis de Rentabilidad y Simulaciones | 5 | Completo |
**Total Story Points:** 46 SP
### Implementacion
Inventarios de trazabilidad:
- [TRACEABILITY.yml](./implementacion/TRACEABILITY.yml) - Matriz completa de trazabilidad
- [DATABASE.yml](./implementacion/DATABASE.yml) - Objetos de base de datos
- [BACKEND.yml](./implementacion/BACKEND.yml) - Modulos backend
- [FRONTEND.yml](./implementacion/FRONTEND.yml) - Componentes frontend
### Pruebas
Documentacion de testing:
- [TEST-PLAN.md](./pruebas/TEST-PLAN.md) - Plan de pruebas
- [TEST-CASES.md](./pruebas/TEST-CASES.md) - Casos de prueba
---
## Referencias
- **README:** [README.md](./README.md) - Descripcion detallada de la epica
- **RESUMEN:** [RESUMEN-EPICA-MAI-003.md](./RESUMEN-EPICA-MAI-003.md) - Resumen ejecutivo completo
- **Fase 1:** [../README.md](../README.md) - Informacion de la fase completa
- **Modulo relacionado MVP:** Modulo 3 - Presupuestos y Costos (MVP-APP.md)
---
## Metricas
| Metrica | Valor |
|---------|-------|
| **Presupuesto estimado** | $30,000 MXN |
| **Story Points estimados** | 46 SP |
| **Duracion estimada** | 16 dias (4 sprints x 2 semanas) |
| **Reutilizacion GAMILIT** | 5% (funcionalidad nueva) |
| **RF a implementar** | 4/4 |
| **ET a implementar** | 4/4 |
| **US a completar** | 8/8 |
| **Reduccion tiempo presupuestos** | 80% (2h vs 10h) |
| **Precision objetivo** | <3% desviacion presupuesto vs real |
---
## Modulos Afectados
### Base de Datos
- **Schema:** `budgets`
- **Tablas principales:**
* `concept_catalog` - Catalogo de conceptos (materiales, mano de obra, maquinaria, compuestos)
* `concept_components` - Componentes de conceptos compuestos (APU)
* `concept_price_history` - Historial de precios
* `regions` - Regiones para ajustes de precios
* `budgets` - Presupuestos maestros (obra, etapa, prototipo)
* `budget_items` - Partidas jerarquicas de presupuestos
* `budget_versions` - Versionado de presupuestos
* `actual_costs` - Costos reales registrados
* `cost_variances` - Analisis de desviaciones
* `cost_projections` - Proyecciones EAC
* `profitability_analysis` - Analisis de rentabilidad por proyecto
* `prototype_profitability` - Rentabilidad comparativa por prototipo
- **ENUMs:**
* `concept_type` (material, labor, machinery, composite)
* `budget_scope` (project, stage, prototype)
* `budget_status` (draft, in_review, approved, baseline, closed)
* `variance_type` (price, quantity, mixed)
* `cost_classification` (direct, indirect, financing, overhead)
- **Funciones SQL:**
* `calculate_composite_price()` - Calculo de PU compuestos
* `calculate_variances()` - Analisis de desviaciones
* `calculate_eac()` - Proyeccion de costo final (3 metodos)
* `calculate_profitability()` - Analisis de rentabilidad
### Backend
- **Modulo:** `budgets`
- **Path:** `apps/backend/src/modules/budgets/`
- **Services:**
* `ConceptCatalogService` - Gestion de catalogo de conceptos
* `BudgetService` - Creacion y gestion de presupuestos
* `CostControlService` - Control de costos reales
* `ProfitabilityService` - Analisis de rentabilidad
* `BudgetGeneratorService` - Generadores automaticos de volumetrias
* `PriceUpdateService` - Actualizacion masiva de precios
- **Controllers:**
* `ConceptCatalogController` (9 endpoints)
* `BudgetController` (12 endpoints)
* `CostControlController` (8 endpoints)
* `ProfitabilityController` (6 endpoints)
- **Cron Jobs:**
* `CostAnalysisTask.analyzeDailyCosts()` - Analisis diario 6:00 AM
* `PriceIndexTask.updateNationalPrices()` - Actualizacion semestral INPC/CMIC
- **Middlewares:** BudgetAuthGuard, ProjectAccessGuard
### Frontend
- **Features:** `budgets`, `cost-control`, `profitability`
- **Path:** `apps/frontend/src/features/budgets/`
- **Componentes principales:**
* `ConceptCatalogList` - Lista con busqueda y filtros
* `ConceptForm` - Formulario de conceptos (simple/compuesto)
* `APUEditor` - Editor de analisis de precios unitarios
* `BudgetItemsTree` - Arbol jerarquico de partidas
* `BudgetWizard` - Asistente de creacion de presupuestos
* `VolumetryGenerator` - Generador automatico de volumetrias
* `CurveSChart` - Grafica de curva S (Chart.js)
* `CostDashboard` - Dashboard de control de costos
* `VarianceAnalysis` - Analisis de desviaciones
* `SensitivityMatrix` - Matriz de sensibilidad precio/costo
* `ScenarioSimulator` - Simulador de escenarios
* `PrototypeComparison` - Comparativa de rentabilidad por prototipo
- **Stores (Zustand):**
* `useConceptCatalogStore`
* `useBudgetStore`
* `useCostControlStore`
* `useProfitabilityStore`
---
## Flujo de Documentacion RF → ET → US → Codigo
### RF-COST-001: Catalogo de Conceptos y Precios Unitarios
```
RF-COST-001 (Requerimiento Funcional)
ET-COST-001 (Especificacion Tecnica)
├── US-COST-001: Catalogo de Conceptos y Busqueda (5 SP)
│ └── Codigo:
│ ├── DB: budgets.concept_catalog, budgets.regions
│ ├── Backend: ConceptCatalogService, ConceptCatalogController
│ └── Frontend: ConceptCatalogList, ConceptForm
├── US-COST-002: Precios Unitarios Compuestos (5 SP)
│ └── Codigo:
│ ├── DB: budgets.concept_components, calculate_composite_price()
│ ├── Backend: ConceptCatalogService.createComposite()
│ └── Frontend: APUEditor, ConceptForm
└── US-COST-003: Actualizacion Masiva de Precios (3 SP)
└── Codigo:
├── DB: budgets.concept_price_history
├── Backend: PriceUpdateService, PriceIndexTask (cron)
└── Frontend: PriceUpdateModal, PriceHistoryTimeline
```
### RF-COST-002: Presupuestos Maestros
```
RF-COST-002 (Requerimiento Funcional)
ET-COST-002 (Especificacion Tecnica)
├── US-COST-004: Presupuesto de Obra Completo (8 SP)
│ └── Codigo:
│ ├── DB: budgets.budgets, budgets.budget_items, budgets.budget_versions
│ ├── Backend: BudgetService, BudgetController
│ └── Frontend: BudgetWizard, BudgetItemsTree, BudgetDetail
└── US-COST-005: Presupuesto de Prototipo con Generadores (5 SP)
└── Codigo:
├── DB: budgets.budget_items (con formulas)
├── Backend: BudgetGeneratorService
└── Frontend: VolumetryGenerator, PrototypeBudgetForm
```
### RF-COST-003: Control de Costos Reales
```
RF-COST-003 (Requerimiento Funcional)
ET-COST-003 (Especificacion Tecnica)
├── US-COST-006: Dashboard de Control de Costos Reales (5 SP)
│ └── Codigo:
│ ├── DB: budgets.actual_costs, calculate_variances()
│ ├── Backend: CostControlService, CostAnalysisTask (cron)
│ └── Frontend: CostDashboard, CurveSChart
└── US-COST-007: Analisis de Desviaciones y Plan de Accion (5 SP)
└── Codigo:
├── DB: budgets.cost_variances, budgets.cost_projections
├── Backend: CostControlService.analyzeVariances()
└── Frontend: VarianceAnalysis, ActionPlanForm
```
### RF-COST-004: Analisis de Rentabilidad
```
RF-COST-004 (Requerimiento Funcional)
ET-COST-004 (Especificacion Tecnica)
└── US-COST-008: Analisis de Rentabilidad y Simulaciones (5 SP)
└── Codigo:
├── DB: budgets.profitability_analysis, budgets.prototype_profitability
├── Backend: ProfitabilityService, ProfitabilityController
└── Frontend: SensitivityMatrix, ScenarioSimulator, PrototypeComparison
```
---
## Quick Links
### Catalogo de Conceptos
**Objetivo:** Catalogo centralizado de 10,000+ conceptos reutilizables
- **RF:** [RF-COST-001](./requerimientos/RF-COST-001-catalogo-conceptos-precios.md)
- **ET:** [ET-COST-001](./especificaciones/ET-COST-001-implementacion-catalogo-conceptos.md)
- **US:**
* [US-COST-001: Catalogo base](./historias-usuario/US-COST-001-catalogo-conceptos.md)
* [US-COST-002: Conceptos compuestos (APU)](./historias-usuario/US-COST-002-precios-compuestos.md)
* [US-COST-003: Actualizacion masiva](./historias-usuario/US-COST-003-actualizacion-precios.md)
- **Codigo:**
* DB: `budgets.concept_catalog`, `budgets.concept_components`
* Backend: `ConceptCatalogService`
* Frontend: `ConceptCatalogList`, `APUEditor`
**Funcionalidades clave:**
- 4 tipos de conceptos: material, mano de obra, maquinaria, compuesto
- Analisis de Precios Unitarios (APU) detallado
- Busqueda full-text por codigo/nombre/categoria (<200ms)
- Versionado y historial de precios
- Regionalizacion de precios
- Importacion/exportacion Excel, OPUS, Neodata
- Actualizacion masiva por indices INPC/CMIC
**Ejemplo APU:**
```
Concepto Compuesto "Cimentacion corrida":
├─ Materiales: $4,548 (concreto, acero, cimbra, alambre)
├─ Mano de Obra: $1,125 (oficial + ayudantes con FSR)
├─ Maquinaria: $226 (vibrador + herramienta menor)
├─ CD: $5,899
├─ Indirectos (12%): $708
├─ Financiamiento (3%): $177
├─ Utilidad (10%): $590
├─ Cargos (2%): $118
└─ PU Final: $7,492/m³ + IVA
```
### Analisis de Precios Unitarios (APU)
**Objetivo:** Desglose detallado de componentes de conceptos compuestos
- **RF:** [RF-COST-001, seccion APU](./requerimientos/RF-COST-001-catalogo-conceptos-precios.md#analisis-de-precios-unitarios-apu)
- **ET:** [ET-COST-001, seccion APU](./especificaciones/ET-COST-001-implementacion-catalogo-conceptos.md#calculo-de-precios-compuestos)
- **US:** [US-COST-002](./historias-usuario/US-COST-002-precios-compuestos.md)
- **Codigo:**
* DB: `budgets.concept_components`, funcion `calculate_composite_price()`
* Backend: `ConceptCatalogService.createComposite()`
* Frontend: `APUEditor`
**Componentes de un APU:**
1. **Costo Directo (CD):**
- Materiales
- Mano de obra (con FSR: Factor de Salario Real)
- Maquinaria y equipo
2. **Costos Indirectos:** 12% sobre CD
3. **Financiamiento:** 3% sobre (CD + Indirectos)
4. **Utilidad:** 10% sobre subtotal
5. **Cargos adicionales:** 2% sobre subtotal
6. **IVA:** 16% sobre precio final
**Formula de calculo:**
```
CD = Materiales + Mano de Obra + Maquinaria
Indirectos = CD * 0.12
Financiamiento = (CD + Indirectos) * 0.03
Subtotal = CD + Indirectos + Financiamiento
Utilidad = Subtotal * 0.10
Cargos = Subtotal * 0.02
PU sin IVA = Subtotal + Utilidad + Cargos
PU con IVA = PU sin IVA * 1.16
```
### Explosion de Insumos
**Objetivo:** Desglose de todos los insumos necesarios para el proyecto
- **RF:** [RF-COST-002, seccion Explosion](./requerimientos/RF-COST-002-presupuestos-maestros.md#explosion-de-insumos)
- **ET:** [ET-COST-002](./especificaciones/ET-COST-002-implementacion-presupuestos.md)
- **US:** [US-COST-004](./historias-usuario/US-COST-004-presupuesto-obra.md)
- **Codigo:**
* DB: Vista materializada `budgets.budget_materials_explosion`
* Backend: `BudgetService.explodeMaterials()`
* Frontend: `MaterialsExplosionTable`
**Funcionalidades:**
- Desglose automatico de materiales desde conceptos compuestos
- Agregacion por tipo de material
- Cantidad total necesaria por proyecto/etapa
- Valor total por material
- Exportacion a Excel para compras
- Optimizacion de lotes de compra
**Ejemplo:**
```
Proyecto: 150 viviendas
└─ Cimentacion (150 viviendas × 14.40 m³/viv = 2,160 m³)
├─ Concreto f'c=150: 2,160 m³ × 1.05 = 2,268 m³
├─ Acero fy=4200: 2,160 m³ × 80 kg/m³ = 172,800 kg
├─ Cimbra: 2,160 m³ × 5.2 m²/m³ = 11,232 m²
└─ Alambre recocido: 2,160 m³ × 1.5 kg/m³ = 3,240 kg
Total Materiales Cimentacion: $9,826,560
```
### Control Presupuestal
**Objetivo:** Control en tiempo real de costos vs presupuesto
- **RF:** [RF-COST-003](./requerimientos/RF-COST-003-control-costos-reales.md)
- **ET:** [ET-COST-003](./especificaciones/ET-COST-003-implementacion-control-costos.md)
- **US:**
* [US-COST-006: Dashboard control](./historias-usuario/US-COST-006-dashboard-control-costos.md)
* [US-COST-007: Analisis desviaciones](./historias-usuario/US-COST-007-analisis-desviaciones.md)
- **Codigo:**
* DB: `budgets.actual_costs`, `budgets.cost_variances`, `budgets.cost_projections`
* Backend: `CostControlService`, `CostAnalysisTask` (cron diario 6:00 AM)
* Frontend: `CostDashboard`, `CurveSChart`, `VarianceAnalysis`
**Indicadores clave:**
- **CPI (Cost Performance Index):** Valor Ganado / Costo Real
* CPI > 1.0: Bajo presupuesto
* CPI = 1.0: En presupuesto
* CPI < 1.0: Sobre presupuesto
- **SPI (Schedule Performance Index):** Valor Ganado / Valor Planificado
* SPI > 1.0: Adelantado
* SPI = 1.0: A tiempo
* SPI < 1.0: Retrasado
- **EAC (Estimate at Completion):** Proyeccion de costo final
* Metodo 1: Presupuesto / CPI
* Metodo 2: Costo Real + (Presupuesto - Valor Ganado)
* Metodo 3: Costo Real + ((Presupuesto - Valor Ganado) / (CPI × SPI))
**Tipos de desviacion:**
1. **Desviacion de precio:** (Precio Real - Precio Presupuestado) × Cantidad Real
2. **Desviacion de cantidad:** (Cantidad Real - Cantidad Presupuestada) × Precio Presupuestado
3. **Desviacion mixta:** (Precio Real - Precio Presupuestado) × (Cantidad Real - Cantidad Presupuestada)
**Alertas automaticas:**
- Alerta amarilla: Desviacion >3%
- Alerta roja: Desviacion >5%
- Plan de accion obligatorio para desviaciones >5%
### Presupuestos por Nivel
**Objetivo:** Presupuestos en 3 niveles jerarquicos
- **RF:** [RF-COST-002](./requerimientos/RF-COST-002-presupuestos-maestros.md)
- **ET:** [ET-COST-002](./especificaciones/ET-COST-002-implementacion-presupuestos.md)
- **US:**
* [US-COST-004: Presupuesto obra](./historias-usuario/US-COST-004-presupuesto-obra.md)
* [US-COST-005: Presupuesto prototipo](./historias-usuario/US-COST-005-presupuesto-prototipo.md)
- **Codigo:**
* DB: `budgets.budgets`, `budgets.budget_items`
* Backend: `BudgetService`, `BudgetGeneratorService`
* Frontend: `BudgetWizard`, `BudgetItemsTree`
**Niveles de presupuesto:**
1. **Presupuesto de Obra:**
- Presupuesto maestro completo del proyecto
- Desglose por division CMIC (16 capitulos)
- Suma de todos los prototipos × cantidades
- Curva S de distribucion temporal
- Versionado completo (baseline, ajustes)
2. **Presupuesto de Etapa:**
- Presupuesto por fase constructiva
- Ej: Cimentacion, Estructura, Albañileria, Instalaciones, Acabados
- Se vincula con cronograma de obra
- Permite control por avance fisico
3. **Presupuesto de Prototipo:**
- Costo unitario por tipo de vivienda
- Generadores automaticos de volumetrias
- Plantilla reutilizable
- Base para calculo de presupuesto de obra
**Ejemplo jerarquia:**
```
Proyecto: Conjunto 150 viviendas
├─ Prototipo A (80 viviendas): $1,105,000 c/u
│ ├─ Cimentacion: $65,472
│ ├─ Estructura: $220,500
│ ├─ Albañileria: $198,450
│ └─ ...
├─ Prototipo B (50 viviendas): $890,000 c/u
└─ Prototipo C (20 viviendas): $750,000 c/u
Presupuesto Obra Total: $165,750,000
```
### Analisis de Rentabilidad
**Objetivo:** Analisis financiero y simulaciones de escenarios
- **RF:** [RF-COST-004](./requerimientos/RF-COST-004-analisis-rentabilidad.md)
- **ET:** [ET-COST-004](./especificaciones/ET-COST-004-implementacion-analisis-rentabilidad.md)
- **US:** [US-COST-008](./historias-usuario/US-COST-008-analisis-rentabilidad.md)
- **Codigo:**
* DB: `budgets.profitability_analysis`, `budgets.prototype_profitability`
* Backend: `ProfitabilityService`
* Frontend: `SensitivityMatrix`, `ScenarioSimulator`, `PrototypeComparison`
**Analisis incluidos:**
1. **Analisis financiero por proyecto:**
- Ingresos totales
- Costos totales (directos + indirectos)
- Margen bruto y neto
- ROI (Return on Investment)
- TIR (Tasa Interna de Retorno)
2. **Punto de equilibrio:**
- Numero de unidades para cubrir costos fijos
- Margen de seguridad
- Grafica visual
3. **Rentabilidad por prototipo:**
- Comparacion de margenes entre prototipos
- Identificacion de prototipos mas rentables
- Optimizacion de mix de producto
4. **Simulador de escenarios:**
- Escenario optimista: Costos -5%, Precio +3%
- Escenario base: Valores actuales
- Escenario pesimista: Costos +8%, Precio -2%
- Impacto en margen y rentabilidad
5. **Matriz de sensibilidad:**
- Impacto de variacion de precio (±10%)
- Impacto de variacion de costos (±10%)
- Mapa de calor de rentabilidad
**Ejemplo analisis:**
```
Proyecto: 150 viviendas
Ingresos: $165.75M (150 × $1,105,000 promedio)
Costos: $153.70M
Margen: $12.05M (7.3%)
ROI: 7.8%
TIR: 12.4%
Punto de Equilibrio:
- Unidades: 110 viviendas (73%)
- Margen de seguridad: 27% ✓
Rentabilidad por prototipo:
- Prototipo A: 8.2% margen
- Prototipo B: 7.1% margen
- Prototipo C: 5.8% margen
```
---
## Flujo de Trabajo Completo
### 1. Setup Inicial (Sprint 7)
**Paso 1: Crear catalogo de conceptos**
- Importar catalogo base (OPUS/Neodata/Excel)
- Crear conceptos personalizados
- Definir APU de conceptos compuestos
- Configurar regionalizacion de precios
**Paso 2: Configurar parametros**
- Definir % indirectos (default: 12%)
- Definir % financiamiento (default: 3%)
- Definir % utilidad esperada (default: 10%)
- Definir % cargos adicionales (default: 2%)
### 2. Presupuesto de Prototipo (Sprint 8)
**Paso 1: Crear prototipo en MAI-002**
- Definir caracteristicas: area, perimetro, altura, etc.
- Asignar tipo de vivienda
**Paso 2: Generar presupuesto con generadores**
- Seleccionar plantilla de prototipo
- Ejecutar generadores automaticos de volumetrias
- Revisar y ajustar cantidades
- Aprobar presupuesto de prototipo
**Ejemplo generador:**
```javascript
// Excavacion para cimentacion
formula: "desplantDepth * buildingPerimeter * 0.60 * 0.80"
inputs: {
desplantDepth: 0.80m,
buildingPerimeter: 30m
}
result: 14.40
```
### 3. Presupuesto de Obra (Sprint 8)
**Paso 1: Crear presupuesto maestro**
- Seleccionar proyecto
- Asignar prototipos y cantidades
- Generar presupuesto automaticamente
**Paso 2: Crear baseline**
- Revisar presupuesto generado
- Ajustar si es necesario
- Aprobar como baseline
**Paso 3: Gestionar versiones**
- Crear nueva version por cambios de alcance
- Comparar versiones
- Mantener historial completo
### 4. Control de Costos (Sprint 9)
**Paso 1: Registro automatico de costos reales**
- Desde ordenes de compra (MAI-004)
- Desde nomina (MAI-007)
- Desde subcontratos (MAI-012)
**Paso 2: Analisis diario (cron 6:00 AM)**
- Calcular desviaciones
- Actualizar proyecciones EAC
- Generar alertas
**Paso 3: Gestion de desviaciones**
- Revisar dashboard de control
- Analizar desviaciones >5%
- Crear plan de accion obligatorio
- Dar seguimiento
### 5. Analisis de Rentabilidad (Sprint 10)
**Paso 1: Dashboard de rentabilidad**
- Ver margen actual vs objetivo
- Comparar prototipos
- Analizar tendencias
**Paso 2: Simulaciones**
- Ejecutar escenarios optimista/base/pesimista
- Analizar matriz de sensibilidad
- Tomar decisiones informadas
**Paso 3: Reportes ejecutivos**
- Generar reporte financiero
- Exportar a Excel/PDF
- Presentar a direccion
---
## Integraciones
### Modulos que Consume (Input)
- **MAI-002 (Proyectos):**
- Estructura de proyectos/etapas
- Prototipos de vivienda y caracteristicas
- Datos para generadores de volumetrias
- **MAI-004 (Compras):**
- Ordenes de compra → Costos reales de materiales
- Precios reales de proveedores
- **MAI-007 (RR.HH.):**
- Nomina → Costos reales de mano de obra
- Factores de salario real (FSR)
- **MAI-012 (Contratos):**
- Subcontratos → Costos reales de subcontratistas
- **MGN-005 (Catalogos):**
- Unidades de medida
- Clasificaciones CMIC
### Modulos que Alimenta (Output)
- **MAI-002 (Proyectos):**
- Costo unitario por prototipo
- Presupuesto total del proyecto
- **MAI-004 (Compras):**
- Explosion de insumos
- Presupuesto de materiales
- Alertas de precios fuera de presupuesto
- **MAI-005 (Control de Obra):**
- Presupuesto por partida
- Valor ganado por avance
- **MAI-008 (Estimaciones):**
- Montos presupuestados por concepto
- Volumetrias para estimaciones
- **MAE-014 (Finanzas):**
- Datos de rentabilidad
- Proyecciones de costos
- Indicadores financieros (CPI, SPI, EAC)
- **MAI-009 (Reportes):**
- Analisis de desviaciones
- Curva S
- Reportes de rentabilidad
---
## Puntos Criticos
1. **Precision de APU:**
- APU mal calculados → Presupuestos imprecisos → Perdida de margen
- Validar todos los componentes (materiales, MO, maquinaria)
- Considerar desperdicios y factores de abundamiento
2. **Actualizacion de precios:**
- Precios desactualizados → Desviaciones no detectadas
- Actualizar catalogo cada 6 meses (minimo)
- Usar indices INPC/CMIC para ajustes
3. **Registro oportuno de costos:**
- Retrasos en registro → Dashboard no refleja realidad
- Integracion automatica desde compras/nomina/subcontratos
- Validacion diaria
4. **Gestion de desviaciones:**
- Desviaciones no atendidas → Problemas mayores
- Plan de accion obligatorio para >5%
- Seguimiento semanal
5. **Versionado de presupuestos:**
- Cambios sin control → Perdida de baseline
- Siempre crear nueva version (no editar aprobados)
- Documentar razon de cambio
---
## Casos de Uso Reales
### Caso 1: Constructora con Desarrollo de 150 Viviendas
**Contexto:**
- 3 prototipos: A (80 unidades), B (50 unidades), C (20 unidades)
- Precio venta promedio: $1,105,000
- Ingresos totales: $165.75M
**Flujo completo:**
1. **Setup inicial (Semana 1):**
- Importar catalogo OPUS con 5,000 conceptos
- Crear 150 conceptos personalizados
- Configurar 3 regiones de precios
- Tiempo: 8 horas (vs 20 horas manual)
2. **Presupuesto prototipos (Semana 2):**
- Prototipo A: 247 partidas, $1,105,000, 2 horas
- Prototipo B: 223 partidas, $890,000, 1.5 horas
- Prototipo C: 198 partidas, $750,000, 1.5 horas
- Tiempo total: 5 horas (vs 30 horas manual)
3. **Presupuesto obra (Semana 2):**
- Generacion automatica desde prototipos
- 658 partidas totales
- Presupuesto: $153.7M
- Tiempo: 30 minutos (vs 10 horas manual)
4. **Control mensual (Meses 1-18):**
- Dashboard actualizado diariamente
- 3 alertas criticas detectadas y resueltas
- Desviacion final: 2.1% (excelente)
5. **Resultado final:**
- Costo real: $155.9M
- Margen real: 6.0% (vs 7.3% objetivo)
- Razon: Cambio de alcance no presupuestado
- Sin sistema: Margen hubiera sido 3.5% (perdida $6M)
### Caso 2: Actualizacion Semestral de Precios
**Contexto:**
- Catalogo de 2,000 conceptos
- INPC semestre: +3.2%
- CMIC construccion: +4.8%
**Proceso:**
1. Seleccionar conceptos a actualizar (1,500 usan indices)
2. Aplicar incremento diferenciado:
- Materiales: +4.8%
- Mano de obra: +3.2%
- Maquinaria: +3.5%
3. Recalculo automatico de APU compuestos
4. Generar reporte de cambios
5. Tiempo total: 15 minutos (vs 8 horas manual)
### Caso 3: Deteccion y Correccion de Desviacion
**Contexto:**
- Partida "Estructura de concreto": $2.5M presupuestado
- Semana 8: Costo real $1.8M, Avance 60%
- Proyeccion EAC: $3.0M (desviacion +20%)
**Alerta generada:**
- Tipo: Critica (desviacion >5%)
- CPI: 0.83 (bajo presupuesto)
- SPI: 1.05 (adelantado en programa)
**Accion tomada:**
- Analisis: Precio de acero +15% vs presupuesto
- Plan: Negociar con proveedor, buscar alternativas
- Resultado: Descuento 8%, desviacion final +5%
**Ahorro:** $375K por deteccion temprana
---
## Criterios de Exito
### Metricas de Adopcion
- 100% de proyectos con presupuesto formal
- 90% de presupuestos usan catalogo estandar
- <5% de conceptos duplicados en catalogo
### Metricas de Eficiencia
- Reduccion 80% tiempo de elaboracion (-8h por presupuesto)
- Busqueda de conceptos <200ms
- Actualizacion masiva de precios <5 seg para 500 conceptos
- Generacion de presupuesto <2 seg para 100 partidas
### Metricas de Calidad
- Precision presupuesto vs real <3% de desviacion
- 100% de alertas criticas con plan de accion en 48h
- Proyeccion EAC vs costo final <2% de error
### Metricas de Rentabilidad
- 80% de proyectos con margen target
- Incremento de margen promedio +2 puntos anuales
- ROI portafolio 12% anual
---
## Distribucion de Sprints
### Sprint 7 (2 semanas) - 13 SP: Catalogo de Conceptos
- US-COST-001: Catalogo de Conceptos y Busqueda (5 SP)
- US-COST-002: Precios Unitarios Compuestos (5 SP)
- US-COST-003: Actualizacion Masiva de Precios (3 SP)
**Entregables:**
- Catalogo de conceptos funcionando
- CRUD completo con busqueda
- Editor de APU
- Importacion/exportacion Excel
### Sprint 8 (2 semanas) - 13 SP: Presupuestos
- US-COST-004: Presupuesto de Obra Completo (8 SP)
- US-COST-005: Presupuesto de Prototipo con Generadores (5 SP)
**Entregables:**
- Wizard de creacion de presupuestos
- Generadores automaticos de volumetrias
- Arbol jerarquico de partidas
- Versionado de presupuestos
- Explosion de insumos
### Sprint 9 (2 semanas) - 10 SP: Control de Costos
- US-COST-006: Dashboard de Control de Costos Reales (5 SP)
- US-COST-007: Analisis de Desviaciones y Plan de Accion (5 SP)
**Entregables:**
- Dashboard con curva S
- Integracion con compras/nomina/subcontratos
- Calculo automatico de desviaciones
- Sistema de alertas
- Gestion de planes de accion
### Sprint 10 (2 semanas) - 5 SP: Rentabilidad
- US-COST-008: Analisis de Rentabilidad y Simulaciones (5 SP)
**Entregables:**
- Analisis financiero por proyecto
- Comparacion de prototipos
- Simulador de escenarios
- Matriz de sensibilidad
- Punto de equilibrio visual
**Duracion total:** 8 semanas (4 sprints × 2 semanas)
---
## Siguiente Paso
Comenzar implementacion en Sprint 7 con la documentacion completa.
Equipo de desarrollo puede iniciar con:
1. Setup de schema `budgets` en base de datos
2. Implementacion de `ConceptCatalogService`
3. Componente `ConceptCatalogList` en frontend
---
**Generado:** 2025-11-17
**Mantenedores:** @tech-lead @backend-team @frontend-team @database-team
**Estado:** Completo