{
  "schemaVersion": 1,
  "generatedAt": "2026-10-14T11:19:10.166943+00:00",
  "ok": true,
  "deposits": {
    "ok": true,
    "fetchedAt": "2026-10-14T11:14:51.318079+00:00",
    "sourceUpdatedAt": "2026-10-13T21:07:00+00:00",
    "banksCovered": 29,
    "rowCount": 254,
    "banksMissing": [],
    "boards": {
      "ok": true,
      "sourceKind": "bank_official_board",
      "registeredBanks": 4,
      "publishedBanks": 4,
      "rowCount": 29,
      "missing": [],
      "blockedFromCi": [],
      "carriedOver": [],
      "short": [],
      "unregistered": [],
      "error": null,
      "banks": [
        {
          "bankId": "hsbc",
          "nameZh": "滙豐銀行",
          "nameEn": "HSBC",
          "rows": 6,
          "minRows": 4,
          "ok": true,
          "boardDate": "2026-10-14T11:14:42.640065+00:00"
        },
        {
          "bankId": "boc",
          "nameZh": "中國銀行(香港)",
          "nameEn": "Bank of China (Hong Kong)",
          "rows": 12,
          "minRows": 6,
          "ok": true,
          "boardDate": "2026-10-14T11:00:02+00:00"
        },
        {
          "bankId": "hangseng",
          "nameZh": "恒生銀行",
          "nameEn": "Hang Seng Bank",
          "rows": 6,
          "minRows": 4,
          "ok": true,
          "boardDate": "2026-10-14T11:07:00+00:00"
        },
        {
          "bankId": "icbc",
          "nameZh": "工銀亞洲",
          "nameEn": "ICBC (Asia)",
          "rows": 5,
          "minRows": 3,
          "ok": true,
          "boardDate": "2026-10-14T11:00:14+00:00"
        }
      ]
    },
    "promos": {
      "ok": true,
      "sourceKind": "bank_official_promo",
      "registeredBanks": 3,
      "publishedBanks": 3,
      "rowCount": 7,
      "missing": [],
      "short": [],
      "unregistered": [],
      "expiredRows": [],
      "error": null,
      "statedDates": {
        "ok": true,
        "warnAfterDays": 90.0,
        "errorAfterDays": 120.0,
        "stale": [],
        "overdue": [],
        "future": []
      },
      "banks": [
        {
          "bankId": "scb",
          "nameZh": "渣打銀行(香港)",
          "nameEn": "Standard Chartered Bank (Hong Kong)",
          "rows": 3,
          "minRows": 3,
          "ok": true,
          "statedDate": null,
          "campaignEndsAt": "2026-10-31"
        },
        {
          "bankId": "boc",
          "nameZh": "中國銀行(香港)",
          "nameEn": "Bank of China (Hong Kong)",
          "rows": 2,
          "minRows": 2,
          "ok": true,
          "statedDate": "2026-08-03T16:00:00+00:00",
          "campaignEndsAt": null
        },
        {
          "bankId": "hsbc",
          "nameZh": "滙豐銀行",
          "nameEn": "HSBC",
          "rows": 2,
          "minRows": 2,
          "ok": true,
          "statedDate": "2026-08-04T16:00:00+00:00",
          "campaignEndsAt": null
        }
      ]
    }
  },
  "hibor": {
    "ok": true,
    "fetchedAt": "2026-10-14T11:15:17.281950+00:00",
    "asAt": "2026-10-14",
    "expectedAsAt": "2026-10-14",
    "ratePct": 2.75,
    "error": null
  },
  "fx": {
    "ok": true,
    "fetchedAt": "2026-10-14T11:15:04.703795+00:00",
    "dataQuality": "live",
    "currenciesCovered": [
      "AUD",
      "CAD",
      "CHF",
      "CNH",
      "EUR",
      "GBP",
      "JPY",
      "NZD",
      "SGD",
      "USD"
    ],
    "rowCount": 573
  },
  "insurance": {
    "ok": true,
    "fetchedAt": "2026-10-14T11:17:02.930984+00:00",
    "productCount": 8
  },
  "products": {
    "ok": true,
    "fetchedAt": "2026-10-14T11:16:41.552251+00:00"
  },
  "freshness": {
    "ok": true,
    "checkedAt": "2026-10-14T11:19:12.625727+00:00",
    "overdueCount": 0,
    "dueSoonCount": 0,
    "datasets": [
      {
        "file": "rates.json",
        "lastVerifiedAt": "2026-10-14T11:14:51.318079+00:00",
        "dueAt": "2026-10-21",
        "daysToDue": 7.0,
        "status": "ok"
      },
      {
        "file": "fx_rates.json",
        "lastVerifiedAt": "2026-10-14T11:15:04.703795+00:00",
        "dueAt": "2026-10-21",
        "daysToDue": 7.0,
        "status": "ok"
      },
      {
        "file": "fx_spot_history.json",
        "lastVerifiedAt": "2026-10-14T11:15:16.581447+00:00",
        "dueAt": "2026-10-21",
        "daysToDue": 7.0,
        "status": "ok"
      },
      {
        "file": "mortgage_rebates.json",
        "lastVerifiedAt": "2026-10-14T11:15:17.281950+00:00",
        "dueAt": "2026-10-21",
        "daysToDue": 7.0,
        "status": "ok"
      },
      {
        "file": "credit_cards.json",
        "lastVerifiedAt": "2026-10-14T11:19:10.010198+00:00",
        "dueAt": "2026-10-24",
        "daysToDue": 10.0,
        "status": "ok"
      },
      {
        "file": "products.json",
        "lastVerifiedAt": "2026-10-14T11:16:41.552251+00:00",
        "dueAt": "2026-11-23",
        "daysToDue": 40.0,
        "status": "ok"
      },
      {
        "file": "insurance.json",
        "lastVerifiedAt": "2026-10-14T11:17:02.930984+00:00",
        "dueAt": "2026-11-28",
        "daysToDue": 45.0,
        "status": "ok"
      },
      {
        "file": "vhis_products.json",
        "lastVerifiedAt": "2026-10-03T09:49:41.999669+00:00",
        "dueAt": "2027-01-31",
        "daysToDue": 108.9,
        "status": "ok"
      },
      {
        "file": "vhis_insurers.json",
        "lastVerifiedAt": "2026-10-03T09:49:41.999669+00:00",
        "dueAt": "2027-01-31",
        "daysToDue": 108.9,
        "status": "ok"
      },
      {
        "file": "coverage_registry.json",
        "lastVerifiedAt": "2026-10-04T14:21:26+00:00",
        "dueAt": "2027-04-02",
        "daysToDue": 170.1,
        "status": "ok"
      },
      {
        "file": "mpf.json",
        "lastVerifiedAt": "2026-08-26",
        "dueAt": "2027-08-27",
        "daysToDue": 316.5,
        "status": "ok"
      },
      {
        "file": "medical_costs.json",
        "lastVerifiedAt": "2026-08-29",
        "dueAt": "2027-08-30",
        "daysToDue": 319.5,
        "status": "ok"
      },
      {
        "file": "fx_calendar.json",
        "lastVerifiedAt": "2026-08-31T12:20:54.843725+00:00",
        "dueAt": "2027-09-01",
        "daysToDue": 322.0,
        "status": "ok"
      },
      {
        "file": "benchmark-index.json",
        "lastVerifiedAt": "2026-10-03T10:50:48.901Z",
        "dueAt": "2027-10-04",
        "daysToDue": 355.0,
        "status": "ok"
      }
    ]
  },
  "policy": {
    "via": "git_data_cdn",
    "neverStampWithoutScrape": true,
    "keepLastGoodOnFailure": true,
    "gitAutoDeploy": false,
    "noteZh": "CDN 由 GitHub Actions 刮數後用 Vercel REST API 發布。Git 自動部署已關，避免 Hobby 每日 100 次額度被 timestamp commit 燒完。"
  }
}
