Skip to main content

What is an indicator?

An indicator is a quantitative or qualitative measure of a specific aspect of tourism sustainability. Every indicator has a data series — one or more time-stamped values — that can be charted, filtered, and exported. Indicators are organised into domains (top-level themes) and dimensions (sub-categories within a domain), making it straightforward to compare related metrics and understand the full picture within a thematic area.

Indicator fields

FieldTypeDescription
idstringUnique identifier
namestringDisplay name of the indicator
descriptionstringFull text description of what the indicator measures
unitstringUnit of measurement (e.g. tonnes, %, persons, EUR)
periodicitystringHow frequently data is collected (e.g. annual, monthly)
governancebooleanWhether the indicator has governance/policy relevance
domainobjectThe domain this indicator belongs to
subdomainstringThe dimension (subdomain) within the domain
characteristics.sourcestringOrganisation or dataset that provides the data
characteristics.unit_of_measurestringDetailed unit description
characteristics.periodicitystringPeriodicity from characteristics metadata

Field reference

body.name
string
required
The human-readable name of the indicator as displayed in cards, list views, and chart titles.
body.description
string
A plain-text description explaining what the indicator measures, how it is calculated, and why it matters for tourism sustainability.
body.unit
string
The unit of measurement for the indicator’s values. Examples: %, tonnes CO₂, number of visitors, EUR.
body.periodicity
string
How often data points are recorded. Common values: annual, monthly, quarterly. Used for sorting and display.
body.governance
boolean
default:"false"
When true, the indicator is flagged as having direct relevance to governance or policy decisions. The governance filter on the indicator list uses this field.
body.domain
object
required
The domain object this indicator belongs to, including id, name, and visual properties.
body.subdomain
string
required
The name of the dimension (subdomain) within the parent domain. Used for the dimension filter on the indicator list.
body.characteristics
object
Additional metadata about the indicator’s data.

Indicator API endpoints

GET /api/indicators                                              # All indicators
GET /api/indicators/:id                                         # Single indicator
GET /api/indicators/domain/:domainId                            # Indicators in a domain
GET /api/indicators/domain/:domainId/subdomain/:subdomain       # Indicators in a dimension
GET /api/indicators/count                                       # Total indicator count
GET /api/indicators/domain/:domainId/count                      # Count for a domain
GET /api/indicators/search                                      # Full-text search (use ?q=)

Time-series data endpoint

GET /api/indicators/:indicatorId/data
Query parameters for the data endpoint:
query.startDate
string
ISO 8601 date string for the start of the requested date range. Example: 2020-01-01.
query.endDate
string
ISO 8601 date string for the end of the requested date range. Example: 2024-12-31.
query.granularity
string
default:"raw"
Aggregation level for the returned data points. Accepted values:
ValueDescription
rawEvery recorded data point with no aggregation
1dDaily aggregation
1wWeekly aggregation
1MMonthly aggregation
1yYearly aggregation

Export endpoint

POST /api/indicators/:indicatorId/export/image   # Export chart as PNG (server-side render)
The image export sends a JSON payload specifying the chart type, dimensions, colors, granularity, and date range. The server returns a binary PNG blob. See Exporting chart as image for the full request format.

Browsing indicators in the UI

Indicator list

The indicator list at /indicators (or /indicators/:domainPath) supports:
  • Pagination — 10 indicators per page by default (DEFAULT_ITEMS_PER_PAGE)
  • Sorting — by name (default, ascending), periodicity, or number of favourites
  • Dimension filter — filter to a specific subdomain (only active when a domain is selected)
  • Governance filter — show only governance-flagged indicators
  • Search — full-text search with a minimum query length of 2 characters

Indicator detail page

The detail page at /indicator/:indicatorId shows all metadata fields and an interactive time-series chart. The chart supports:
  • Click-and-drag zoom to a specific time range
  • Granularity controls (raw, 1d, 1w, 1M, 1y)
  • Viewport-aware lazy loading — data fetches only when the chart enters the viewport
  • CSV data export
  • PNG chart export

The governance flag

The governance boolean field marks indicators that have direct relevance to policy or regulatory decisions. These are indicators that decision-makers, auditors, or government bodies are likely to need when reporting on destination sustainability commitments. The governance filter toggle on the indicator list surfaces these indicators without removing non-governance indicators from the dataset.

Managing indicators (admin)

Indicator management requires an administrator account. Indicators are created within a domain and dimension — you must have at least one domain and one dimension configured before creating an indicator.
Administrators manage indicators from /admin (or /indicators-management). From this page you can create, edit, and delete indicators. When creating an indicator, you select its domain, then its subdomain, and fill in the metadata fields. Data points for an indicator are managed separately through resources, which define the temporal coverage and source of each dataset attached to the indicator.

Build docs developers (and LLMs) love