Wave Data Schema v1
Initial schema version (2026-03-06). Covers all True Promise operations (TP1–TP4). Each wave is a JSON object with the fields below.
File Metadata
Top-level metadata object in each data file.
| Field | Type | Description |
|---|---|---|
metadata.operation | string | Operation identifier (e.g. "tp4") |
metadata.operation_name | string | Full English operation name |
metadata.operation_name_farsi | string | Operation name in Farsi script |
metadata.version | string | Schema version (e.g. "2.1") |
metadata.wave_count | integer | Total number of waves in this file |
metadata.date_range.start | date (ISO 8601) | First wave date |
metadata.date_range.end | date (ISO 8601) | Last wave date |
metadata.canonical_format | string | Canonical data format ("json") |
metadata.source_csv_columns | integer | Number of columns in the source CSV export |
metadata.countries_targeted | array of string | ISO 3166-1 alpha-2 country codes of all targeted nations |
Wave — Root Fields
| Field | Type | Description |
|---|---|---|
operation | string | Operation identifier (e.g. "tp4") |
wave_number | integer | Sequential wave number within the operation |
wave_codename_farsi | string | null | Iranian codename for the wave in Farsi, if any |
wave_codename_english | string | null | English translation of the wave codename, if any |
description | string | Free-text summary of the wave |
iranian_media_claims | string | null | Claims made by Iranian state media about this wave |
timing
| Field | Type | Description |
|---|---|---|
timing.announced_utc | datetime (ISO 8601) | UTC timestamp when the wave was announced |
timing.announcement_source | string | Source of the announcement (e.g. "IRGC") |
timing.announcement_x_url | string | null | URL to the announcement post on X/Twitter |
timing.probable_launch_time | datetime (ISO 8601) | Estimated UTC launch time based on OSINT |
timing.launch_time_israel | datetime (ISO 8601) | Launch time in Israel Standard Time (UTC+2/+3) |
timing.launch_time_iran | datetime (ISO 8601) | Launch time in Iran Standard Time (UTC+3:30) |
timing.solar_phase_launch_site | integer | Solar phase at launch site (0 = night, 1 = day) |
timing.solar_phase_target | integer | Solar phase at target (0 = night, 1 = day) |
timing.conflict_day | integer | Day number within the operation |
timing.hours_since_last_wave | number | null | Hours elapsed since the previous wave (null for wave 1) |
timing.time_between_waves_minutes | number | null | Minutes elapsed since the previous wave |
timing.wave_duration_minutes | number | null | Duration of the wave in minutes |
weapons
| Field | Type | Description |
|---|---|---|
weapons.payload | string | Free-text description of weapons used |
weapons.drones_used | boolean | Whether drones were used in this wave |
weapons.ballistic_missiles_used | boolean | Whether ballistic missiles were used |
weapons.cruise_missiles_used | boolean | Whether cruise missiles were used |
weapons.cluster_warhead | boolean | null | Whether cluster warheads were deployed |
weapons.types
| Field | Type | Description |
|---|---|---|
types.emad_used | boolean | null | Emad liquid-fueled ballistic missile |
types.ghadr_used | boolean | null | Ghadr liquid-fueled ballistic missile |
types.sejjil_used | boolean | null | Sejjil solid-fueled ballistic missile |
types.kheibar_shekan_used | boolean | null | Kheibar Shekan solid-fueled ballistic missile |
types.fattah_used | boolean | null | Fattah hypersonic ballistic missile |
types.shahed_136_used | boolean | null | Shahed-136 one-way attack drone |
types.shahed_238_used | boolean | null | Shahed-238 jet-powered attack drone |
types.shahed_131_used | boolean | null | Shahed-131 one-way attack drone |
types.shahed_107_used | boolean | null | Shahed-107 drone |
types.shahed_129_used | boolean | null | Shahed-129 reconnaissance/attack drone |
types.mohajer_6_used | boolean | null | Mohajer-6 UCAV |
weapons.categories
| Field | Type | Description |
|---|---|---|
categories.bm_liquid_fueled | boolean | null | Liquid-fueled ballistic missile used |
categories.bm_solid_fueled | boolean | null | Solid-fueled ballistic missile used |
categories.bm_marv_equipped | boolean | null | Maneuverable reentry vehicle (MARV) equipped missile used |
categories.bm_hypersonic | boolean | null | Hypersonic missile used |
categories.bm_cluster_warhead | boolean | null | Cluster warhead ballistic missile used |
targets
| Field | Type | Description |
|---|---|---|
targets.israel_targeted | boolean | Whether Israel was targeted |
targets.us_bases_targeted | boolean | Whether US military bases were targeted |
targets.targets | string | Free-text description of all targets |
targets.landings_countries | array of string | ISO 3166-1 alpha-2 codes of countries where munitions landed |
targets.us_bases | array of object | US bases targeted; each has name (string) and country_code (string) |
targets.us_naval_vessels | array | US naval vessels targeted or involved |
targets.target_coordinates.lat | number | Latitude of primary target area |
targets.target_coordinates.lon | number | Longitude of primary target area |
targets.israeli_locations
| Field | Type | Description |
|---|---|---|
targeted_tel_aviv | boolean | Tel Aviv metropolitan area targeted |
targeted_jerusalem | boolean | Jerusalem area targeted |
targeted_haifa | boolean | Haifa area targeted |
targeted_negev_beersheba | boolean | Negev / Be'er Sheva area targeted |
targeted_northern_periphery | boolean | Northern periphery targeted |
targeted_eilat | boolean | Eilat area targeted |
targets.critical_infrastructure
| Field | Type | Description |
|---|---|---|
targeted_airport | boolean | null | Airport infrastructure targeted |
targeted_energy | boolean | null | Energy infrastructure targeted |
targeted_port | boolean | null | Port infrastructure targeted |
targeted_government | boolean | null | Government facilities targeted |
targeted_industrial | boolean | null | Industrial infrastructure targeted |
targeted_telecom_data | boolean | null | Telecommunications / data infrastructure targeted |
targeted_diplomatic | boolean | null | Diplomatic facilities targeted |
targeted_research | boolean | null | Research facilities targeted |
launch_site
| Field | Type | Description |
|---|---|---|
launch_site.description | string | Free-text description of launch location(s) |
launch_site.lat | number | Latitude of primary launch area |
launch_site.lon | number | Longitude of primary launch area |
interception
| Field | Type | Description |
|---|---|---|
interception.intercepted | boolean | Whether any munitions were intercepted |
interception.interception_systems | array of string | Defense systems involved (e.g. "Arrow-3", "THAAD", "Iron Dome") |
interception.estimated_intercept_count | integer | null | Estimated number of successful intercepts |
interception.estimated_intercept_rate | number | null | Estimated interception success rate (0–1) |
interception.exoatmospheric_interception | boolean | Whether exoatmospheric (space-based) intercepts occurred |
interception.endoatmospheric_interception | boolean | Whether endoatmospheric (in-atmosphere) intercepts occurred |
interception.interception_report | string | Free-text summary of interception operations |
interception.intercepted_by
| Field | Type | Description |
|---|---|---|
intercepted_by.israel | boolean | Israel participated in interception |
intercepted_by.us | boolean | United States participated in interception |
intercepted_by.uk | boolean | United Kingdom participated in interception |
intercepted_by.jordan | boolean | Jordan participated in interception |
intercepted_by.other | array of string | Other countries that participated (e.g. "France", "UAE") |
munitions
| Field | Type | Description |
|---|---|---|
munitions.estimated_munitions_count | integer | null | Estimated total munitions launched in this wave |
munitions.munitions_targeting_israel | integer | null | Estimated munitions directed at Israel |
munitions.munitions_targeting_us_bases | integer | null | Estimated munitions directed at US bases |
munitions.cumulative_total | integer | null | Running cumulative total of all munitions across waves |
impact
| Field | Type | Description |
|---|---|---|
impact.damage | string | Free-text description of damage and casualties |
impact.fatalities | integer | null | Number of fatalities reported |
impact.injuries | integer | null | Number of injuries reported |
impact.civilian_casualties | integer | null | Civilian casualties (killed + injured) |
impact.military_casualties | integer | null | Military casualties (killed + injured) |
escalation
| Field | Type | Description |
|---|---|---|
escalation.new_country_targeted | boolean | Whether a previously untargeted country was attacked |
escalation.new_weapon_first_use | boolean | Whether a weapon system was used for the first time |
proxy
| Field | Type | Description |
|---|---|---|
proxy.involvement | boolean | Whether proxy forces were involved in this wave |
proxy.description | string | null | Details of proxy involvement |
sources
| Field | Type | Description |
|---|---|---|
sources.idf_statement | string | null | IDF official statement about this wave |
sources.urls | array of string | Source URLs for verification |
reactions
Official reactions from key actors. Each sub-object has statement (string | null) and url (string | null).
| Field | Type | Description |
|---|---|---|
reactions.idf.statement | string | null | IDF reaction statement |
reactions.idf.url | string | null | URL to IDF reaction |
reactions.us_government.statement | string | null | US government reaction statement |
reactions.us_government.url | string | null | URL to US government reaction |
reactions.centcom.statement | string | null | CENTCOM reaction statement |
reactions.centcom.url | string | null | URL to CENTCOM reaction |
International Reactions Schema
Separate from the wave data, the international_reactions.json file tracks how 210 states and multilateral bodies responded to each operation. Schema file: reaction.schema.json.
Reactions — File Metadata
| Field | Type | Description |
|---|---|---|
metadata.operation | string | Operation identifier: "tp1", "tp2", "tp3", "tp4", or "general" |
metadata.operation_name | string | Full operation name (e.g. "True Promise 4") |
metadata.entity_count | integer | Total entities in this file |
metadata.last_updated | date (ISO 8601) | Date the data was last updated |
Reactions — Entity Fields
Each entry in the reactions array represents a state or multilateral body.
| Field | Type | Description |
|---|---|---|
iso_3166_1_alpha2 | string | ISO 3166-1 alpha-2 country code (custom IDs for multilaterals) |
entity_name | string | Full name of the state or organisation |
entity_type | string | "state" or "multilateral" |
eu_member_state | boolean | Whether this entity is an EU member state |
combatant | boolean | Whether this entity was directly hit or had forces actively engaged |
overall_stance | string | null | Dominant assessed position (see stance enum below) |
head_of_state_statement | official_statement | Statement from president, monarch, or equivalent |
head_of_government_statement | official_statement | Statement from prime minister, chancellor, or equivalent |
foreign_ministry_statement | official_statement | Statement from foreign affairs ministry |
additional_statements | array of official_statement | Defence ministry, UN votes, state media, parliamentary resolutions, etc. |
notes | string | null | Contextual notes on the entity's position and history |
Reactions — Official Statement Object
| Field | Type | Description |
|---|---|---|
made | boolean | Whether a statement was made by this office |
date | date | null | Date the statement was issued (ISO 8601) |
speaker | string | null | Name of the person who made the statement |
speaker_title | string | null | Official title (e.g. "President", "Foreign Minister") |
summary | string | null | Brief summary of the statement's position |
statement_text | string | null | Direct quote or full text if available |
statement_url | string (URI) | null | URL to official statement or reporting |
category | string | null | Stance category of this specific statement (same enum as overall_stance) |
Reactions — Stance Enum
Positions are arranged on a spectrum from −3 (pro-Iran) to +3 (pro-Israel/coalition). Used in both overall_stance and individual statement category fields.
| Value | Score | Description |
|---|---|---|
active_participant_pro_iran | −3 | Provided direct military, logistical, or intelligence support to Iran's attacks |
supports_iran | −2 | Explicitly endorsed or praised Iran's attacks as justified |
condemns_israel | −1 | Condemned Israel without explicitly endorsing Iran's strikes |
calls_for_deescalation | 0 | Urged both sides to cease hostilities and pursue diplomacy |
neutral_acknowledgement | 0 | Acknowledged the conflict without taking a clear side |
silent | null | No public statement or position found |
condemns_iran | +1 | Condemned Iran's attacks or called on Iran specifically to stop |
supports_israel | +2 | Explicitly backed Israel's right to self-defense or offered support |
active_participant_coalition | +3 | Directly participated in intercepting Iranian munitions or active military defence |
Reactions — Data Files
| File | Description |
|---|---|
international_reactions.json | TP4 international reactions (210 entities) |
reaction_types.json | Reference data: stance enum with labels, descriptions, spectrum scores |
reaction.schema.json | JSON Schema definition for reaction data files |
AI-generated content for informational purposes only. Data should be independently verified. Schema documented 2026-03-08.