Skip to content

Instantly share code, notes, and snippets.

@cavedave
Last active March 12, 2026 13:42
Show Gist options
  • Select an option

  • Save cavedave/5e116cabcf0e116c67a7b78b0f10152c to your computer and use it in GitHub Desktop.

Select an option

Save cavedave/5e116cabcf0e116c67a7b78b0f10152c to your computer and use it in GitHub Desktop.
Timeline for Iranian Nuclear weapon
We can make this file beautiful and searchable if this error is corrected: Illegal quoting in line 6.
start_date,end_date,speaker,role,horizon,claim,source,source_url
1992-10-01,1999-12-31,Shimon Peres,Israeli FM,"by 1999","Iran ""set to have nuclear warheads by 1999"" (as reported in later timelines).",The Christian Science Monitor,https://www.csmonitor.com/World/Middle-East/2011/1108/Imminent-Iran-nuclear-threat-A-timeline-of-warnings-since-1979/Israel-paints-Iran-as-Enemy-No.-1-1992
1992-01-01,1997-12-31,Benjamin Netanyahu,Israeli MK,"within 3–5 years",Iran becoming autonomous in ability to develop/produce a nuclear bomb.,Al Jazeera,https://www.aljazeera.com/gallery/2025/6/18/the-history-of-netanyahus-rhetoric-on-irans-nuclear-ambitions
1993-02-01,1999-12-31,Benjamin Netanyahu,Israeli MK,"by 1999","In a Feb 1993 column (Yedioth Ahronoth) Netanyahu wrote that Iran would develop its first nuclear bomb by 1999.",Ynet,https://www.ynetnews.com/article/4633272
1995-01-05,2000-01-05,Senior US & Israeli officials (quoted),quoted,"less than five years","""Less than five years away"" from having a nuclear bomb (quoted line widely reproduced from the NYT report).",Deseret News,https://www.deseret.com/1995/1/5/19151608/iran-could-have-an-n-bomb-in-5-years/
1996-02-01,2000-02-01,Shimon Peres,Israeli PM,"in four years",Peres claim that Iran would gain nuclear weapons "in 4 years.",hosseinmousavian.com,https://hosseinmousavian.com/wp-content/uploads/2013/11/Mousavian_International-Studies-Journal_Fall-2013.pdf
1999-11-01,2004-11-01,Senior Israeli military official,,within 5 years,Iran would possess nuclear capability within five years.,hosseinmousavian.com,https://hosseinmousavian.com/wp-content/uploads/2013/11/Mousavian_International-Studies-Journal_Fall-2013.pdf
2001-07-01,2005-12-31,Binyamin Ben-Eliezer,Israeli Defence Minister,"by 2005",Iran would have a nuclear bomb by 2005.,The Irish Times,https://www.irishtimes.com/news/israel-says-iran-will-have-nuclear-bomb-by-2005-1.412773
2003-08-04,2005-12-31,Senior Israeli military intelligence officer,Knesset briefing,"by 2005","Senior military intelligence officer told Knesset Foreign Affairs and Defense Committee Iran would have nuclear weapons operational by 2005 (Israel Radio, reported Haaretz).",Haaretz,https://www.haaretz.com/2003-08-04/ty-article/intelligence-officer-iran-could-have-nuclear-weapons-by-2005/0000017f-e557-dc7e-adff-f5ff7d230000
2005-01-27,2006-01-27,Shaul Mofaz,Israeli Defence Minister,"within the next 12 months",Iran would reach a "point of no return" within 12 months.,The Guardian,https://www.theguardian.com/world/2005/jan/27/politics.iran
2007-12-09,2010-12-31,Ehud Olmert,Israeli PM,"by 2010",Iran would have enriched enough uranium / have resources to create a nuclear weapon by 2010.,Reuters,https://www.reuters.com/article/economy/israel-says-iran-could-have-nuclear-bomb-by-2010-idUSL09388682/
2008-06-01,2009-06-01,Mohamed ElBaradei,IAEA DG,"within 6 months to 1 year",Warning framed as: if Iran expelled inspectors/withdrew cooperation it could produce a weapon in 6–12 months.,WIRED,https://www.wired.com/2008/06/iaea-chief-iran
2009-10-26,2011-04-26,Western diplomats/intel officials (via Reuters),via Reuters,minimum 18 months,Estimate that if Iran chose to build a weapon it would take at least ~18 months.,Reuters,https://www.reuters.com/article/business/change-suite/iran-seen-needing-18-months-to-build-atom-bomb-idUSTRE59P0R1/
2011-11-19,2012-11-19,Ehud Barak,Israeli Defence Minister,"less than a year","Iran ""less than a year away"" from being ""unstoppable"" in its goal (reported as about producing a nuclear weapon).",Reuters,https://www.reuters.com/article/world/time-running-out-to-stop-a-nuclear-iran-israel-idUSTRE7AI0UM/
2012-09-17,2013-04-17,Benjamin Netanyahu,Israeli PM,"6–7 months",Iran would reach the brink of being able to build a nuclear bomb in 6–7 months.,Reuters,https://www.reuters.com/article/world/us/iran-on-brink-of-nuclear-bomb-in-6-7-months-netanyahu-idUSBRE88F06Q/
2012-09-27,2013-07-01,Benjamin Netanyahu,Israeli PM,"less than a year",UN "red line" speech: brink in <1 year often paraphrased as by next summer; also used "months… maybe weeks" for final enrichment stage.,The Guardian,https://www.theguardian.com/world/blog/2012/sep/27/binyamin-netanyahu-israel
2013-09-20,2014-03-20,Senior Israeli minister,,within six months,Said Iran was on course to develop a nuclear bomb within six months.,Reuters,https://www.reuters.com/article/world/no-time-left-for-negotiations-with-iran-israeli-minister-idUSBRE98J08Y/
2011-01-07,2015-01-01,Meir Dagan,outgoing Mossad chief,"not before 2015",Said Iran would not be able to build a nuclear bomb before 2015.,Haaretz,https://www.haaretz.com/2011-01-07/ty-article/outgoing-mossad-chief-iran-wont-have-nuclear-capability-before-2015/0000017f-e993-dea7-adff-f9fba1f80000
2022-05-01,2022-05-22,Benny Gantz,Israeli Defence Minister,"a few weeks away",Said Iran was a few weeks from enough fissile material for a first bomb (breakout/material framing).,Opinio Juris,https://opiniojuris.org/2013/01/28/yet-another-estimate-of-when-iran-will-have-the-bomb/
2024-04-23,2024-05-23,Rafael Grossi,IAEA DG,"weeks not months",Said it would take Iran "weeks" to have enough enriched uranium for a bomb (material framing).,The Times of Israel,https://www.timesofisrael.com/un-nuclear-chief-iran-weeks-not-months-from-enough-uranium-to-make-a-bomb/
2024-07-19,2024-08-02,Antony Blinken,US Secretary of State,"1–2 weeks",Said Iran's breakout time for enough material was probably down to 1–2 weeks (material framing).,ABC News,https://abcnews.com/Politics/iran-produce-nuclear-weapon-couple-weeks-white-house/story?id=123016638
2025-06-01,2025-06-22,Donald Trump,US President,"a few weeks away",Claimed Iran was a few weeks away from a nuclear weapon (reported in live coverage).,The Times of Israel,https://www.timesofisrael.com/mossad-says-iran-15-days-from-bomb-us-agencies-still-say-up-to-a-year-report/
2026-02-01,2026-02-15,White House,reported by WSJ,"within days",WSJ reports White House claims Iran was within days of producing weapons-grade material; experts/diplomats dispute.,The Wall Street Journal,https://www.wsj.com/world/middle-east/white-house-says-iran-is-close-to-weapons-grade-nuclear-material-experts-say-no-e7a93cb5
1984-06-27,1991-06-27,Alan Cranston,US Senator,"7 years","In a 1984 Senate speech said Iran was 'seven years away from making a weapon', implying capability by 1991.",Wikipedia,https://en.wikipedia.org/wiki/History_of_the_nuclear_program_of_Iran#cite_note-23
1984-04-01,1986-04-01,West German intelligence (BND),West German intelligence service,"within two years","BND leaked a report that Iran might have a nuclear bomb within two years with Pakistani uranium, the first public Western intelligence claim of a post-revolutionary Iranian weapons program.",Wikipedia,https://en.wikipedia.org/wiki/History_of_the_nuclear_program_of_Iran#Post-revolution,_1979%E2%80%931989
2026-03-01,2026-03-15,Donald Trump,US President,"2 weeks away","Trump said Iran was 2 weeks away from a nuclear weapon (reported by Jacqui Heinrich, X).",Jacqui Heinrich (X),https://x.com/JacquiHeinrich/status/2028127909093798201?s=20
start_date,end_date,speaker,role,horizon,claim,source,source_url
1992-10-01,1999-12-31,Shimon Peres,Israeli FM,"by 1999","Iran ""set to have nuclear warheads by 1999"" (as reported in later timelines).",The Christian Science Monitor,https://www.csmonitor.com/World/Middle-East/2011/1108/Imminent-Iran-nuclear-threat-A-timeline-of-warnings-since-1979/Israel-paints-Iran-as-Enemy-No.-1-1992
1992-01-01,1997-12-31,Benjamin Netanyahu,Israeli MK,"within 3–5 years",Iran becoming autonomous in ability to develop/produce a nuclear bomb.,Al Jazeera,https://www.aljazeera.com/gallery/2025/6/18/the-history-of-netanyahus-rhetoric-on-irans-nuclear-ambitions
1995-01-05,2000-01-05,Senior US & Israeli officials (quoted),quoted,"less than five years","""Less than five years away"" from having a nuclear bomb (quoted line widely reproduced from the NYT report).",Deseret News,https://www.deseret.com/1995/1/5/19151608/iran-could-have-an-n-bomb-in-5-years/
1996-02-01,2000-02-01,Shimon Peres,Israeli PM,"in four years",Peres claim that Iran would gain nuclear weapons "in 4 years.",hosseinmousavian.com,https://hosseinmousavian.com/wp-content/uploads/2013/11/Mousavian_International-Studies-Journal_Fall-2013.pdf
1999-11-01,2004-11-01,Senior Israeli military official,,within 5 years,Iran would possess nuclear capability within five years.,hosseinmousavian.com,https://hosseinmousavian.com/wp-content/uploads/2013/11/Mousavian_International-Studies-Journal_Fall-2013.pdf
2001-07-01,2005-12-31,Binyamin Ben-Eliezer,Israeli Defence Minister,"by 2005",Iran would have a nuclear bomb by 2005.,The Irish Times,https://www.irishtimes.com/news/israel-says-iran-will-have-nuclear-bomb-by-2005-1.412773
2005-01-27,2006-01-27,Shaul Mofaz,Israeli Defence Minister,"within the next 12 months",Iran would reach a "point of no return" within 12 months.,The Guardian,https://www.theguardian.com/world/2005/jan/27/politics.iran
2007-12-09,2010-12-31,Ehud Olmert,Israeli PM,"by 2010",Iran would have enriched enough uranium / have resources to create a nuclear weapon by 2010.,Reuters,https://www.reuters.com/article/economy/israel-says-iran-could-have-nuclear-bomb-by-2010-idUSL09388682/
2008-06-01,2009-06-01,Mohamed ElBaradei,IAEA DG,"within 6 months to 1 year",Warning framed as: if Iran expelled inspectors/withdrew cooperation it could produce a weapon in 6–12 months.,WIRED,https://www.wired.com/2008/06/iaea-chief-iran
2009-10-26,2011-04-26,Western diplomats/intel officials (via Reuters),via Reuters,minimum 18 months,Estimate that if Iran chose to build a weapon it would take at least ~18 months.,Reuters,https://www.reuters.com/article/business/change-suite/iran-seen-needing-18-months-to-build-atom-bomb-idUSTRE59P0R1/
2011-11-19,2012-11-19,Ehud Barak,Israeli Defence Minister,"less than a year","Iran ""less than a year away"" from being ""unstoppable"" in its goal (reported as about producing a nuclear weapon).",Reuters,https://www.reuters.com/article/world/time-running-out-to-stop-a-nuclear-iran-israel-idUSTRE7AI0UM/
2012-09-17,2013-04-17,Benjamin Netanyahu,Israeli PM,"6–7 months",Iran would reach the brink of being able to build a nuclear bomb in 6–7 months.,Reuters,https://www.reuters.com/article/world/us/iran-on-brink-of-nuclear-bomb-in-6-7-months-netanyahu-idUSBRE88F06Q/
2012-09-27,2013-07-01,Benjamin Netanyahu,Israeli PM,"less than a year",UN "red line" speech: brink in <1 year often paraphrased as by next summer; also used "months… maybe weeks" for final enrichment stage.,The Guardian,https://www.theguardian.com/world/blog/2012/sep/27/binyamin-netanyahu-israel
2013-09-20,2014-03-20,Senior Israeli minister (unnamed in Reuters item),,within six months,Said Iran was on course to develop a nuclear bomb within six months.,Reuters,https://www.reuters.com/article/world/no-time-left-for-negotiations-with-iran-israeli-minister-idUSBRE98J08Y/
2011-01-07,2015-01-01,Meir Dagan,outgoing Mossad chief,"not before 2015",Said Iran would not be able to build a nuclear bomb before 2015.,Haaretz,https://www.haaretz.com/2011-01-07/ty-article/outgoing-mossad-chief-iran-wont-have-nuclear-capability-before-2015/0000017f-e993-dea7-adff-f9fba1f80000
2022-05-01,2022-05-22,Benny Gantz,Israeli Defence Minister,"a few weeks away",Said Iran was a few weeks from enough fissile material for a first bomb (breakout/material framing).,Opinio Juris,https://opiniojuris.org/2013/01/28/yet-another-estimate-of-when-iran-will-have-the-bomb/
2024-04-23,2024-05-23,Rafael Grossi,IAEA DG,"weeks not months",Said it would take Iran "weeks" to have enough enriched uranium for a bomb (material framing).,The Times of Israel,https://www.timesofisrael.com/un-nuclear-chief-iran-weeks-not-months-from-enough-uranium-to-make-a-bomb/
2024-07-19,2024-08-02,Antony Blinken,US Secretary of State,"1–2 weeks",Said Iran's breakout time for enough material was probably down to 1–2 weeks (material framing).,ABC News,https://abcnews.com/Politics/iran-produce-nuclear-weapon-couple-weeks-white-house/story?id=123016638
2025-06-01,2025-06-22,Donald Trump,US President,"a few weeks away",Claimed Iran was a few weeks away from a nuclear weapon (reported in live coverage).,The Times of Israel,https://www.timesofisrael.com/mossad-says-iran-15-days-from-bomb-us-agencies-still-say-up-to-a-year-report/
2026-02-01,2026-02-15,White House (reported by WSJ),reported by WSJ,"within days",WSJ reports White House claims Iran was within days of producing weapons-grade material; experts/diplomats dispute.,The Wall Street Journal,https://www.wsj.com/world/middle-east/white-house-says-iran-is-close-to-weapons-grade-nuclear-material-experts-say-no-e7a93cb5
# Timeline of Iran nuclear capability claims (Gantt-style: one row per prediction)
# Earliest prediction at top, latest at bottom. Left = when claimed, bar = claimed horizon.
# Requires: ggplot2, ggrepel, readr, dplyr
library(ggplot2)
library(ggrepel)
library(readr)
library(dplyr)
# Read data
d <- read_csv("timeline.csv", show_col_types = FALSE)
d$start_date <- as.Date(d$start_date)
d$end_date <- as.Date(d$end_date)
# Exclude Netanyahu 6–7 months (2012-09-17) — redundant with his "less than a year" (2012-09-27)
d <- d[!(d$speaker == "Benjamin Netanyahu" & d$start_date == as.Date("2012-09-17")), ]
# Order by start_date: first presentation = first row
d <- d[order(d$start_date), ]
d$row <- seq_len(nrow(d))
# Label: speaker only (timeline is shown by the bars); drop parenthetical text
d$label <- d$speaker
d$label <- trimws(gsub("\\s*\\([^)]*\\)", "", d$label))
# Source type for colouring (Israeli / US / IAEA / Other)
d$source_type <- "Other"
d$source_type[grepl("IAEA|ElBaradei|Grossi", d$speaker, ignore.case = TRUE) | grepl("IAEA", d$role, ignore.case = TRUE)] <- "IAEA"
d$source_type[grepl("Trump|Blinken|White House", d$speaker, ignore.case = TRUE) | grepl("US |U.S.", d$role)] <- "US"
d$source_type[grepl("Israeli|Israel", d$role, ignore.case = TRUE) | grepl("Peres|Netanyahu|Olmert|Barak|Mofaz|Ben-Eliezer|Gantz|Dagan|Israeli minister|Israeli military", d$speaker, ignore.case = TRUE)] <- "Israeli"
d$source_type[grepl("US & Israeli|Israeli", d$speaker)] <- "Israeli"
d$source_type[grepl("Senior US & Israeli", d$speaker)] <- "Other"
d$source_type <- factor(d$source_type, levels = c("Israeli", "US", "IAEA", "Other"))
# Segment data: one bar per prediction (start to end), coloured by source
periods <- data.frame(
start = d$start_date,
end = d$end_date,
row = d$row,
source_type = d$source_type
)
col_sources <- c("Israeli" = "#C9A227", "US" = "#0072B2", "IAEA" = "#009E73", "Other" = "#666666")
n <- nrow(d)
# Pause points: kinetic actions only (no breakout milestones)
ka <- read_csv("iran_nuclear_kinetic_actions.csv", show_col_types = FALSE)
ka$date <- as.Date(ka$date)
ka$category <- gsub(" \\(aerial\\)", "", ka$category)
ka$category <- factor(ka$category, levels = c("Sabotage", "Bombing", "Assassination"))
ka$short_label <- ka$target
ka$short_label <- gsub(" \\(killed\\).*", "", ka$short_label)
ka$short_label <- gsub(" \\(linked in reporting.*", "", ka$short_label)
ka$short_label <- gsub(" \\(under construction\\)", "", ka$short_label)
ka$short_label <- ifelse(nchar(ka$short_label) > 35, paste0(substr(ka$short_label, 1, 32), "..."), ka$short_label)
kinetic_y <- n + 1.5
ka$y <- kinetic_y
pause_pts <- ka %>% select(date, category, short_label, y)
col_pause <- c("Sabotage" = "#A23B72", "Bombing" = "#E94F37", "Assassination" = "#5C4033")
# X-axis: limit to actual data range (predictions + kinetic events), not far future
x_min <- min(c(d$start_date, ka$date), na.rm = TRUE)
x_max <- max(c(d$end_date, ka$date), na.rm = TRUE)
x_max <- as.Date("2029-12-31") # cap before 2030 so axis doesn't imply predictions that far out
x_min <- min(x_min, as.Date("1983-01-01")) # small left buffer
# US in Iran nuclear deal (JCPOA): 2015-07-14 to 2018-05-08
deal_start <- as.Date("2015-07-14")
deal_end <- as.Date("2018-05-08")
# Gantt-style: y = row, scale_y_reverse so row 1 (earliest) is at top
p <- ggplot(d, aes(x = start_date, y = row)) +
annotate(
"rect",
xmin = deal_start, xmax = deal_end,
ymin = n + 0.15, ymax = n + 0.85,
fill = "grey90", alpha = 0.6
) +
geom_segment(
data = periods,
aes(x = start, xend = end, y = row, yend = row, colour = source_type),
linewidth = 3.2,
alpha = 0.8
) +
geom_point(aes(colour = source_type), size = 3.2) +
geom_text(
aes(x = end_date, label = label, colour = source_type),
hjust = -0.02,
nudge_x = 50,
size = 3.2,
show.legend = FALSE
) +
scale_x_date(
name = "Year (prediction start to predicted deadline)",
date_breaks = "4 years",
date_labels = "%Y",
limits = c(x_min, x_max),
expand = expansion(mult = c(0.02, 0))
) +
annotate(
"text",
x = as.Date("2016-12-31"),
y = n + 0.5,
label = "US in Iran nuclear deal",
size = 3.5,
hjust = 0.5
) +
# Pause points: kinetic actions (coloured diamonds only; no labels)
geom_point(data = pause_pts, aes(x = date, y = y, colour = category), size = 3.5, shape = 18, inherit.aes = FALSE) +
annotate(
"text",
x = x_max,
y = kinetic_y,
label = "Disruptions",
size = 3.2,
hjust = 1,
fontface = "italic"
) +
scale_y_reverse(
breaks = seq_len(n),
labels = NULL,
name = "",
expand = expansion(mult = c(0.04, 0.06))
) +
scale_colour_manual(
values = c(col_sources, col_pause),
name = ""
) +
labs(
title = "Timelines Given for Iran to develop a Nuclear Weapon",
subtitle = "Each bar runs from when the prediction was made (dot) to the end of the predicted window for Iran to have a nuclear weapon."
) +
theme_minimal() +
theme(
legend.position = "top",
panel.grid.minor = element_blank(),
panel.grid.major.y = element_blank(),
plot.title = element_text(size = 22, face = "bold", hjust = 0, margin = margin(b = 2)),
plot.margin = margin(t = 10, r = 8, b = 8, l = 8, unit = "pt"),
legend.box.margin = margin(t = 0, b = 0),
legend.margin = margin(t = 0, b = 0),
legend.box.spacing = unit(0, "pt")
)
print(p)
# Height scales with number of predictions
ggsave("timelinepause.png", p, width = 14, height = 2 + n * 0.28, dpi = 150, bg = "white")
message("Saved timelinepause.png")
@cavedave
Copy link
Author

timeline

@cavedave
Copy link
Author

cavedave commented Mar 1, 2026

timeline

@cavedave
Copy link
Author

cavedave commented Mar 4, 2026

timelinepause

@cavedave
Copy link
Author

timelinepause

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