# EPICA: EPIC-MAI-003 - Presupuestos y Costos ## Metadata | Campo | Valor | |-------|-------| | **ID** | EPIC-MAI-003 | | **Nombre** | Presupuestos y Control de Costos | | **Modulo** | presupuestos-costos | | **Fase** | Fase 1 - Alcance Inicial | | **Prioridad** | P0 (Critico) | | **Estado** | Backlog | | **Story Points** | 55 | | **Sprint(s)** | Sprint 3-5 | --- ## Descripcion Sistema de presupuestos de construccion con estructura jerarquica de conceptos, partidas, Analisis de Precios Unitarios (APU), explosionado automatico de materiales y comparativo presupuesto vs real. Soporta presupuestos base (por prototipo de vivienda) y presupuestos ejecutivos (por proyecto/fraccionamiento). --- ## Objetivo de Negocio Proveer control presupuestal que: - Defina costos por concepto de obra con precision - Permita analisis de precios unitarios (APU) - Explosione materiales automaticamente para compras - Compare presupuesto vs ejecutado en tiempo real - Identifique desviaciones tempranas para toma de decisiones - Soporte multiples versiones de presupuesto - Facilite la elaboracion de estimaciones --- ## Stakeholders | Rol | Nombre/Equipo | Responsabilidad | |-----|---------------|-----------------| | Product Owner | Equipo Producto | Definicion de funcionalidades | | Tech Lead | Equipo Backend | Arquitectura de calculos | | Presupuestador | Construccion | Elaboracion de APU y presupuestos | | Residente de Obra | Campo | Control de avance y costos | | Director de Construccion | Gerencia | Aprobacion y seguimiento | --- ## Historias de Usuario | ID | Historia | Prioridad | SP | Estado | |----|----------|-----------|-----|--------| | US-MAI003-001 | Como presupuestador, quiero crear presupuestos base por prototipo de vivienda para estandarizar costos | P0 | 8 | Backlog | | US-MAI003-002 | Como presupuestador, quiero crear partidas y conceptos jerarquicos para organizar el presupuesto | P0 | 5 | Backlog | | US-MAI003-003 | Como presupuestador, quiero elaborar APU para definir precios unitarios con detalle de insumos | P0 | 8 | Backlog | | US-MAI003-004 | Como presupuestador, quiero explosionar materiales del presupuesto para planificar compras | P0 | 8 | Backlog | | US-MAI003-005 | Como residente, quiero crear presupuesto ejecutivo desde base para aplicar a proyecto especifico | P0 | 5 | Backlog | | US-MAI003-006 | Como residente, quiero comparar presupuesto vs real para detectar desviaciones | P0 | 8 | Backlog | | US-MAI003-007 | Como presupuestador, quiero importar presupuesto desde Excel para migrar datos existentes | P1 | 5 | Backlog | | US-MAI003-008 | Como presupuestador, quiero versionar presupuestos para mantener historial de cambios | P1 | 3 | Backlog | | US-MAI003-009 | Como director, quiero ver dashboard de desviaciones para tomar decisiones oportunas | P1 | 5 | Backlog | **Total Story Points:** 55 SP --- ## Criterios de Aceptacion de la Epica **Funcionales:** - [ ] Estructura jerarquica: Partida -> Subpartida -> Concepto - [ ] APU con insumos (materiales, mano de obra, equipo, herramienta) - [ ] Explosionado automatico de materiales por cantidad de viviendas - [ ] Presupuesto base (por prototipo) y ejecutivo (por proyecto) - [ ] Comparativo presupuesto vs real con % desviacion - [ ] Versionado de presupuestos con historial - [ ] Import/Export Excel con formato estandar - [ ] Calculo de indirectos y utilidad **No Funcionales:** - [ ] Performance: Calculo de explosionado < 5s para 1000 conceptos - [ ] Precision: 4 decimales en precios unitarios - [ ] Consistencia: Totales calculados automaticamente **Tecnicos:** - [ ] Cobertura de tests > 80% - [ ] Funciones de calculo en PostgreSQL para performance - [ ] Documentacion de formulas de APU --- ## Dependencias **Esta epica depende de:** | Epica/Modulo | Estado | Bloqueante | |--------------|--------|------------| | EPIC-MAI-001 Fundamentos | Backlog | Si | | EPIC-MAI-002 Proyectos | Backlog | Si | | MGN-005 Catalogs (materiales) | Backlog | Si | **Esta epica bloquea:** | Epica/Modulo | Razon | |--------------|-------| | EPIC-MAI-004 Compras | Explosion de materiales | | EPIC-MAI-005 Control Obra | Avance por concepto | | EPIC-MAI-008 Estimaciones | Base para facturacion | | EPIC-MAE-014 Finanzas | Control de costos | --- ## Desglose Tecnico **Database:** - [ ] Schema: `budget_management` - [ ] Tablas: 12 (budgets, budget_versions, partidas, concepts, apu, apu_items, materials_explosion, budget_vs_actual, indirectos, rendimientos, etc.) - [ ] Funciones: 5 (calcular_apu, explosionar_materiales, comparar_real, recalcular_totales, versionar_presupuesto) - [ ] Triggers: Recalculo automatico de totales - [ ] RLS Policies: Si (por tenant y proyecto) **Backend:** - [ ] Modulo: `budgets` - [ ] Entities: 12 (Budget, BudgetVersion, Partida, Concept, APU, APUItem, MaterialExplosion, etc.) - [ ] Services: BudgetService, APUService, ExplosionService, ComparisonService - [ ] Endpoints: 30+ (CRUD budgets, partidas, conceptos, APU, explosion, comparison) - [ ] Jobs: ExplosionCalculationJob - [ ] Tests: 45+ **Frontend:** - [ ] Paginas: 7 (Budgets, BudgetDetail, PartidaEditor, APUEditor, Explosion, Comparison, Dashboard) - [ ] Componentes: 25+ (BudgetTree, APUForm, ExplosionTable, ComparisonChart, PartidaDragDrop) - [ ] Stores: 1 (budgetsStore) --- ## Estructura de Presupuesto ``` Presupuesto (Casa Tipo A - Fraccionamiento Las Palmas) ├── Partida 1: PRELIMINARES │ ├── 1.1 Limpieza de terreno │ │ └── APU: Peones + Herramienta │ └── 1.2 Trazo y nivelacion │ └── APU: Topografo + Equipo ├── Partida 2: CIMENTACION │ ├── 2.1 Excavacion │ │ └── APU: Retroexcavadora + Operador │ └── 2.2 Zapatas aisladas │ └── APU: Concreto fc=250 + Acero + MO ├── Partida 3: ESTRUCTURA │ ├── 3.1 Columnas │ ├── 3.2 Trabes │ └── 3.3 Losa ├── ... └── Partida N: LIMPIEZA FINAL └── Total = Suma de conceptos + Indirectos + Utilidad ``` --- ## Riesgos | Riesgo | Probabilidad | Impacto | Mitigacion | |--------|--------------|---------|------------| | Formulas de APU incorrectas | Media | Alto | Validacion con presupuestadores expertos | | Performance en explosionado | Media | Alto | Calculo en DB, batch processing | | Importacion Excel corrupta | Alta | Medio | Validacion estricta, preview antes de importar | | Desviaciones no detectadas | Media | Alto | Alertas automaticas, dashboard | --- ## Definition of Ready (DoR) - [x] Historias de usuario definidas - [x] Criterios de aceptacion claros - [x] Dependencias identificadas - [x] Estimacion completada - [ ] Formato de APU estandar definido - [ ] Catalogo de partidas SAT mapeado - [ ] Template Excel de importacion definido - [x] Sin bloqueadores activos ## Definition of Done (DoD) - [ ] Codigo implementado y revisado - [ ] Tests pasando (unit, integration, e2e) - [ ] APU calculando correctamente - [ ] Explosionado funcionando - [ ] Comparativo mostrandose - [ ] Documentacion actualizada - [ ] Inventarios actualizados - [ ] Trazas registradas - [ ] Demo realizada con presupuestador - [ ] Product Owner aprobo --- ## Documentacion Relacionada - Modulo: `docs/02-definicion-modulos/MAI-003-presupuestos-costos/` - User Stories: `docs/05-user-stories/mai-003/` - DDL Spec: `docs/04-modelado/database-design/schemas/budget_management.sql` - Especificaciones: `docs/02-definicion-modulos/MAI-003-presupuestos-costos/especificaciones/` --- ## Historial | Fecha | Cambio | Autor | |-------|--------|-------| | 2025-12-05 | Creacion de epica | Requirements-Analyst | | 2025-12-05 | Agregado Stakeholders, Riesgos, DoR/DoD | Requirements-Analyst | --- **Creada por:** Requirements-Analyst **Fecha:** 2025-12-05 **Ultima actualizacion:** 2025-12-05