Monte Carlo simulation assessing schedule and budget risk across two critical path scenarios for a government medication acquisition project — 6,000 iterations via PERT-based modeling.
Simulación Monte Carlo evaluando el riesgo de cronograma y presupuesto en dos escenarios de ruta crítica para un proyecto gubernamental de adquisición de medicamentos — 6,000 iteraciones con modelado PERT.
Framed using the McKinsey SCR storytelling structure to articulate the strategic challenge, the risk factors, and the analytical path forward.
Enmarcado con la estructura narrativa SCR de McKinsey para articular el desafío estratégico, los factores de riesgo y el camino analítico a seguir.
The government of country XYZ has initiated a pharmaceutical procurement project consisting of six sequential phases: planning and demand analysis, competitive bidding, budget approval, contracting, production and distribution, and final delivery. The project starts on July 1, 2025, with dual targets that must be met simultaneously.
El gobierno del país XYZ ha iniciado un proyecto de adquisición de medicamentos compuesto por seis fases secuenciales: planeación y análisis de demanda, licitación, aprobación presupuestaria, contratación, producción y distribución, y entrega final. El proyecto inicia el 1 de julio de 2025, con metas duales que deben cumplirse simultáneamente.
Under sequential execution (Scenario 1), the probability of completing within 100 days is just 26%. The median duration is 105.9 days — exceeding the target before any contingency. Running Bidding (B) and Budget Approval (C) in parallel (Scenario 2) could save ~10 days, but introduces overhead costs from duplicate staffing, concurrent IT systems, and potential rework — estimated at $2,249 in additional expenses.
Bajo ejecución secuencial (Escenario 1), la probabilidad de completar en 100 días es solo 26%. La duración mediana es 105.9 días — excediendo el objetivo. Ejecutar Licitación (B) y Aprobación Presupuestaria (C) en paralelo (Escenario 2) podría ahorrar ~10 días, pero introduce sobrecostos por personal duplicado, sistemas IT concurrentes y reprocesos — estimados en $2,249 adicionales.
Furthermore, the Bidding phase (B) exhibits the highest variability with a correlation of 0.76 to total duration and a range spanning 37.7 days — making it the single largest source of schedule uncertainty regardless of scenario.
Además, la fase de Licitación (B) exhibe la mayor variabilidad con correlación de 0.76 a la duración total y un rango de 37.7 días — convirtiéndola en la mayor fuente de incertidumbre del cronograma.
By running 6,000 Monte Carlo iterations across both scenarios, we produce probability distributions for duration, dates, and total cost — enabling decision-makers to see the full risk landscape. The analysis reveals that while Scenario 2 raises the 100-day probability from 26% to 69%, the probability of staying within both time and budget targets simultaneously is only 4.9%. This provides a clear, data-driven basis for budget allocation, contingency planning, and executive trade-off decisions.
Al ejecutar 6,000 iteraciones Monte Carlo en ambos escenarios, producimos distribuciones de probabilidad para duración, fechas y costo total — permitiendo ver el panorama completo de riesgo. El análisis revela que mientras el Escenario 2 eleva la probabilidad de 100 días del 26% al 69%, la probabilidad de mantenerse en ambas metas simultáneamente es solo del 4.9%. Esto proporciona una base clara para la asignación presupuestal, planificación de contingencias y decisiones ejecutivas.
A structured Monte Carlo simulation framework using PERT distributions to model uncertainty in both project duration and cost, analyzed across two scheduling strategies.
Un marco estructurado de simulación Monte Carlo usando distribuciones PERT para modelar la incertidumbre en duración y costo, analizado en dos estrategias de programación.
Each of the 6 phases modeled with optimistic, most likely, and pessimistic estimates for both duration and cost.
Cada una de las 6 fases modelada con estimaciones optimista, más probable y pesimista para duración y costo.
6,000 iterations per scenario using IziRisk® in Excel. Random sampling produces a probability landscape of outcomes.
6,000 iteraciones por escenario usando IziRisk® en Excel. El muestreo aleatorio produce un panorama probabilístico.
Two critical paths: sequential (E1) vs. parallel Bidding & Budget Approval (E2), with overhead cost adjustments.
Dos rutas críticas: secuencial (E1) vs. Licitación y Aprobación en paralelo (E2), con ajustes de sobrecostos.
Key percentiles (P10, P50, P90) extracted for duration, dates, and costs. Correlation analysis identifies highest-risk activities.
Percentiles clave (P10, P50, P90) para duración, fechas y costos. Análisis de correlación identifica actividades de mayor riesgo.
Activity B (Bidding) dominates the critical path with 0.76 correlation to total duration.
La actividad B (Licitación) domina la ruta crítica con correlación de 0.76 a la duración total.
Head-to-head comparison — the classic trade-off between time savings and cost overruns.
Comparación directa — el clásico trade-off entre ahorro de tiempo y sobrecostos.
Probability distributions from Monte Carlo simulation with cumulative curves and percentile markers.
Distribuciones de probabilidad de la simulación Monte Carlo con curvas acumuladas y marcadores de percentiles.
| Activity | Mean (days) | Std Dev | Range | Correlation | Risk | Observation |
|---|---|---|---|---|---|---|
| Actividad | Media (días) | Desv Est | Rango | Correlación | Riesgo | Observación |
| B. BiddingB. Licitación | 33.19 | 7.0 | 37.7 | 0.76 | High | Dominant critical path. Highest variability.Actividad dominante. Mayor variabilidad. |
| E. ProductionE. Producción | 25.87 | 4.6 | 23.5 | 0.50 | High | Logistics risk. Supplier delays.Riesgo logístico. Demoras de proveedores. |
| A. PlanningA. Planeación | 15.91 | 2.8 | 14.0 | 0.31 | Med | Cascades downstream.Impacta aguas abajo. |
| D. ContractingD. Contratación | 12.39 | 1.9 | 9.3 | 0.21 | Low | Legal review delays.Demoras en revisión legal. |
| F. DeliveryF. Entrega | 8.17 | 1.3 | 6.6 | 0.15 | Low | Last-mile risk.Riesgo de última milla. |
| C. Budget ApprovalC. Aprobación | 10.82 | 2.8 | 14.3 | 0.04 | Low | Governance critical.Crítica para gobernanza. |
Parallel execution reduces duration by ~10 days but increases median cost by ~$3,000. The decision hinges on deadline vs. budget priority.
La ejecución paralela reduce la duración en ~10 días pero incrementa el costo mediano en ~$3,000. La decisión depende de prioridad: plazo vs. presupuesto.
Activity B (Bidding) dominates with 0.76 correlation. Targeted mitigation on this phase yields highest return on effort.
La actividad B (Licitación) domina con correlación 0.76. La mitigación enfocada en esta fase genera el mayor retorno.
Only 4.9% of E2 simulations achieve both ≤100 days and ≤$20,000. A 15% budget reserve over P50 is recommended.
Solo el 4.9% del E2 logra ≤100 días y ≤$20,000 simultáneamente. Se recomienda reserva del 15% sobre P50.
If deadline-driven with funding, E2 viable with P90 budgeting (~$27K). If cost-focused, E1 preferred despite later delivery.
Si hay presión de plazo y fondos, E2 viable con presupuesto P90 (~$27K). Si la prioridad es costo, se prefiere E1.
31% of E2 simulations fall into high-cost, high-duration quadrant — one-in-three chance of dual failure.
El 31% del E2 cae en el cuadrante de alto costo y alta duración — una probabilidad de uno en tres de falla dual.
Minimum 15% contingency above P50 in all scenarios. For E2 at P90: plan at least $27,036.
Contingencia mínima del 15% sobre P50 en todos los escenarios. Para E2 en P90: planificar al menos $27,036.
Simulation analysis implemented in Python with NumPy, Pandas, and Matplotlib.
Análisis de simulación implementado en Python con NumPy, Pandas y Matplotlib.
# Monte Carlo Simulation — Duration & Cost Analysis # Pharmaceutical Procurement Risk Assessment import pandas as pd import numpy as np import matplotlib.pyplot as plt # Load simulation data (6,000 iterations from IziRisk®) df = pd.read_excel(ruta_archivo, sheet_name='Datos_Simulados') # Extract cost columns for both scenarios columna_costos_e1 = 'Modelo_Costo!$B$20' columna_costos_e2 = 'Modelo_Costo!$C$20' # Calculate key percentiles p10, p50, p90 = np.percentile(data, [10, 50, 90]) # Generate histogram with cumulative probability curve fig, ax1 = plt.subplots(figsize=(14, 6)) counts, bins, _ = ax1.hist(data, bins=30, density=True, alpha=0.7, color='lightcoral') # Quadrant analysis for Scenario 2 umbral_duracion = 100 umbral_costo = 20000