Obscura

GPR Index Daily

The daily Geopolitical Risk index of Caldara and Iacoviello, derived from newspaper coverage of geopolitical tension.

gpr_index_daily — the dataset name to pass to the Obscura API.

Category Government Columns 9 Refresh Daily Point-in-time available_date

What one row means

Caldara & Iacoviello Geopolitical Risk (GPR) index — DAILY series, one row per calendar day from 1985-01-01. Sourced from matteoiacoviello.com's `data_gpr_daily_recent.xls` and fully restated on each release (idempotent upsert on `index_date`).

One row per index_date.

Point-in-time availability

Every Obscura dataset carries available_date: the calendar day the publisher made the row available, day-of, with no session rounding. It is the one column a backtest filters on, and it means the same thing on every dataset in the catalog.

For gpr_index_daily: release_calendar: available_date = index_date + 7. The authors do not publish daily — they republish the entire workbook WEEKLY, restating 1985->present each time, so a given day first becomes downloadable at the next refresh: up to 7 days later (the file captured 2026-07-16 ended 2026-07-13, and on 2026-07-26 the newest stored row was 2026-07-20). The declared lag is the worst case, never an average. The STORED generated column computes index_date + 7 (m20260702_000182, which replaced the index_date + 1 of m20260702_000096).

Refresh cadence

Obscura refreshes gpr_index_daily daily — the most frequent scheduled job that re-collects or re-exports it. This is Obscura's own pipeline cadence, not the upstream publisher's release schedule; when a row became public is recorded per row in available_date.

Schema — 9 columns

The full public column list for gpr_index_daily, with the meaning of every field. The same schema is served unauthenticated at https://api.obscura.trade/v1/catalog/gpr_index_daily.

ColumnTypeDescription
index_datedate · not nullThe GPR daily index's own calendar day (source `date` column) — the natural/event day the score describes, not the day it became public.
gprddouble precisionHeadline daily geopolitical risk index (source `GPRD`).
gprd_actdouble precisionGeopolitical Acts sub-index (source `GPRD_ACT`).
gprd_threatdouble precisionGeopolitical Threats sub-index (source `GPRD_THREAT`).
gprd_ma30double precision30-day moving average of GPRD (source `GPRD_MA30`).
gprd_ma7double precision7-day moving average of GPRD (source `GPRD_MA7`).
n10ddouble precisionNumber of articles across the 10 recent newspapers (source `N10D`).
eventtextNotable geopolitical event label for the day, when present (source `event`).
available_datedatePUBLIC-availability date = index_date + 7, the worst case under Caldara-Iacoviello's WEEKLY republication of the whole workbook (the declared lag was + 1 until m20260702_000182, which described a daily release calendar that does not exist, marked each day public before the workbook carrying it existed, and made any staleness alarm fire between refreshes). DB-generated (STORED), read-only; the point-in-time column to filter/ join on — NEVER index_date, which is the index's own event day.

Access gpr_index_daily

Two delivery paths, one identifier. Both require an Obscura account and an active subscription; the catalog entry and the schema above are public.

import obscura

client = obscura.Client("obs_live_…")

df = client.query(
    dataset="gpr_index_daily",
    start="2024-01-01",
)

Create a free account Browse all 95 datasets

Frequently asked questions

What is in the gpr_index_daily dataset?

The daily Geopolitical Risk index of Caldara and Iacoviello, derived from newspaper coverage of geopolitical tension. Caldara & Iacoviello Geopolitical Risk (GPR) index — DAILY series, one row per calendar day from 1985-01-01. Sourced from matteoiacoviello.com's `data_gpr_daily_recent.xls` and fully restated on each release (idempotent upsert on `index_date`).

How do I avoid look-ahead bias with gpr_index_daily?

Filter on gpr_index_daily.available_date, the day the publisher made the row public. For this dataset that date is derived as follows — release_calendar: available_date = index_date + 7. The authors do not publish daily — they republish the entire workbook WEEKLY, restating 1985->present each time, so a given day first becomes downloadable at the next refresh: up to 7 days later (the file captured 2026-07-16 ended 2026-07-13, and on 2026-07-26 the newest stored row was 2026-07-20). The declared lag is the worst case, never an average. The STORED generated column computes index_date + 7 (m20260702_000182, which replaced the index_date + 1 of m20260702_000096). A query of the form WHERE available_date <= '<as-of date>' never sees a row before it existed.

In what formats can I get gpr_index_daily?

As a Parquet bulk export (POST https://api.obscura.trade/v1/download) or as JSON from the typed query API (POST https://api.obscura.trade/v1/query), both with dataset="gpr_index_daily". The column schema is public at https://api.obscura.trade/v1/catalog/gpr_index_daily.

How often is gpr_index_daily updated?

Obscura refreshes gpr_index_daily on a daily schedule — that is the most frequent scheduled job that re-collects or re-exports the table. It is Obscura's own pipeline cadence, not the upstream publisher's release schedule; when the publisher makes a row available is described by the availability rule above, and is recorded per row in available_date.

Related datasets

Border CrossingsMonthly inbound crossings at U.S. land ports on the Canadian and Mexican borders, split by mode (trucks, trains, persona… Congress LeaderboardWhich members of Congress have done best on the stock purchases they disclose: one dollar-weighted, one-year-forward ret… Congress TradesStock and asset trades disclosed by members of Congress and their households under the STOCK Act, parsed from House and … FEMA DisastersFederally declared disasters with type, location and dates, from FEMA. Government Contract TickersA crosswalk from federal-contract recipient names to ticker symbols, so government awards can be matched to public compa… GPR Index MonthlyThe monthly Geopolitical Risk index (Caldara and Iacoviello), with deeper history than the daily version. H-1B ApprovalsApproved H-1B visa petitions by employer, from USCIS. LEHD J2J FlowsJob-to-job worker flows from the Census LEHD program: how workers move between employers, industries and regions.