{
  "total": 3,
  "source": "d1",
  "tracking_since": "2026-10-25T12:38:37.716Z",
  "source_rechecks": {
    "rows": 332,
    "series": 250,
    "last_checked_at": "2026-10-25T13:38:37.000Z",
    "latest_result_counts": {
      "confirmed": 240,
      "unreachable": 5,
      "needs_review": 4,
      "changed": 1
    },
    "method": "Each source URL is fetched and the recorded numbers are looked for in the page (PDFs via pdftotext); anything not confirmed is reviewed by a human. Log: /downloads/price_rechecks.jsonl"
  },
  "observations": [
    {
      "id": "po_20261026_010143505b1e",
      "series_key": "ps_59f37d8b4a5c7c90",
      "kind": "benchmark",
      "use_case_id": "pyro-drone-show",
      "use_case_ids": [
        "pyro-drone-show"
      ],
      "provider_id": null,
      "description": "Pyro drone show, 300-500 drones (Cyberdrone guide)",
      "low": 100000,
      "high": 200000,
      "currency": "USD",
      "unit": "per show",
      "region": "global",
      "source_url": "https://www.cyberdrone.com/blog/pyro-drone-show",
      "as_of": "2026-10-25",
      "observed_at": "2026-10-26T03:32:44.654Z",
      "content_hash": "sha256:010143505b1e5de24d538271ab07f337f19e45082238146280393b6d2160de43",
      "supersedes": null,
      "origin": "build",
      "change_reason": null,
      "current": true,
      "usd": {
        "currency": "USD",
        "low": 100000,
        "high": 200000,
        "note": "Already in target currency; no conversion."
      }
    },
    {
      "id": "po_20261026_23f28a9b46f4",
      "series_key": "ps_187c54f5714b0d23",
      "kind": "benchmark",
      "use_case_id": "pyro-drone-show",
      "use_case_ids": [
        "pyro-drone-show"
      ],
      "provider_id": null,
      "description": "Pyro (firework-carrying) drone show, 100-200 drones, 'start at around' (Cyberdrone guide; permits, location and transport extra)",
      "low": 40000,
      "high": null,
      "currency": "USD",
      "unit": "per show",
      "region": "global",
      "source_url": "https://www.cyberdrone.com/blog/pyro-drone-show",
      "as_of": "2026-10-25",
      "observed_at": "2026-10-26T03:32:44.654Z",
      "content_hash": "sha256:23f28a9b46f4d987036912e0abbd096bbcf6fc45297c83e005a2957480314b23",
      "supersedes": null,
      "origin": "build",
      "change_reason": null,
      "current": true,
      "usd": {
        "currency": "USD",
        "low": 40000,
        "high": null,
        "note": "Already in target currency; no conversion."
      }
    },
    {
      "id": "po_20261026_4d1307c4916b",
      "series_key": "ps_d22b23844f1a9c46",
      "kind": "benchmark",
      "use_case_id": "pyro-drone-show",
      "use_case_ids": [
        "pyro-drone-show"
      ],
      "provider_id": null,
      "description": "Pyro drone show, 800+ drones with custom pyrotechnic choreography, 'can exceed' (Cyberdrone guide)",
      "low": 250000,
      "high": null,
      "currency": "USD",
      "unit": "per show",
      "region": "global",
      "source_url": "https://www.cyberdrone.com/blog/pyro-drone-show",
      "as_of": "2026-10-25",
      "observed_at": "2026-10-26T03:32:44.654Z",
      "content_hash": "sha256:4d1307c4916b80218e120a830fbf1bab4c2df8bf436e2d8042ab97bf6e82670b",
      "supersedes": null,
      "origin": "build",
      "change_reason": null,
      "current": true,
      "usd": {
        "currency": "USD",
        "low": 250000,
        "high": null,
        "note": "Already in target currency; no conversion."
      }
    }
  ],
  "series": [
    {
      "series_key": "ps_59f37d8b4a5c7c90",
      "kind": "benchmark",
      "use_case_id": "pyro-drone-show",
      "provider_id": null,
      "description": "Pyro drone show, 300-500 drones (Cyberdrone guide)",
      "currency": "USD",
      "unit": "per show",
      "region": "global",
      "source_url": "https://www.cyberdrone.com/blog/pyro-drone-show",
      "observations": 1,
      "first_observed_at": "2026-10-26T03:32:44.654Z",
      "last_observed_at": "2026-10-26T03:32:44.654Z",
      "current": true,
      "latest": {
        "low": 100000,
        "high": 200000,
        "as_of": "2026-10-25",
        "id": "po_20261026_010143505b1e"
      },
      "trend": null,
      "last_rechecked": null
    },
    {
      "series_key": "ps_187c54f5714b0d23",
      "kind": "benchmark",
      "use_case_id": "pyro-drone-show",
      "provider_id": null,
      "description": "Pyro (firework-carrying) drone show, 100-200 drones, 'start at around' (Cyberdrone guide; permits, location and transport extra)",
      "currency": "USD",
      "unit": "per show",
      "region": "global",
      "source_url": "https://www.cyberdrone.com/blog/pyro-drone-show",
      "observations": 1,
      "first_observed_at": "2026-10-26T03:32:44.654Z",
      "last_observed_at": "2026-10-26T03:32:44.654Z",
      "current": true,
      "latest": {
        "low": 40000,
        "high": null,
        "as_of": "2026-10-25",
        "id": "po_20261026_23f28a9b46f4"
      },
      "trend": null,
      "last_rechecked": null
    },
    {
      "series_key": "ps_d22b23844f1a9c46",
      "kind": "benchmark",
      "use_case_id": "pyro-drone-show",
      "provider_id": null,
      "description": "Pyro drone show, 800+ drones with custom pyrotechnic choreography, 'can exceed' (Cyberdrone guide)",
      "currency": "USD",
      "unit": "per show",
      "region": "global",
      "source_url": "https://www.cyberdrone.com/blog/pyro-drone-show",
      "observations": 1,
      "first_observed_at": "2026-10-26T03:32:44.654Z",
      "last_observed_at": "2026-10-26T03:32:44.654Z",
      "current": true,
      "latest": {
        "low": 250000,
        "high": null,
        "as_of": "2026-10-25",
        "id": "po_20261026_4d1307c4916b"
      },
      "trend": null,
      "last_rechecked": null
    }
  ],
  "note": "Only one observation per series so far: we started recording every price on 2026-10-25 and re-check every source on a schedule. A trend appears when a re-checked source shows a different price (we never overwrite old observations).",
  "pagination": {
    "total": 3,
    "limit": 200,
    "offset": 0,
    "returned": 3,
    "next_offset": null,
    "next": null,
    "prev": null
  },
  "license": "Whirrwork (https://whirrwork.com), CC BY 4.0"
}