{
  "total": 2,
  "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_20261025_216a7e7d7160",
      "series_key": "ps_2d45d455bb67fbf5",
      "kind": "benchmark",
      "use_case_id": "tennis-ball-collection",
      "use_case_ids": [
        "tennis-ball-collection"
      ],
      "provider_id": null,
      "description": "Buy: Tennibot Rover autonomous tennis-ball collector (sale vs list)",
      "low": 2275,
      "high": 3500,
      "currency": "USD",
      "unit": "per unit",
      "region": "US",
      "source_url": "https://www.tennibot.com/tennis/ball-collector/",
      "as_of": "2026-10",
      "observed_at": "2026-10-25T12:38:37.716Z",
      "content_hash": "sha256:216a7e7d71603512b8ab3bcf9b10b8a3c1102c7f474f73bedc953833e167b6a0",
      "supersedes": null,
      "origin": "backfill",
      "change_reason": null,
      "current": true,
      "usd": {
        "currency": "USD",
        "low": 2275,
        "high": 3500,
        "note": "Already in target currency; no conversion."
      }
    },
    {
      "id": "po_20261025_bfe19f8d6aad",
      "series_key": "ps_09c980e68cb60958",
      "kind": "provider_published",
      "use_case_id": "tennis-ball-collection",
      "use_case_ids": [
        "tennis-ball-collection"
      ],
      "provider_id": "tennibot",
      "description": "Tennibot Rover tennis ball collector (sale $2,275, list $3,500)",
      "low": 2275,
      "high": 3500,
      "currency": "USD",
      "unit": "per unit",
      "region": "",
      "source_url": "https://www.tennibot.com/tennis/ball-collector/",
      "as_of": "2026-10",
      "observed_at": "2026-10-25T12:38:37.716Z",
      "content_hash": "sha256:bfe19f8d6aad17bd2c4e0f256e4b3d3515d7d82cd245d563c3ce1a828fb12edf",
      "supersedes": null,
      "origin": "backfill",
      "change_reason": null,
      "current": true,
      "usd": {
        "currency": "USD",
        "low": 2275,
        "high": 3500,
        "note": "Already in target currency; no conversion."
      }
    }
  ],
  "series": [
    {
      "series_key": "ps_2d45d455bb67fbf5",
      "kind": "benchmark",
      "use_case_id": "tennis-ball-collection",
      "provider_id": null,
      "description": "Buy: Tennibot Rover autonomous tennis-ball collector (sale vs list)",
      "currency": "USD",
      "unit": "per unit",
      "region": "US",
      "source_url": "https://www.tennibot.com/tennis/ball-collector/",
      "observations": 1,
      "first_observed_at": "2026-10-25T12:38:37.716Z",
      "last_observed_at": "2026-10-25T12:38:37.716Z",
      "current": true,
      "latest": {
        "low": 2275,
        "high": 3500,
        "as_of": "2026-10",
        "id": "po_20261025_216a7e7d7160"
      },
      "trend": null,
      "last_rechecked": {
        "checked_at": "2026-10-25T13:26:35.985Z",
        "result": "confirmed",
        "by": "automatic"
      }
    },
    {
      "series_key": "ps_09c980e68cb60958",
      "kind": "provider_published",
      "use_case_id": "tennis-ball-collection",
      "provider_id": "tennibot",
      "description": "Tennibot Rover tennis ball collector (sale $2,275, list $3,500)",
      "currency": "USD",
      "unit": "per unit",
      "region": "",
      "source_url": "https://www.tennibot.com/tennis/ball-collector/",
      "observations": 1,
      "first_observed_at": "2026-10-25T12:38:37.716Z",
      "last_observed_at": "2026-10-25T12:38:37.716Z",
      "current": true,
      "latest": {
        "low": 2275,
        "high": 3500,
        "as_of": "2026-10",
        "id": "po_20261025_bfe19f8d6aad"
      },
      "trend": null,
      "last_rechecked": {
        "checked_at": "2026-10-25T13:26:35.985Z",
        "result": "confirmed",
        "by": "automatic"
      }
    }
  ],
  "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": 2,
    "limit": 200,
    "offset": 0,
    "returned": 2,
    "next_offset": null,
    "next": null,
    "prev": null
  },
  "license": "Whirrwork (https://whirrwork.com), CC BY 4.0"
}