What you should know about this indicator

  • This data comes from the LGBTI National Policy Dataset, compiled by Kristopher Velasco at Princeton University. It tracks the adoption, scope, and enforcement of 27 LGBTI-related policies across 195 countries, with annual data starting in 1991.
  • The indicator is coded as follows: Both covered (national hate crime legislation covers both sexual orientation and gender identity), Sexual orientation only (only sexual orientation is covered by national hate crime legislation), Varies by region (coverage differs between subnational jurisdictions for either ground) and Not covered (national hate crime legislation does not cover either ground).
  • "Varies by region" also covers asymmetric cases where one dimension is fully unprotected and the other is partially protected across subnational jurisdictions — e.g. a federal country where some states or provinces protect sexual orientation but none protect gender identity.
  • The dataset counts policies established by binding legal instruments — statutes, constitutional provisions, decrees and regulations with the force of law, and binding court rulings. Where no law governs a policy, a written rule that does can count too, such as a health-authority guideline, a blood service's donor questionnaire or a religious ruling. Bills, ministerial statements and non-binding declarations are not counted.
Hate crimes based on sexual orientation or gender identity are an aggravating circumstance
Velasco
Whether national hate crime legislation covers sexual orientation, gender identity, both, or neither as a protected characteristic.
Source
Velasco (2026) – with major processing by Our World in Data
Last updated
July 15, 2026
Next expected update
July 2027
Date range
1991–2025

Sources and processing

Velasco – LGBTI National Policy Dataset

The LGBTI National Policy Dataset (Version 3.0) is a country-year-policy panel tracking the adoption, scope, and enforcement of LGBTI-related policies across 195 countries from 1991 to 2025. The dataset is distributed in long format: each row records one country in one year for one specific policy-status combination, with the share of the population covered, the adoption and implementation years, the policy's descriptors (penalty, fine, sexes covered, scope, enforcement), up to twelve source citations and a confidence rating. It is designed for use in comparative political research, policy diffusion analysis, and quantitative cross-national studies of LGBTI rights.

The dataset covers 27 distinct policy areas organized into 54 policy-status combinations (each policy paired with two mutually exclusive status directions). Of these 54 combinations, 36 contain substantive data; the remaining 18 are structural placeholders with all-zero values, included to maintain a fully balanced panel suitable for econometric methods.

Retrieved on
October 19, 2026
Citation
This is the citation of the original data obtained from the source, prior to any processing or adaptation by Our World in Data. To cite data downloaded from this page, please use the suggested citation given in Reuse This Work below.
Velasco, Kristopher. 2026. "LGBTI National Policy Dataset, Version 3.0." https://doi.org/10.17605/OSF.IO/WTA9P.

The LGBTI National Policy Dataset (Version 3.0) is a country-year-policy panel tracking the adoption, scope, and enforcement of LGBTI-related policies across 195 countries from 1991 to 2025. The dataset is distributed in long format: each row records one country in one year for one specific policy-status combination, with the share of the population covered, the adoption and implementation years, the policy's descriptors (penalty, fine, sexes covered, scope, enforcement), up to twelve source citations and a confidence rating. It is designed for use in comparative political research, policy diffusion analysis, and quantitative cross-national studies of LGBTI rights.

The dataset covers 27 distinct policy areas organized into 54 policy-status combinations (each policy paired with two mutually exclusive status directions). Of these 54 combinations, 36 contain substantive data; the remaining 18 are structural placeholders with all-zero values, included to maintain a fully balanced panel suitable for econometric methods.

Retrieved on
October 19, 2026
Citation
This is the citation of the original data obtained from the source, prior to any processing or adaptation by Our World in Data. To cite data downloaded from this page, please use the suggested citation given in Reuse This Work below.
Velasco, Kristopher. 2026. "LGBTI National Policy Dataset, Version 3.0." https://doi.org/10.17605/OSF.IO/WTA9P.

All data and visualizations on Our World in Data rely on data sourced from one or several original data providers. Preparing this original data involves several processing steps. Depending on the data, this can include standardizing country names and world region definitions, converting units, calculating derived indicators such as per capita measures, as well as adding or adapting metadata such as the name or the description given to an indicator.

At the link below you can find a detailed description of the structure of our data pipeline, including links to all the code used to prepare data across Our World in Data.

Read about our data pipeline
Notes on our processing step for this indicator

The original dataset has separate indicators for sexual orientation and for gender identity. We combined them into one indicator that shows whether national law covers both grounds, only one, or neither. When either ground is covered in only part of the country, we classify the country as "Varies by region".

How to cite this page

To cite this page overall, including any descriptions, FAQs or explanations of the data authored by Our World in Data, please use the following citation:

“Data Page: Hate crimes based on sexual orientation or gender identity are an aggravating circumstance”, part of the following publication: Bastian Herre and Pablo Arriagada (2023) - “LGBT+ Rights”. Data adapted from Velasco. Retrieved from https://archive.ourworldindata.org/20261029-104738/grapher/hate-crime-protections-lgbt.html [online resource] (archived on October 29, 2026).

How to cite this data

In-line citationIf you have limited space (e.g. in data visualizations), you can use this abbreviated in-line citation:

Velasco (2026) – with major processing by Our World in Data

Full citation

Velasco (2026) – with major processing by Our World in Data. “Hate crimes based on sexual orientation or gender identity are an aggravating circumstance – Velasco” [dataset]. Velasco, “LGBTI National Policy Dataset 3.0” [original data]. Retrieved October 29, 2026 from https://archive.ourworldindata.org/20261029-104738/grapher/hate-crime-protections-lgbt.html (archived on October 29, 2026).

Quick download

Download the data shown in this chart as a ZIP file containing a CSV file, metadata in JSON format, and a README. The CSV file can be opened in Excel, Google Sheets, and other data analysis tools.

Data API

Use these URLs to programmatically access this chart's data and configure your requests with the options below. Our documentation provides more information on how to use the API, and you can find a few code examples below.

Data URL (CSV format)
https://ourworldindata.org/grapher/hate-crime-protections-lgbt.csv?v=1&csvType=full&useColumnShortNames=false
Metadata URL (JSON format)
https://ourworldindata.org/grapher/hate-crime-protections-lgbt.metadata.json?v=1&csvType=full&useColumnShortNames=false

Code examples

Examples of how to load this data into different data analysis tools.

Excel / Google Sheets
=IMPORTDATA("https://ourworldindata.org/grapher/hate-crime-protections-lgbt.csv?v=1&csvType=full&useColumnShortNames=false")
Python with Pandas
import pandas as pd
import requests

# Fetch the data.
df = pd.read_csv("https://ourworldindata.org/grapher/hate-crime-protections-lgbt.csv?v=1&csvType=full&useColumnShortNames=false", storage_options = {'User-Agent': 'Our World In Data data fetch/1.0'})

# Fetch the metadata
metadata = requests.get("https://ourworldindata.org/grapher/hate-crime-protections-lgbt.metadata.json?v=1&csvType=full&useColumnShortNames=false").json()
R
library(jsonlite)

# Fetch the data
df <- read.csv("https://ourworldindata.org/grapher/hate-crime-protections-lgbt.csv?v=1&csvType=full&useColumnShortNames=false")

# Fetch the metadata
metadata <- fromJSON("https://ourworldindata.org/grapher/hate-crime-protections-lgbt.metadata.json?v=1&csvType=full&useColumnShortNames=false")
Stata
import delimited "https://ourworldindata.org/grapher/hate-crime-protections-lgbt.csv?v=1&csvType=full&useColumnShortNames=false", encoding("utf-8") clear