{
 "generated_at": "2026-11-13T01:55:06Z",
 "publication_as_of": "2026-11-13",
 "about": "Freshness and check results for every Deep Almanac dataset. fetched_at is when we last fetched the source; source_as_of is how current the source itself says it is. A dataset is overdue once today is later than overdue_after: if a refresh stops running, this file stops changing too, so compare that date with today rather than trusting the rest of the entry to say so; scripts/freshness_check.py does this daily against the live file. checks lists the automatic checks whose results are kept in a file; checks_note says what those cover and what else checks the dataset, or why nothing does. publication is the dataset's state on publication_as_of, one of: \"current\": the files live are the dataset's latest build, published, and not past overdue_after; \"held\": the latest build failed the pre-deploy contract check, so the files live are an earlier build (published_generated_at), kept since held_since for the reason in held_reason; \"stale\": the files live are past overdue_after: the refresh has stopped or keeps failing; \"unknown\": the dataset has no freshness rule and no contract check result. held takes precedence over stale. publication_basis says what it rests on: the pre-deploy contract check's last result for the files now live (also in contract_check), or freshness alone when there is none (a dataset the contract check does not cover or keeps no result for, or a local build). held_reason, held_since and published_generated_at (the generated_at of the files live) are set only when held, and null otherwise. Each dataset's records stay published while a source fails; see each dataset's own files for which records are stale.",
 "methodology": "https://deepalmanac.com/methodology",
 "page": "https://deepalmanac.com/status",
 "datasets": [
  {
   "dataset": "Australian term deposit rates",
   "page": "https://deepalmanac.com/au/finance/term-deposits/",
   "index": "https://deepalmanac.com/au/finance/term-deposits/v1/index.json",
   "refresh": "Fetched daily at 05:30 AEST from each bank's Consumer Data Right product feed.",
   "fetched_at": "2026-11-13T01:55:05Z",
   "generated_at": "2026-11-13T01:55:06Z",
   "source_as_of": "2026-11-13T01:35:26Z",
   "source_as_of_means": "the newest update time any bank's feed reports, by the banks' own clocks",
   "records": {
    "rate_rows": 6310,
    "banks_with_rates": 86
   },
   "checks": [
    {
     "check": "bank product feeds fetched",
     "checked_at": "2026-11-13T01:55:05Z",
     "counts": {
      "no_products": 23,
      "ok": 88,
      "error": 4,
      "serving_last_good_data": 1
     }
    },
    {
     "check": "quoted terms re-read",
     "checked_at": "2026-11-13T01:00:12Z",
     "counts": {
      "moved": 2,
      "skipped": 3,
      "unchanged": 142,
      "unreachable": 6
     }
    }
   ],
   "checks_note": "Listed under checks: the banks' product feeds as last fetched (how many answered or failed, and how many serve their last good data), and the quoted terms re-read in the banks' own documents. Not listed, as it keeps no result file: a daily anomaly check against yesterday's data (au_term_deposits_check.py) that keeps yesterday's files on a collapse. Before each deploy the published files also go through the contract check (data_contract_check.py: ranks, provider links and dates, plausible ranges, citations, shrinkage against the live files), whose last outcome sets publication.",
   "overdue_after": "2026-11-15",
   "overdue_rule": "2 days after fetched_at",
   "publication": "current",
   "publication_basis": "contract check of 2026-11-13 on the files now live: every check passed; overdue after 2026-11-15",
   "held_reason": null,
   "held_since": null,
   "published_generated_at": null,
   "contract_check": {
    "outcome": "passed",
    "checked_on": "2026-11-13",
    "summary": "every check passes"
   }
  },
  {
   "dataset": "Australian home loan rates",
   "page": "https://deepalmanac.com/au/finance/home-loans/",
   "index": "https://deepalmanac.com/au/finance/home-loans/v1/index.json",
   "refresh": "Fetched daily at 05:30 AEST from each bank's Consumer Data Right product feed.",
   "fetched_at": "2026-11-13T01:26:25Z",
   "generated_at": "2026-11-13T01:26:27Z",
   "source_as_of": "2026-11-13T01:19:09Z",
   "source_as_of_means": "the newest update time any bank's feed reports, by the banks' own clocks",
   "records": {
    "rate_rows": 8174,
    "banks_with_rates": 91,
    "rate_rows_flagged_stale": 1797
   },
   "checks": [
    {
     "check": "bank product feeds fetched",
     "checked_at": "2026-11-13T01:26:25Z",
     "counts": {
      "ok": 91,
      "no_products": 20,
      "error": 4,
      "serving_last_good_data": 1
     }
    }
   ],
   "checks_note": "Listed under checks: the banks' product feeds as last fetched (how many answered or failed, and how many serve their last good data). Not listed, as it keeps no result file: a daily anomaly check against yesterday's data (au_home_loans_check.py) that keeps yesterday's files on a collapse. Before each deploy the published files also go through the contract check (data_contract_check.py: ranks, provider links and dates, plausible ranges, citations, shrinkage against the live files), whose last outcome sets publication.",
   "overdue_after": "2026-11-15",
   "overdue_rule": "2 days after fetched_at",
   "publication": "current",
   "publication_basis": "contract check of 2026-11-13 on the files now live: notices only; overdue after 2026-11-15",
   "held_reason": null,
   "held_since": null,
   "published_generated_at": null,
   "contract_check": {
    "outcome": "notices",
    "checked_on": "2026-11-13",
    "summary": "16 citations: confirmed missing or not a date; 16 citations: document_sha256 missing or not 64 hex; 16 citations: url has no fragment"
   }
  },
  {
   "dataset": "Australian car loan rates",
   "page": "https://deepalmanac.com/au/finance/car-loans/",
   "index": "https://deepalmanac.com/au/finance/car-loans/v1/index.json",
   "refresh": "Fetched daily at 05:30 AEST from each bank's Consumer Data Right product feed.",
   "fetched_at": "2026-11-13T01:35:03Z",
   "generated_at": "2026-11-13T01:35:04Z",
   "source_as_of": "2026-11-13T00:00:41Z",
   "source_as_of_means": "the newest update time any bank's feed reports, by the banks' own clocks",
   "records": {
    "rate_rows": 231,
    "banks_with_rates": 61,
    "rate_rows_flagged_stale": 129
   },
   "checks": [
    {
     "check": "bank product feeds fetched",
     "checked_at": "2026-11-13T01:35:03Z",
     "counts": {
      "no_products": 38,
      "ok": 73,
      "error": 4,
      "serving_last_good_data": 3
     }
    }
   ],
   "checks_note": "Listed under checks: the banks' product feeds as last fetched (how many answered or failed, and how many serve their last good data). Not listed, as it keeps no result file: a daily anomaly check against yesterday's data (au_car_loans_check.py) that keeps yesterday's files on a collapse. Before each deploy the published files also go through the contract check (data_contract_check.py: ranks, provider links and dates, plausible ranges, citations, shrinkage against the live files), whose last outcome sets publication.",
   "overdue_after": "2026-11-15",
   "overdue_rule": "2 days after fetched_at",
   "publication": "current",
   "publication_basis": "contract check of 2026-11-13 on the files now live: notices only; overdue after 2026-11-15",
   "held_reason": null,
   "held_since": null,
   "published_generated_at": null,
   "contract_check": {
    "outcome": "notices",
    "checked_on": "2026-11-13",
    "summary": "6 top/ files at or over the 30,000 bytes llms.txt promises; a fetch tool may cut them short; 3 citations: confirmed missing or not a date; 3 citations: document_sha256 missing or not 64 hex; 3 citations: url has no fragment"
   }
  },
  {
   "dataset": "Australian business car loan rates",
   "page": "https://deepalmanac.com/au/finance/business-car-loans/",
   "index": "https://deepalmanac.com/au/finance/business-car-loans/v1/index.json",
   "refresh": "Fetched daily at 05:30 AEST from each bank's Consumer Data Right product feed.",
   "fetched_at": "2026-11-13T01:40:40Z",
   "generated_at": "2026-11-13T01:40:40Z",
   "source_as_of": "2026-11-13T00:00:23Z",
   "source_as_of_means": "the newest update time any bank's feed reports, by the banks' own clocks",
   "records": {
    "rate_rows": 29,
    "banks_with_rates": 10,
    "rate_rows_flagged_stale": 11
   },
   "checks": [
    {
     "check": "bank product feeds fetched",
     "checked_at": "2026-11-13T01:40:40Z",
     "counts": {
      "no_products": 52,
      "ok": 55,
      "error": 8,
      "serving_last_good_data": 1
     }
    }
   ],
   "checks_note": "Listed under checks: the banks' product feeds as last fetched (how many answered or failed, and how many serve their last good data). Not listed, as it keeps no result file: a daily anomaly check against yesterday's data (au_business_car_loans_check.py) that keeps yesterday's files on a collapse. Before each deploy the published files also go through the contract check (data_contract_check.py: ranks, provider links and dates, plausible ranges, citations, shrinkage against the live files), whose last outcome sets publication.",
   "overdue_after": "2026-11-15",
   "overdue_rule": "2 days after fetched_at",
   "publication": "current",
   "publication_basis": "contract check of 2026-11-13 on the files now live: every check passed; overdue after 2026-11-15",
   "held_reason": null,
   "held_since": null,
   "published_generated_at": null,
   "contract_check": {
    "outcome": "passed",
    "checked_on": "2026-11-13",
    "summary": "every check passes"
   }
  },
  {
   "dataset": "Australian savings account rates",
   "page": "https://deepalmanac.com/au/finance/savings-accounts/",
   "index": "https://deepalmanac.com/au/finance/savings-accounts/v1/index.json",
   "refresh": "Fetched daily at 05:30 AEST from each bank's Consumer Data Right product feed.",
   "fetched_at": "2026-11-13T01:46:36Z",
   "generated_at": "2026-11-13T01:46:37Z",
   "source_as_of": "2026-11-13T00:52:15Z",
   "source_as_of_means": "the newest update time any bank's feed reports, by the banks' own clocks",
   "records": {
    "rate_rows": 1271,
    "banks_with_rates": 101,
    "rate_rows_flagged_stale": 818
   },
   "checks": [
    {
     "check": "bank product feeds fetched",
     "checked_at": "2026-11-13T01:46:36Z",
     "counts": {
      "ok": 103,
      "error": 4,
      "no_products": 8,
      "serving_last_good_data": 1
     }
    }
   ],
   "checks_note": "Listed under checks: the banks' product feeds as last fetched (how many answered or failed, and how many serve their last good data). Not listed, as it keeps no result file: a daily anomaly check against yesterday's data (au_savings_accounts_check.py) that keeps yesterday's files on a collapse. Before each deploy the published files also go through the contract check (data_contract_check.py: ranks, provider links and dates, plausible ranges, citations, linked-account flags agreeing with their restrictions, shrinkage against the live files), whose last outcome sets publication.",
   "overdue_after": "2026-11-15",
   "overdue_rule": "2 days after fetched_at",
   "publication": "current",
   "publication_basis": "contract check of 2026-11-13 on the files now live: notices only; overdue after 2026-11-15",
   "held_reason": null,
   "held_since": null,
   "published_generated_at": null,
   "contract_check": {
    "outcome": "notices",
    "checked_on": "2026-11-13",
    "summary": "1 citation: confirmed missing or not a date; 4 citations: document_sha256 missing or not 64 hex; 4 citations: url has no fragment"
   }
  },
  {
   "dataset": "Australian credit cards",
   "page": "https://deepalmanac.com/au/finance/credit-cards/",
   "index": "https://deepalmanac.com/au/finance/credit-cards/v1/index.json",
   "refresh": "Fetched daily at 05:30 AEST from each bank's Consumer Data Right product feed.",
   "fetched_at": "2026-11-12T02:36:21Z",
   "generated_at": "2026-11-12T02:36:21Z",
   "source_as_of": "2026-11-12T02:35:39Z",
   "source_as_of_means": "the newest update time any bank's feed reports, by the banks' own clocks",
   "records": {
    "rate_rows": 201,
    "banks_with_rates": 64,
    "rate_rows_flagged_stale": 14
   },
   "checks": [
    {
     "check": "bank product feeds fetched",
     "checked_at": "2026-11-12T02:36:21Z",
     "counts": {
      "no_products": 49,
      "ok": 63,
      "error": 3,
      "serving_last_good_data": 0
     }
    }
   ],
   "checks_note": "Listed under checks: the banks' product feeds as last fetched (how many answered or failed, and how many serve their last good data). Not listed, as it keeps no result file: a daily anomaly check against yesterday's data (au_credit_cards_check.py) that keeps yesterday's files on a collapse. Before each deploy the published files also go through the contract check (data_contract_check.py: ranks, provider links and dates, plausible ranges, citations, balance transfer conditions agreeing with each card's offer, shrinkage against the live files), whose last outcome sets publication.",
   "overdue_after": "2026-11-14",
   "overdue_rule": "2 days after fetched_at",
   "publication": "held",
   "publication_basis": "contract check of 2026-11-13: the build generated 2026-11-13T01:49:18Z failed it, so the files generated 2026-11-12T02:36:21Z stay live",
   "held_reason": "4 ranked entries have no product_url or source_url",
   "held_since": "2026-11-13",
   "published_generated_at": "2026-11-12T02:36:21Z",
   "contract_check": {
    "outcome": "held",
    "checked_on": "2026-11-13",
    "summary": "4 ranked entries have no product_url or source_url"
   }
  },
  {
   "dataset": "Australian private health insurance policies",
   "page": "https://deepalmanac.com/au/insurance/health/",
   "index": "https://deepalmanac.com/au/insurance/health/v1/index.json",
   "refresh": "Checked daily for a new monthly release from the regulator, and rebuilt when one appears.",
   "fetched_at": "2026-11-05T07:03:09Z",
   "generated_at": "2026-11-05T07:03:18Z",
   "source_as_of": "2026-11-02",
   "source_as_of_means": "The extract date of the Private Health Insurance Ombudsman's monthly PrivateHealth.gov.au release the files were built from (release.extract_date), which dates the month of that release.",
   "records": {
    "policies": 65262,
    "funds": 34
   },
   "checks": [
    {
     "check": "statutory rule pages re-read daily",
     "checked_at": null,
     "counts": {
      "pages_unread": 2
     },
     "unread_since": "2026-11-06"
    }
   ],
   "checks_note": "Every day the refresh asks data.gov.au for a new release, and re-reads the statutory rules quoted in answers.json on privatehealth.gov.au and the ATO (listed under checks: the pages it could not read). When a release is rebuilt, an anomaly check against the last build (au_health_insurance_check.py) and a check of the published files (data_contract_check.py) run before deploy and stop it on a severe finding; they raise alerts and are not listed, and the contract check's last outcome sets publication.",
   "overdue_after": "2026-12-17",
   "overdue_rule": "45 days after source_as_of",
   "publication": "current",
   "publication_basis": "freshness only: there is no contract check result for the files now live; overdue after 2026-12-17",
   "held_reason": null,
   "held_since": null,
   "published_generated_at": null,
   "contract_check": null
  },
  {
   "dataset": "Australian travel insurance",
   "page": "https://deepalmanac.com/au/insurance/travel/",
   "index": "https://deepalmanac.com/au/insurance/travel/v1/index.json",
   "refresh": "Rebuilt weekly from APRA's quarterly statistics and register; policy documents re-checked each run.",
   "fetched_at": "2026-11-04T23:28:55Z",
   "generated_at": "2026-11-06T03:07:41Z",
   "source_as_of": "2026-06-30",
   "source_as_of_means": "The end of the latest quarter in APRA's Quarterly General Insurance Performance Statistics, which dates the market figures; each policy fact carries the date of the document it was read from.",
   "records": {
    "brands": 12,
    "card_programmes": 23
   },
   "checks": [
    {
     "check": "disclosure documents re-fetched",
     "checked_at": "2026-11-10",
     "counts": {
      "unchanged": 49,
      "last_unchanged_earlier": 0
     }
    }
   ],
   "checks_note": "Every week the refresh asks APRA and ASIC for new sources and re-fetches every brand's and card programme's disclosure documents, raising an alert for one reissued or unreadable (listed under checks: the documents found unchanged). When the statistics are rebuilt, an anomaly check (au_travel_insurance_check.py) and a check of the published files (data_contract_check.py) run before deploy and stop it on a severe finding; they raise alerts and are not listed, and the contract check's last outcome sets publication.",
   "overdue_after": "2026-11-13",
   "overdue_rule": "9 days after fetched_at",
   "publication": "current",
   "publication_basis": "freshness only: there is no contract check result for the files now live; overdue after 2026-11-13",
   "held_reason": null,
   "held_since": null,
   "published_generated_at": null,
   "contract_check": null
  },
  {
   "dataset": "Australian online stockbrokers",
   "page": "https://deepalmanac.com/au/finance/stockbrokers/",
   "index": "https://deepalmanac.com/au/finance/stockbrokers/v1/index.json",
   "refresh": "Prices are read by hand from each broker's own pages; every quoted sentence is re-read daily and the ASIC register re-fetched.",
   "fetched_at": "2026-11-13T00:45:49Z",
   "generated_at": "2026-11-13T00:45:49Z",
   "source_as_of": "2026-11-13",
   "source_as_of_means": "The day the daily check last re-read every quoted sentence against the broker's own page (277 of 287 quotes found that day; each quote's checked gives its own status and date), while brokers' records are re-read by hand less often, on the day in each broker's checked, between brokers_checked_earliest and brokers_checked.",
   "records": {
    "brokers": 88
   },
   "checks": [
    {
     "check": "quoted sentences re-read",
     "checked_at": "2026-11-13T00:45:45+00:00",
     "counts": {
      "found": 264,
      "scattered": 13,
      "missing": 2,
      "unreadable": 3,
      "unreachable": 5
     }
    }
   ],
   "checks_note": "Listed under checks: every quoted sentence re-read daily on the brokers' own pages. Before each deploy the published files also go through the contract check (data_contract_check.py: ranks, provider links and dates, plausible ranges, citations, cheapest.json sorted by brokerage at each trade size, shrinkage against the live files), whose last outcome sets publication.",
   "overdue_after": "2026-11-15",
   "overdue_rule": "2 days after generated_at",
   "publication": "current",
   "publication_basis": "contract check of 2026-11-13 on the files now live: notices only; overdue after 2026-11-15",
   "held_reason": null,
   "held_since": null,
   "published_generated_at": null,
   "contract_check": {
    "outcome": "notices",
    "checked_on": "2026-11-13",
    "summary": "10 citations: confirmed missing or not a date; 14 citations: document_sha256 missing or not 64 hex; 14 citations: url has no fragment"
   }
  },
  {
   "dataset": "Australian building insurance",
   "page": "https://deepalmanac.com/au/insurance/building/",
   "index": "https://deepalmanac.com/au/insurance/building/v1/index.json",
   "refresh": "What each policy covers, and who issues it, is read by hand from each insurer's own documents; every quoted sentence is re-read daily and the APRA and ASIC registers re-fetched.",
   "fetched_at": "2026-11-13T00:56:00Z",
   "generated_at": "2026-11-13T00:56:00Z",
   "source_as_of": "2026-10-16",
   "source_as_of_means": "The day the policies' cover and underwriters were last confirmed by hand in each insurer's own documents (the same date as brands_checked); every quoted sentence is re-read daily against its document.",
   "records": {
    "brands": 78,
    "underwriters": 32
   },
   "checks": [
    {
     "check": "quoted sentences re-read",
     "checked_at": "2026-11-13T00:55:57+00:00",
     "counts": {
      "found": 1028,
      "scattered": 0,
      "missing": 6,
      "unreadable": 0,
      "unreachable": 2
     }
    }
   ],
   "checks_note": "Listed under checks: every quoted sentence re-read daily in the insurers' own documents. Before each deploy the published files also go through the contract check (data_contract_check.py: ranks, provider links and dates, plausible ranges, citations, shrinkage against the live files), whose last outcome sets publication.",
   "overdue_after": "2026-11-15",
   "overdue_rule": "2 days after generated_at",
   "publication": "current",
   "publication_basis": "contract check of 2026-11-13 on the files now live: every check passed; overdue after 2026-11-15",
   "held_reason": null,
   "held_since": null,
   "published_generated_at": null,
   "contract_check": {
    "outcome": "passed",
    "checked_on": "2026-11-13",
    "summary": "every check passes"
   }
  },
  {
   "dataset": "Australian mobile phone plans (SIM only)",
   "page": "https://deepalmanac.com/au/telco/mobile-plans/",
   "index": "https://deepalmanac.com/au/telco/mobile-plans/v1/index.json",
   "refresh": "Plans are read by hand from each provider's own offer pages and Critical Information Summaries; the documents are re-fetched and every quoted sentence re-read daily.",
   "fetched_at": "2026-11-13T01:22:09Z",
   "generated_at": "2026-11-13T01:23:31Z",
   "source_as_of": "2026-11-06",
   "source_as_of_means": "The day the plans were last confirmed by hand on each provider's own pages (plans_checked); every quoted sentence is re-read daily against its page.",
   "records": {},
   "checks": [
    {
     "check": "quoted sentences re-read",
     "checked_at": "2026-11-13T01:23:30Z",
     "counts": {
      "unreachable": 38,
      "found": 9587,
      "missing": 98,
      "scattered": 68
     }
    }
   ],
   "checks_note": "Listed under checks: every quoted sentence re-read daily in the providers' offer pages and Critical Information Summaries. The mobile plan files are not yet in the pre-deploy contract check (data_contract_check.py), so publication is set by freshness alone.",
   "overdue_after": "2026-11-15",
   "overdue_rule": "2 days after generated_at",
   "publication": "current",
   "publication_basis": "freshness only: there is no contract check result for the files now live; overdue after 2026-11-15",
   "held_reason": null,
   "held_since": null,
   "published_generated_at": null,
   "contract_check": null
  },
  {
   "dataset": "Australian residential electricity plans",
   "page": "https://deepalmanac.com/au/energy/electricity/",
   "index": "https://deepalmanac.com/au/energy/electricity/v1/index.json",
   "refresh": "Fetched daily from the Australian Energy Regulator's Consumer Data Right energy plan feed; plans whose update time is unchanged are reused.",
   "fetched_at": "2026-11-13T00:57:15Z",
   "generated_at": "2026-11-13T00:57:41Z",
   "source_as_of": "2026-11-12T21:29:45Z",
   "source_as_of_means": "the newest update time any retailer's plan reports, by the retailers' own clocks",
   "records": {
    "plans": 10545
   },
   "checks": [
    {
     "check": "retailers' eligibility sentences re-read",
     "checked_at": "2026-11-13T00:56:44Z",
     "counts": {
      "found": 1,
      "scattered": 0,
      "missing": 0,
      "unreadable": 0,
      "unreachable": 0
     }
    }
   ],
   "checks_note": "Listed under checks: the retailers' quoted eligibility sentences re-read daily on their own pages. Before each deploy the published files also go through the contract check (data_contract_check.py: ranks, provider links and dates, plausible ranges, citations, shrinkage against the live files), whose last outcome sets publication.",
   "overdue_after": "2026-11-15",
   "overdue_rule": "2 days after fetched_at",
   "publication": "current",
   "publication_basis": "contract check of 2026-11-13 on the files now live: every check passed; overdue after 2026-11-15",
   "held_reason": null,
   "held_since": null,
   "published_generated_at": null,
   "contract_check": {
    "outcome": "passed",
    "checked_on": "2026-11-13",
    "summary": "every check passes"
   }
  },
  {
   "dataset": "Victorian government school performance",
   "page": "https://deepalmanac.com/au/education/vic-schools/",
   "index": "https://deepalmanac.com/au/education/vic-schools/v1/index.json",
   "refresh": "Rebuilt by hand when schools publish a new year's annual reports.",
   "fetched_at": "2026-10-20T00:10:06Z",
   "generated_at": "2026-11-05T01:25:41Z",
   "source_as_of": "2025-12-31",
   "source_as_of_means": "The last day of 2025, the latest school year whose Annual Report to the School Community is included (report_years); each school's own report_year says which year its figures are from.",
   "records": {
    "schools": 1575
   },
   "checks": [],
   "checks_note": "No automatic check re-reads the schools' annual reports: the dataset is rebuilt by hand when a new year is published. Daily, the published files are checked (data_contract_check.py: ranks, links, citations, shrinkage against the last commit), and weekly VCAA's honour roll workbooks and the Premier's VCE Awards page are compared with the copies the VCE subject tables were built from (honour-roll-check.yml). Both are advisory: they raise an alert and keep no result file, so they are not listed.",
   "overdue_after": "2027-11-24",
   "overdue_rule": "400 days after fetched_at",
   "publication": "current",
   "publication_basis": "freshness only: there is no contract check result for the files now live; overdue after 2027-11-24",
   "held_reason": null,
   "held_since": null,
   "published_generated_at": null,
   "contract_check": null
  },
  {
   "dataset": "Australian real estate agents by suburb",
   "page": "https://deepalmanac.com/au/property/real-estate-agents/",
   "index": "https://deepalmanac.com/au/property/real-estate-agents/v1/index.json",
   "refresh": "Read from each agency's own website by a weekly crawl run outside this repo, covering the twelve months before collection; the suburb files are regenerated and published by hand, not on a schedule.",
   "fetched_at": "2026-11-07T09:23:22Z",
   "generated_at": "2026-11-07T09:23:22Z",
   "source_as_of": "2026-11-07",
   "source_as_of_means": "The last day of the twelve-month window of sales; a sale is counted when its sold date (or, where the agency shows none, the later of the date it was listed and the date its price statement was prepared) falls inside the window.",
   "records": {
    "suburbs": 156,
    "sales": 29246
   },
   "checks": [],
   "checks_note": "No automatic check re-reads the agencies' websites: the crawl runs outside this repository and the files are published by hand. Daily, the published files are checked (data_contract_check.py: stated_value no more than total_value, sales_by_price adding up to sales, sale prices in a house-price range, shrinkage against the last commit); it is advisory, raises an alert and keeps no result file, so it is not listed. Each suburb file's valuer_general_check compares its sales with the Valuer-General's count for the same quarters.",
   "overdue_after": "2027-03-07",
   "overdue_rule": "120 days after fetched_at",
   "publication": "current",
   "publication_basis": "freshness only: there is no contract check result for the files now live; overdue after 2027-03-07",
   "held_reason": null,
   "held_since": null,
   "published_generated_at": null,
   "contract_check": null
  }
 ]
}
