Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save tgaeta/26b01135e88ff4fda556395d2f8488d9 to your computer and use it in GitHub Desktop.

Select an option

Save tgaeta/26b01135e88ff4fda556395d2f8488d9 to your computer and use it in GitHub Desktop.
A comprehensive report projecting civilian mortality in Gaza over the next two years (2025–2027), using a Monte Carlo simulation model incorporating direct violence, starvation, healthcare collapse, infectious diseases, water/sanitation failures, displacement-related mortality, and chronic/mental health impacts. Includes detailed methodology, fi…

Gaza Civilian Mortality Projection Report (July 6, 2025)

Overview

This report summarizes a Monte Carlo simulation projecting civilian deaths in Gaza over the next 2 years, accounting for:

  • Direct violence
  • Starvation
  • Healthcare collapse
  • Infectious diseases
  • Water/sanitation failures
  • Displacement-related mortality
  • Chronic disease & mental health impacts

Final Simulation Results

Warning

Median projected civilian deaths: 297,517
90% range (5–95 percentile): 294,541 – 300,473
95% confidence interval on median: 297,484 – 297,551


Visualizations

Projected Cumulative Civilian Deaths Over Time

image

Distribution of Projected Total Civilian Deaths

image


Methodology

  • Monte Carlo simulations: 20,000 runs over 730 days (2 years).
  • Daily deaths sampled from normal distributions for each mortality driver.
  • Cumulative deaths summed for each simulation to generate a distribution of possible outcomes.
  • Bootstrap resampling provided confidence intervals on median projections.

Mortality drivers modeled:

  • Violent deaths: Based on direct attacks.
  • Starvation: Reflecting widespread food insecurity and famine conditions.
  • Healthcare collapse: Deaths from untreated injuries and lack of chronic care.
  • Infectious diseases: Diarrheal, respiratory, and other preventable diseases.
  • Water/sanitation: Deaths from dehydration and waterborne illness.
  • Displacement: Mortality from exposure and poor shelter conditions.
  • Chronic/mental health: Indirect deaths from untreated chronic illnesses and mental health crises.

Interpretation

If current conditions persist, Gaza could face a catastrophic civilian death toll nearing 300,000 within two years from this report

Code

# Monte Carlo simulation: projection of civilian deaths over 2 years in Gaza
# Components: direct violence, starvation, healthcare collapse, infectious disease,
# water/sanitation failure, displacement-related mortality, chronic/mental health

import numpy as np
import matplotlib.pyplot as plt

# Configuration
days = 730                    # simulate 2 years
tsim = 20000                  # Monte Carlo runs
bootstrap_rounds = 5000       # for CI estimation

# 1. Direct violence parameters
violence_means = [60, 90]     # low/high daily total violent deaths
violence_sd = 15
violence_weights = [0.5, 0.5]
civ_violence_ratio = 0.9      # fraction of violent deaths that are civilian

# 2. Starvation parameters
starv_mean = 200
starv_sd = 60

# 3. Healthcare collapse (indirect) parameters
hc_mean = 40
hc_sd = 15

# 4. Infectious disease & sanitation parameters
id_mean = 35
id_sd = 10

# 5. Water/sanitation failure parameters
ws_mean = 25
ws_sd = 8

# 6. Displacement-related mortality parameters
disp_mean = 30
disp_sd = 10

# 7. Chronic disease & mental health parameters
chronic_mean = 10
chronic_sd = 4

# Storage for total projected deaths across simulations
totals = np.empty(tsim)

# Simulation loop
for i in range(tsim):
    # Violence
    choice = np.random.choice([0, 1], size=days, p=violence_weights)
    mu_arr = np.where(choice == 0, violence_means[0], violence_means[1])
    daily_violence = np.random.normal(mu_arr, violence_sd)
    daily_violence = np.clip(daily_violence, 0, None)
    civ_violence = daily_violence.sum() * civ_violence_ratio

    # Starvation
    daily_starv = np.random.normal(starv_mean, starv_sd, size=days)
    daily_starv = np.clip(daily_starv, 0, None)
    starvation = daily_starv.sum()

    # Healthcare collapse
    daily_hc = np.random.normal(hc_mean, hc_sd, size=days)
    daily_hc = np.clip(daily_hc, 0, None)
    hc_deaths = daily_hc.sum()

    # Infectious disease
    daily_id = np.random.normal(id_mean, id_sd, size=days)
    daily_id = np.clip(daily_id, 0, None)
    id_deaths = daily_id.sum()

    # Water/sanitation failure
    daily_ws = np.random.normal(ws_mean, ws_sd, size=days)
    daily_ws = np.clip(daily_ws, 0, None)
    ws_deaths = daily_ws.sum()

    # Displacement-related mortality
    daily_disp = np.random.normal(disp_mean, disp_sd, size=days)
    daily_disp = np.clip(daily_disp, 0, None)
    disp_deaths = daily_disp.sum()

    # Chronic & mental health
    daily_chronic = np.random.normal(chronic_mean, chronic_sd, size=days)
    daily_chronic = np.clip(daily_chronic, 0, None)
    chronic_deaths = daily_chronic.sum()

    # Total for this simulation
    totals[i] = (civ_violence + starvation + hc_deaths + id_deaths
                 + ws_deaths + disp_deaths + chronic_deaths)

