{
  "schemaVersion": 1,
  "datasetSchemaVersion": 2,
  "updatedAt": "2026-08-09",
  "title": "Flare public fare observation snapshot field dictionary",
  "methodology": "https://flareflights.com/methodology.html",
  "license": "https://flareflights.com/fare-data-license.html",
  "provenanceNote": "sourceBatchAt and sourceMarket come from upstream batch metadata. The payload does not expose a reliable provider identity for every row, so none is inferred.",
  "fields": [
    {
      "jsonName": "observationId",
      "csvName": "observation_id",
      "type": "string",
      "nullable": false,
      "description": "Stable SHA-256-derived identifier for the selected observation record; not a provider identifier."
    },
    {
      "jsonName": "originCode",
      "csvName": "origin_code",
      "type": "string",
      "nullable": false,
      "description": "Origin airport or metropolitan IATA code exposed by the source candidate."
    },
    {
      "jsonName": "originName",
      "csvName": "origin_name",
      "type": "string",
      "nullable": false,
      "description": "Flare display name mapped from originCode."
    },
    {
      "jsonName": "destinationCode",
      "csvName": "destination_code",
      "type": "string",
      "nullable": false,
      "description": "Destination airport or metropolitan IATA code exposed by the source candidate."
    },
    {
      "jsonName": "destinationName",
      "csvName": "destination_name",
      "type": "string",
      "nullable": false,
      "description": "Flare display name mapped from destinationCode."
    },
    {
      "jsonName": "priceEur",
      "csvName": "price_eur",
      "type": "integer",
      "nullable": false,
      "unit": "EUR",
      "description": "Observed amount rounded to the nearest euro. It is not a guaranteed payable total."
    },
    {
      "jsonName": "referencePriceEur",
      "csvName": "reference_price_eur",
      "type": "integer",
      "nullable": false,
      "unit": "EUR",
      "description": "Flare comparison value rounded to the nearest euro. It is not a universal market price."
    },
    {
      "jsonName": "measuredDropPercent",
      "csvName": "measured_drop_percent",
      "type": "number",
      "nullable": false,
      "unit": "percent",
      "description": "Percentage difference between priceEur and the unrounded comparison value, rounded to one decimal place."
    },
    {
      "jsonName": "departureAt",
      "csvName": "departure_at",
      "type": "date-time",
      "nullable": true,
      "description": "Departure date-time exposed by the source candidate, retaining its supplied offset."
    },
    {
      "jsonName": "returnAt",
      "csvName": "return_at",
      "type": "date-time",
      "nullable": true,
      "description": "Return date-time exposed by the source candidate; empty for one-way candidates."
    },
    {
      "jsonName": "tripType",
      "csvName": "trip_type",
      "type": "string",
      "nullable": false,
      "enum": [
        "one-way",
        "return"
      ],
      "description": "Trip shape represented by the candidate."
    },
    {
      "jsonName": "stops",
      "csvName": "stops",
      "type": "integer",
      "nullable": true,
      "description": "Number of stops exposed by the source candidate."
    },
    {
      "jsonName": "durationMinutes",
      "csvName": "duration_minutes",
      "type": "integer",
      "nullable": true,
      "unit": "minutes",
      "description": "Candidate itinerary duration when exposed by the source payload."
    },
    {
      "jsonName": "dealScore",
      "csvName": "deal_score",
      "type": "integer",
      "nullable": false,
      "description": "Internal Flare prioritisation score. It is not an external rating or verification."
    },
    {
      "jsonName": "sourceMarket",
      "csvName": "source_market",
      "type": "string",
      "nullable": false,
      "description": "Market code declared by the upstream batch. It does not identify the fare provider."
    },
    {
      "jsonName": "sourceBatchAt",
      "csvName": "source_batch_at",
      "type": "date-time",
      "nullable": true,
      "description": "UTC timestamp exposed by the upstream batch containing the candidate. It is batch-level provenance, not a provider quote time."
    },
    {
      "jsonName": "snapshotGeneratedAt",
      "csvName": "snapshot_generated_at",
      "type": "date-time",
      "nullable": false,
      "description": "UTC time when Flare selected and published this dataset version."
    }
  ]
}