# Summary statistics
median = np.median(totals)
p5, p95 = np.percentile(totals, [5, 95])

# Bootstrap CI on median
boot_medians = np.empty(bootstrap_rounds)
for j in range(bootstrap_rounds):
    sample = np.random.choice(totals, size=tsim, replace=True)
    boot_medians[j] = np.median(sample)
ci_lower, ci_upper = np.percentile(boot_medians, [2.5, 97.5])

# Output results
print("Projection of civilian deaths over next 2 years (all drivers):")
print(f"  • Median: {median:,.0f}")
print(f"  • 90% range (5-95): {p5:,.0f} - {p95:,.0f}")
print(f"  • 95% CI on median: {ci_lower:,.0f} - {ci_upper:,.0f}\n")

# Visualization Section
# 1. Time-series of cumulative projected deaths by month
months = np.arange(1, days//30 + 1)
medians_ts, p5_ts, p95_ts = [], [], []
for m in months:
    frac = (m * 30) / days
    medians_ts.append(median * frac)
    p5_ts.append(p5 * frac)
    p95_ts.append(p95 * frac)

plt.figure(figsize=(10,6))
plt.plot(months, medians_ts, label='Median cumulative deaths')
plt.fill_between(months, p5_ts, p95_ts, alpha=0.2, label='5-95% range')
plt.xlabel('Months from start')
plt.ylabel('Cumulative civilian deaths')
plt.title('Projected Cumulative Civilian Deaths over 2 Years')
plt.legend()
plt.grid(True)
plt.tight_layout()
plt.show()

# 2. Histogram of total projected deaths\plt.figure(figsize=(8,5))
plt.hist(totals, bins=50, alpha=0.7)
plt.xlabel('Total civilian deaths after 2 years')
plt.ylabel('Frequency')
plt.title('Distribution of Projected Civilian Deaths')
plt.grid(True)
plt.tight_layout()
plt.show()

Verified Sources

  1. UN OCHA. “Updates | United Nations Office for the Coordination of Humanitarian Affairs - Occupied Palestinian Territory.” OCHA Gaza Updates (2023–2025).

  2. World Health Organization (WHO). “occupied Palestinian territory.” WHO OPT Reports (2023–2025).

  3. World Food Programme (WFP). “Palestine | World Food Programme.” WFP Gaza Emergency (2023–2025).

  4. Médecins Sans Frontières (MSF). “Palestine | MSF medical and humanitarian aid.” MSF Palestine Updates (2023–2025).

  5. UNICEF. “More than 5,000 children diagnosed with malnutrition in the Gaza Strip in May.” UNICEF Press Release (May 2025).

  6. Financial Times (FT). “Gaza on brink of running out of fuel in Israeli siege.” FT Article (April 2025).

  7. Reuters. “Details of the humanitarian crisis in Gaza.” Reuters Special Report (May 2024).

  8. The Guardian. “Children and elderly are dying from starvation in Gaza, says health minister.” Guardian Article (May 2025).

  9. Washington Post. “IPC report says Gaza faces 'critical' famine risk.” Washington Post Article (May 2025).

  10. Brown University, Costs of War Project. “Costs of War.” Costs of War Research (accessed July 2025).


Tags

Gaza, Gaza War, Civilian Casualties, Humanitarian Crisis, Monte Carlo Simulation, Famine, Starvation, Healthcare Collapse, Infectious Disease, Displacement, Mortality Projection, Gaza Conflict, 2025 Gaza War, Middle East Crisis, United Nations, WHO, WFP, UNICEF, Human Rights, Humanitarian Aid, Conflict Analysis, Civilian Deaths, War Impact, Statistical Modeling, Forecasting, Gaza Report

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment