{
 "openapi": "3.1.0",
 "info": {
  "title": "Deep Almanac: Australian private health insurance policies",
  "version": "1.0.0",
  "summary": "Every open hospital and combined policy of every Australian health insurer, with each fund's cheapest ranked per state, household and tier, refreshed monthly from the regulator's data release.",
  "description": "Static JSON files regenerated from the Private Health Insurance Ombudsman's monthly 'PrivateHealth.gov.au' release on data.gov.au, the same data that drives privatehealth.gov.au. Every row names the release file and zip it came from (source_file, source_url). Only index.json carries the generation and fetch times (generated_at, fetched_at, data_as_of): every other file changes only when the underlying data changes. Human-readable pages: https://deepalmanac.com/au/insurance/health/ (cheapest policies by state, household and tier), https://deepalmanac.com/au/insurance/health/funds/ (every fund) and one page per fund at https://deepalmanac.com/au/insurance/health/funds/<fund_slug>/. Premiums are before the government rebate; this is reference data, not financial or health advice.",
  "termsOfService": "https://deepalmanac.com/terms",
  "contact": {
   "name": "Deep Almanac",
   "url": "https://deepalmanac.com"
  },
  "license": {
   "name": "Source data CC BY 3.0 AU (Commonwealth of Australia); see licence_note in each file",
   "url": "https://creativecommons.org/licenses/by/3.0/au/"
  }
 },
 "servers": [
  {
   "url": "https://deepalmanac.com"
  }
 ],
 "security": [],
 "tags": [
  {
   "name": "health-insurance",
   "description": "Australian private health insurance policies (dataset au/insurance/health)."
  }
 ],
 "paths": {
  "/au/insurance/health/v1/index.json": {
   "get": {
    "tags": [
     "health-insurance"
    ],
    "operationId": "getHealthInsuranceIndex",
    "summary": "Dataset index",
    "description": "Lists the dataset files, the per-state and per-fund files with their page URLs, and the source release.",
    "responses": {
     "200": {
      "description": "The dataset index.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HealthDatasetIndex"
        }
       }
      }
     },
     "404": {
      "description": "The file has not been published yet or the path is wrong; static hosting returns the site's 404 page (HTML)."
     }
    }
   }
  },
  "/au/insurance/health/v1/cheapest.json": {
   "get": {
    "tags": [
     "health-insurance"
    ],
    "operationId": "getCheapestHealthPolicies",
    "summary": "The cheapest policies per state, household type and tier",
    "description": "rankings[state][household][tier] (tier may be 'any') is an array of HealthCheapestEntry ordered by monthly premium: every fund's cheapest policy in that bucket, open and restricted-membership funds alike (fund_type and eligibility say who may join), excluding corporate, visitor and add-on-only policies. Every entry is appropriate hospital cover for the Medicare Levy Surcharge.",
    "responses": {
     "200": {
      "description": "Rankings for every state, household and tier.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HealthCheapest"
        }
       }
      }
     },
     "404": {
      "description": "The file has not been published yet or the path is wrong; static hosting returns the site's 404 page (HTML)."
     }
    }
   }
  },
  "/au/insurance/health/v1/funds.json": {
   "get": {
    "tags": [
     "health-insurance"
    ],
    "operationId": "getHealthFundRegister",
    "summary": "Every registered health insurer",
    "responses": {
     "200": {
      "description": "The funds, with membership type, restrictions and sub-brands.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HealthFundRegister"
        }
       }
      }
     },
     "404": {
      "description": "The file has not been published yet or the path is wrong; static hosting returns the site's 404 page (HTML)."
     }
    }
   }
  },
  "/au/insurance/health/v1/policies/{state}.json": {
   "get": {
    "tags": [
     "health-insurance"
    ],
    "operationId": "getHealthPoliciesByState",
    "summary": "Every open hospital and combined policy sold in one state",
    "description": "Includes policies sold nationally (state ALL). Minified JSON, over ten megabytes per state.",
    "parameters": [
     {
      "name": "state",
      "in": "path",
      "required": true,
      "description": "State code.",
      "schema": {
       "type": "string",
       "enum": [
        "NSW",
        "VIC",
        "QLD",
        "SA",
        "WA",
        "TAS",
        "NT"
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "All rows for the state.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HealthPolicies"
        }
       }
      }
     },
     "404": {
      "description": "No such file. Static hosting returns the site's 404 page (HTML)."
     }
    }
   }
  },
  "/au/insurance/health/v1/funds/{fund_slug}.json": {
   "get": {
    "tags": [
     "health-insurance"
    ],
    "operationId": "getHealthFund",
    "summary": "One fund: identity, restrictions and every policy with full clinical-category detail",
    "parameters": [
     {
      "name": "fund_slug",
      "in": "path",
      "required": true,
      "description": "Fund slug as listed under funds_dir.funds[].fund_slug in index.json.",
      "schema": {
       "type": "string",
       "pattern": "^[a-z0-9-]+$",
       "enum": [
        "aca-health",
        "ahm",
        "aia-health",
        "australian-unity",
        "bupa",
        "cbhs",
        "cbhs-corporate-health",
        "cdh-benefits-fund",
        "defence-health",
        "doctors-health-fund",
        "gmhba",
        "gu-health",
        "hbf",
        "hcf",
        "hci",
        "health-partners",
        "hif",
        "latrobe-health",
        "medibank",
        "mildura-health-fund",
        "navy-health",
        "nib",
        "onemedifund",
        "peoplecare",
        "phoenix-health",
        "police-health",
        "queensland-country-health-fund",
        "reserve-bank-health-society",
        "rt-health",
        "see-u-by-hbf",
        "st-lukes",
        "teachers-health",
        "tuh",
        "westfund"
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The fund and its policies.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HealthFundFile"
        }
       }
      }
     },
     "404": {
      "description": "No such file. Static hosting returns the site's 404 page (HTML)."
     }
    }
   }
  }
 },
 "components": {
  "schemas": {
   "HealthPolicy": {
    "type": "object",
    "description": "One open policy with hospital cover, in one state, for one household type.",
    "properties": {
     "product_item_id": {
      "type": "string",
      "description": "Identifier of this version of the policy in the source data (changes when the policy changes)."
     },
     "product_id": {
      "type": "string",
      "description": "Stable identifier of the policy in the source data."
     },
     "product_code": {
      "type": "string",
      "description": "The regulator's policy code, e.g. H4/QAFO20."
     },
     "fund": {
      "type": "string",
      "description": "The insurer's registered name."
     },
     "fund_label": {
      "type": "string",
      "description": "Short name used on the site."
     },
     "fund_slug": {
      "type": "string",
      "description": "URL slug of the fund (its page and JSON file).",
      "pattern": "^[a-z0-9-]+$"
     },
     "fund_code": {
      "type": "string",
      "description": "Three-letter code the regulator uses for the fund."
     },
     "fund_type": {
      "type": "string",
      "description": "open (anyone can join) or restricted (membership limited to a group).",
      "enum": [
       "open",
       "restricted"
      ]
     },
     "brands": {
      "type": "array",
      "description": "Sub-brand names the fund sells this policy under (e.g. Qantas Insurance for nib), often empty.",
      "items": {
       "type": "string"
      }
     },
     "name": {
      "type": "string",
      "description": "Policy name as published."
     },
     "product_type": {
      "type": "string",
      "description": "hospital (hospital cover only) or combined (hospital and extras in one policy).",
      "enum": [
       "hospital",
       "combined"
      ]
     },
     "state": {
      "type": "string",
      "description": "State the premium applies in; ALL means sold nationally at one price.",
      "enum": [
       "NSW",
       "VIC",
       "QLD",
       "SA",
       "WA",
       "TAS",
       "NT",
       "ALL"
      ]
     },
     "household": {
      "type": [
       "string",
       "null"
      ],
      "description": "Who the policy covers.",
      "enum": [
       "single",
       "couple",
       "family",
       "single_parent",
       "dependants_only"
      ]
     },
     "adults": {
      "type": [
       "integer",
       "null"
      ],
      "description": "Number of adults covered."
     },
     "dependant_types": {
      "type": "array",
      "description": "Dependant categories covered (child, student, non_student ...).",
      "items": {
       "type": "string"
      }
     },
     "tier": {
      "type": [
       "string",
       "null"
      ],
      "description": "Hospital product tier.",
      "enum": [
       "gold",
       "silver_plus",
       "silver",
       "bronze_plus",
       "bronze",
       "basic_plus",
       "basic"
      ]
     },
     "premium_monthly": {
      "type": [
       "number",
       "null"
      ],
      "description": "Monthly premium in AUD before the government rebate, LHC loading and age-based discount."
     },
     "premium_hospital_monthly": {
      "type": [
       "number",
       "null"
      ],
      "description": "The hospital component of the monthly premium."
     },
     "premium_extras_monthly": {
      "type": [
       "number",
       "null"
      ],
      "description": "The extras component (combined policies only)."
     },
     "excess_type": {
      "type": [
       "string",
       "null"
      ],
      "description": "How the excess applies.",
      "enum": [
       "none",
       "per_admission_only",
       "limited_per_year",
       "limited_per_person",
       "limited_per_person_per_policy"
      ]
     },
     "excess_per_person": {
      "type": [
       "number",
       "null"
      ],
      "description": "Maximum excess per person per year in AUD (750 or less for a single keeps Medicare Levy Surcharge exemption)."
     },
     "excess_per_policy": {
      "type": [
       "number",
       "null"
      ],
      "description": "Maximum excess per policy per year in AUD."
     },
     "excess_per_admission": {
      "type": [
       "number",
       "null"
      ],
      "description": "Excess per hospital admission in AUD."
     },
     "excess_waivers": {
      "type": "array",
      "description": "Cases where the excess is waived (accidents, dependents, day_surgery).",
      "items": {
       "type": "string"
      }
     },
     "copayment": {
      "type": [
       "string",
       "null"
      ],
      "description": "Whether a daily co-payment applies.",
      "enum": [
       "none",
       "limited",
       "unlimited"
      ]
     },
     "mls_exempt": {
      "type": "boolean",
      "description": "True when the policy is appropriate hospital cover for Medicare Levy Surcharge purposes."
     },
     "age_based_discount": {
      "type": "boolean",
      "description": "Whether the under-30 age-based discount is offered on this policy."
     },
     "accommodation": {
      "type": [
       "string",
       "null"
      ],
      "description": "Hospital accommodation covered (private_or_public, public, public_shared ...)."
     },
     "categories_covered": {
      "type": "integer",
      "description": "Of the 38 clinical categories, how many are covered."
     },
     "categories_restricted": {
      "type": "integer",
      "description": "How many clinical categories are covered on a restricted basis."
     },
     "categories_not_covered": {
      "type": "integer",
      "description": "How many clinical categories are excluded."
     },
     "ambulance": {
      "type": [
       "string",
       "null"
      ],
      "description": "Ambulance cover included (none, emergency_only, emergency_and_non_emergency, state_govt)."
     },
     "waiting_pre_existing_months": {
      "type": [
       "number",
       "null"
      ],
      "description": "Waiting period for pre-existing conditions, months."
     },
     "waiting_pregnancy_months": {
      "type": [
       "number",
       "null"
      ],
      "description": "Waiting period for pregnancy and birth, months."
     },
     "waiting_other_months": {
      "type": [
       "number",
       "null"
      ],
      "description": "General waiting period, months."
     },
     "extras_services_covered": {
      "type": [
       "integer",
       "null"
      ],
      "description": "Combined policies: number of extras services covered."
     },
     "only_available_with": {
      "type": [
       "string",
       "null"
      ],
      "description": "not_applicable when the policy can be bought on its own; otherwise what it must be bought with."
     },
     "corporate": {
      "type": "boolean",
      "description": "True when the policy is only available through an employer's corporate plan (not ranked)."
     },
     "availability": {
      "type": "string",
      "description": "general for ordinary resident cover; visitors for reciprocal-agreement visitor and expatriate policies (not ranked).",
      "enum": [
       "general",
       "visitors"
      ]
     },
     "product_url": {
      "type": [
       "string",
       "null"
      ],
      "description": "The fund's own page for the policy, when supplied.",
      "format": "uri"
     },
     "valid_from": {
      "type": [
       "string",
       "null"
      ],
      "description": "Date these terms and premium took effect.",
      "format": "date"
     },
     "source_file": {
      "type": "string",
      "description": "File inside the data.gov.au release the row was read from."
     },
     "source_url": {
      "type": "string",
      "description": "The data.gov.au zip the row was read from (one release a month).",
      "format": "uri"
     }
    },
    "required": [
     "product_item_id",
     "product_id",
     "product_code",
     "fund",
     "fund_label",
     "fund_slug",
     "fund_code",
     "fund_type",
     "brands",
     "name",
     "product_type",
     "state",
     "household",
     "adults",
     "dependant_types",
     "tier",
     "premium_monthly",
     "premium_hospital_monthly",
     "premium_extras_monthly",
     "excess_type",
     "excess_per_person",
     "excess_per_policy",
     "excess_per_admission",
     "excess_waivers",
     "copayment",
     "mls_exempt",
     "age_based_discount",
     "accommodation",
     "categories_covered",
     "categories_restricted",
     "categories_not_covered",
     "ambulance",
     "waiting_pre_existing_months",
     "waiting_pregnancy_months",
     "waiting_other_months",
     "extras_services_covered",
     "only_available_with",
     "corporate",
     "availability",
     "product_url",
     "valid_from",
     "source_file",
     "source_url"
    ]
   },
   "HealthPolicyDetail": {
    "type": "object",
    "properties": {
     "product_item_id": {
      "type": "string",
      "description": "Identifier of this version of the policy in the source data (changes when the policy changes)."
     },
     "product_id": {
      "type": "string",
      "description": "Stable identifier of the policy in the source data."
     },
     "product_code": {
      "type": "string",
      "description": "The regulator's policy code, e.g. H4/QAFO20."
     },
     "fund": {
      "type": "string",
      "description": "The insurer's registered name."
     },
     "fund_label": {
      "type": "string",
      "description": "Short name used on the site."
     },
     "fund_slug": {
      "type": "string",
      "description": "URL slug of the fund (its page and JSON file).",
      "pattern": "^[a-z0-9-]+$"
     },
     "fund_code": {
      "type": "string",
      "description": "Three-letter code the regulator uses for the fund."
     },
     "fund_type": {
      "type": "string",
      "description": "open (anyone can join) or restricted (membership limited to a group).",
      "enum": [
       "open",
       "restricted"
      ]
     },
     "brands": {
      "type": "array",
      "description": "Sub-brand names the fund sells this policy under (e.g. Qantas Insurance for nib), often empty.",
      "items": {
       "type": "string"
      }
     },
     "name": {
      "type": "string",
      "description": "Policy name as published."
     },
     "product_type": {
      "type": "string",
      "description": "hospital (hospital cover only) or combined (hospital and extras in one policy).",
      "enum": [
       "hospital",
       "combined"
      ]
     },
     "state": {
      "type": "string",
      "description": "State the premium applies in; ALL means sold nationally at one price.",
      "enum": [
       "NSW",
       "VIC",
       "QLD",
       "SA",
       "WA",
       "TAS",
       "NT",
       "ALL"
      ]
     },
     "household": {
      "type": [
       "string",
       "null"
      ],
      "description": "Who the policy covers.",
      "enum": [
       "single",
       "couple",
       "family",
       "single_parent",
       "dependants_only"
      ]
     },
     "adults": {
      "type": [
       "integer",
       "null"
      ],
      "description": "Number of adults covered."
     },
     "dependant_types": {
      "type": "array",
      "description": "Dependant categories covered (child, student, non_student ...).",
      "items": {
       "type": "string"
      }
     },
     "tier": {
      "type": [
       "string",
       "null"
      ],
      "description": "Hospital product tier.",
      "enum": [
       "gold",
       "silver_plus",
       "silver",
       "bronze_plus",
       "bronze",
       "basic_plus",
       "basic"
      ]
     },
     "premium_monthly": {
      "type": [
       "number",
       "null"
      ],
      "description": "Monthly premium in AUD before the government rebate, LHC loading and age-based discount."
     },
     "premium_hospital_monthly": {
      "type": [
       "number",
       "null"
      ],
      "description": "The hospital component of the monthly premium."
     },
     "premium_extras_monthly": {
      "type": [
       "number",
       "null"
      ],
      "description": "The extras component (combined policies only)."
     },
     "excess_type": {
      "type": [
       "string",
       "null"
      ],
      "description": "How the excess applies.",
      "enum": [
       "none",
       "per_admission_only",
       "limited_per_year",
       "limited_per_person",
       "limited_per_person_per_policy"
      ]
     },
     "excess_per_person": {
      "type": [
       "number",
       "null"
      ],
      "description": "Maximum excess per person per year in AUD (750 or less for a single keeps Medicare Levy Surcharge exemption)."
     },
     "excess_per_policy": {
      "type": [
       "number",
       "null"
      ],
      "description": "Maximum excess per policy per year in AUD."
     },
     "excess_per_admission": {
      "type": [
       "number",
       "null"
      ],
      "description": "Excess per hospital admission in AUD."
     },
     "excess_waivers": {
      "type": "array",
      "description": "Cases where the excess is waived (accidents, dependents, day_surgery).",
      "items": {
       "type": "string"
      }
     },
     "copayment": {
      "type": [
       "string",
       "null"
      ],
      "description": "Whether a daily co-payment applies.",
      "enum": [
       "none",
       "limited",
       "unlimited"
      ]
     },
     "mls_exempt": {
      "type": "boolean",
      "description": "True when the policy is appropriate hospital cover for Medicare Levy Surcharge purposes."
     },
     "age_based_discount": {
      "type": "boolean",
      "description": "Whether the under-30 age-based discount is offered on this policy."
     },
     "accommodation": {
      "type": [
       "string",
       "null"
      ],
      "description": "Hospital accommodation covered (private_or_public, public, public_shared ...)."
     },
     "categories_covered": {
      "type": "integer",
      "description": "Of the 38 clinical categories, how many are covered."
     },
     "categories_restricted": {
      "type": "integer",
      "description": "How many clinical categories are covered on a restricted basis."
     },
     "categories_not_covered": {
      "type": "integer",
      "description": "How many clinical categories are excluded."
     },
     "ambulance": {
      "type": [
       "string",
       "null"
      ],
      "description": "Ambulance cover included (none, emergency_only, emergency_and_non_emergency, state_govt)."
     },
     "waiting_pre_existing_months": {
      "type": [
       "number",
       "null"
      ],
      "description": "Waiting period for pre-existing conditions, months."
     },
     "waiting_pregnancy_months": {
      "type": [
       "number",
       "null"
      ],
      "description": "Waiting period for pregnancy and birth, months."
     },
     "waiting_other_months": {
      "type": [
       "number",
       "null"
      ],
      "description": "General waiting period, months."
     },
     "extras_services_covered": {
      "type": [
       "integer",
       "null"
      ],
      "description": "Combined policies: number of extras services covered."
     },
     "only_available_with": {
      "type": [
       "string",
       "null"
      ],
      "description": "not_applicable when the policy can be bought on its own; otherwise what it must be bought with."
     },
     "corporate": {
      "type": "boolean",
      "description": "True when the policy is only available through an employer's corporate plan (not ranked)."
     },
     "availability": {
      "type": "string",
      "description": "general for ordinary resident cover; visitors for reciprocal-agreement visitor and expatriate policies (not ranked).",
      "enum": [
       "general",
       "visitors"
      ]
     },
     "product_url": {
      "type": [
       "string",
       "null"
      ],
      "description": "The fund's own page for the policy, when supplied.",
      "format": "uri"
     },
     "valid_from": {
      "type": [
       "string",
       "null"
      ],
      "description": "Date these terms and premium took effect.",
      "format": "date"
     },
     "source_file": {
      "type": "string",
      "description": "File inside the data.gov.au release the row was read from."
     },
     "source_url": {
      "type": "string",
      "description": "The data.gov.au zip the row was read from (one release a month).",
      "format": "uri"
     },
     "cover_profile": {
      "type": "string",
      "description": "Key into the fund file's cover_profiles: which of the 38 clinical categories are covered, restricted and not covered."
     },
     "waiting_profile": {
      "type": "string",
      "description": "Key into the fund file's waiting_profiles: waiting periods by kind (sub_acute, pre_existing, pregnancy_birth, other) with value and unit."
     },
     "extras_profile": {
      "type": [
       "string",
       "null"
      ],
      "description": "Combined policies: key into the fund file's extras_profiles, the extras services covered (dental_general, optical, physiotherapy ...)."
     },
     "other_features": {
      "type": [
       "string",
       "null"
      ],
      "description": "Free-text product features from the fund."
     },
     "funds_product_code": {
      "type": [
       "string",
       "null"
      ],
      "description": "The fund's own product code."
     }
    },
    "required": [
     "product_item_id",
     "product_id",
     "product_code",
     "fund",
     "fund_label",
     "fund_slug",
     "fund_code",
     "fund_type",
     "brands",
     "name",
     "product_type",
     "state",
     "household",
     "adults",
     "dependant_types",
     "tier",
     "premium_monthly",
     "premium_hospital_monthly",
     "premium_extras_monthly",
     "excess_type",
     "excess_per_person",
     "excess_per_policy",
     "excess_per_admission",
     "excess_waivers",
     "copayment",
     "mls_exempt",
     "age_based_discount",
     "accommodation",
     "categories_covered",
     "categories_restricted",
     "categories_not_covered",
     "ambulance",
     "waiting_pre_existing_months",
     "waiting_pregnancy_months",
     "waiting_other_months",
     "extras_services_covered",
     "only_available_with",
     "corporate",
     "availability",
     "product_url",
     "valid_from",
     "source_file",
     "source_url",
     "cover_profile",
     "waiting_profile",
     "extras_profile",
     "other_features",
     "funds_product_code"
    ],
    "description": "A policy row plus references to the fund file's cover, waiting and extras profiles."
   },
   "HealthCheapestEntry": {
    "type": "object",
    "description": "One ranked policy.",
    "properties": {
     "rank": {
      "type": "integer",
      "description": "1 is cheapest."
     },
     "fund": {
      "type": "string",
      "description": "The insurer's registered name."
     },
     "fund_label": {
      "type": "string",
      "description": "Short name used on the site."
     },
     "fund_slug": {
      "type": "string",
      "description": "URL slug of the fund (its page and JSON file).",
      "pattern": "^[a-z0-9-]+$"
     },
     "fund_type": {
      "type": "string",
      "description": "open (anyone can join) or restricted (membership limited to a group).",
      "enum": [
       "open",
       "restricted"
      ]
     },
     "eligibility": {
      "type": [
       "string",
       "null"
      ],
      "description": "Restricted funds: who may join, in the fund's own words. Null for open funds (anyone can join)."
     },
     "brands": {
      "type": "array",
      "description": "Sub-brand names the fund sells this policy under (e.g. Qantas Insurance for nib), often empty.",
      "items": {
       "type": "string"
      }
     },
     "name": {
      "type": "string",
      "description": "Policy name as published."
     },
     "product_item_id": {
      "type": "string",
      "description": "Identifier of this version of the policy in the source data (changes when the policy changes)."
     },
     "product_code": {
      "type": "string",
      "description": "The regulator's policy code, e.g. H4/QAFO20."
     },
     "product_type": {
      "type": "string",
      "description": "hospital (hospital cover only) or combined (hospital and extras in one policy).",
      "enum": [
       "hospital",
       "combined"
      ]
     },
     "state": {
      "type": "string",
      "description": "State the premium applies in; ALL means sold nationally at one price.",
      "enum": [
       "NSW",
       "VIC",
       "QLD",
       "SA",
       "WA",
       "TAS",
       "NT",
       "ALL"
      ]
     },
     "household": {
      "type": [
       "string",
       "null"
      ],
      "description": "Who the policy covers.",
      "enum": [
       "single",
       "couple",
       "family",
       "single_parent",
       "dependants_only"
      ]
     },
     "tier": {
      "type": [
       "string",
       "null"
      ],
      "description": "Hospital product tier.",
      "enum": [
       "gold",
       "silver_plus",
       "silver",
       "bronze_plus",
       "bronze",
       "basic_plus",
       "basic"
      ]
     },
     "premium_monthly": {
      "type": [
       "number",
       "null"
      ],
      "description": "Monthly premium in AUD before the government rebate, LHC loading and age-based discount."
     },
     "premium_annual": {
      "type": "number",
      "description": "premium_monthly times 12, AUD."
     },
     "excess_per_person": {
      "type": [
       "number",
       "null"
      ],
      "description": "Maximum excess per person per year in AUD (750 or less for a single keeps Medicare Levy Surcharge exemption)."
     },
     "excess_per_policy": {
      "type": [
       "number",
       "null"
      ],
      "description": "Maximum excess per policy per year in AUD."
     },
     "copayment": {
      "type": [
       "string",
       "null"
      ],
      "description": "Whether a daily co-payment applies.",
      "enum": [
       "none",
       "limited",
       "unlimited"
      ]
     },
     "categories_covered": {
      "type": "integer",
      "description": "Of the 38 clinical categories, how many are covered."
     },
     "categories_restricted": {
      "type": "integer",
      "description": "How many clinical categories are covered on a restricted basis."
     },
     "age_based_discount": {
      "type": "boolean",
      "description": "Whether the under-30 age-based discount is offered on this policy."
     },
     "product_url": {
      "type": [
       "string",
       "null"
      ],
      "description": "The fund's own page for the policy, when supplied.",
      "format": "uri"
     },
     "source_url": {
      "type": "string",
      "description": "The data.gov.au zip the row was read from (one release a month).",
      "format": "uri"
     }
    },
    "required": [
     "rank",
     "fund",
     "fund_label",
     "fund_slug",
     "fund_type",
     "eligibility",
     "brands",
     "name",
     "product_item_id",
     "product_code",
     "product_type",
     "state",
     "household",
     "tier",
     "premium_monthly",
     "premium_annual",
     "excess_per_person",
     "excess_per_policy",
     "copayment",
     "categories_covered",
     "categories_restricted",
     "age_based_discount",
     "product_url",
     "source_url"
    ]
   },
   "HealthPolicies": {
    "type": "object",
    "properties": {
     "source": {
      "type": "string",
      "description": "Data source statement."
     },
     "licence_note": {
      "type": "string",
      "description": "Terms of reuse and the not-advice note."
     },
     "state": {
      "type": "string",
      "description": "State the premium applies in; ALL means sold nationally at one price.",
      "enum": [
       "NSW",
       "VIC",
       "QLD",
       "SA",
       "WA",
       "TAS",
       "NT",
       "ALL"
      ]
     },
     "note": {
      "type": "string",
      "description": "What the file holds."
     },
     "row_count": {
      "type": "integer",
      "description": "Number of rows."
     },
     "rows": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/HealthPolicy"
      }
     }
    },
    "required": [
     "state",
     "rows"
    ]
   },
   "HealthCheapest": {
    "type": "object",
    "properties": {
     "source": {
      "type": "string",
      "description": "Data source statement."
     },
     "licence_note": {
      "type": "string",
      "description": "Terms of reuse and the not-advice note."
     },
     "note": {
      "type": "string",
      "description": "How to read the rankings."
     },
     "states": {
      "type": "array",
      "description": "States ranked.",
      "items": {
       "type": "string"
      }
     },
     "households": {
      "type": "array",
      "description": "Household types ranked.",
      "items": {
       "type": "string"
      }
     },
     "tiers": {
      "type": "array",
      "description": "Tiers ranked, plus 'any'.",
      "items": {
       "type": "string"
      }
     },
     "one_per_fund": {
      "type": "boolean",
      "description": "Each list holds exactly one policy per fund that sells in the bucket."
     },
     "rankings": {
      "type": "object",
      "description": "state -> household -> tier -> ranked HealthCheapestEntry array.",
      "additionalProperties": {
       "type": "object",
       "additionalProperties": {
        "type": "object",
        "additionalProperties": {
         "type": "array",
         "items": {
          "$ref": "#/components/schemas/HealthCheapestEntry"
         }
        }
       }
      }
     },
     "funds_ranked": {
      "type": "array",
      "description": "fund_slug of every fund with at least one ranked policy.",
      "items": {
       "type": "string"
      }
     }
    },
    "required": [
     "states",
     "households",
     "tiers",
     "rankings"
    ]
   },
   "HealthFund": {
    "type": "object",
    "description": "A registered health insurer.",
    "properties": {
     "fund": {
      "type": "string",
      "description": "The insurer's registered name."
     },
     "fund_label": {
      "type": "string",
      "description": "Short name used on the site."
     },
     "fund_slug": {
      "type": "string",
      "description": "URL slug of the fund (its page and JSON file).",
      "pattern": "^[a-z0-9-]+$"
     },
     "fund_code": {
      "type": "string",
      "description": "Three-letter code the regulator uses for the fund."
     },
     "fund_type": {
      "type": "string",
      "description": "open (anyone can join) or restricted (membership limited to a group).",
      "enum": [
       "open",
       "restricted"
      ]
     },
     "restriction": {
      "type": [
       "string",
       "null"
      ],
      "description": "Restricted funds: who may join, in brief."
     },
     "restriction_details": {
      "type": [
       "string",
       "null"
      ],
      "description": "Restricted funds: the full eligibility statement."
     },
     "description": {
      "type": [
       "string",
       "null"
      ],
      "description": "The fund's own description."
     },
     "website": {
      "type": [
       "string",
       "null"
      ],
      "description": "Fund website.",
      "format": "uri"
     },
     "phone": {
      "type": [
       "string",
       "null"
      ],
      "description": "Fund phone number."
     },
     "states": {
      "type": "array",
      "description": "States the fund sells in (ALL means nationally).",
      "items": {
       "type": "string"
      }
     },
     "brands": {
      "type": "array",
      "description": "Sub-brands the fund sells under.",
      "items": {
       "type": "object",
       "properties": {
        "brand_code": {
         "type": [
          "string",
          "null"
         ]
        },
        "brand": {
         "type": "string"
        },
        "website": {
         "type": [
          "string",
          "null"
         ]
        }
       }
      }
     }
    },
    "required": [
     "fund",
     "fund_slug",
     "fund_code",
     "fund_type"
    ]
   },
   "HealthFundRegister": {
    "type": "object",
    "properties": {
     "source": {
      "type": "string",
      "description": "Data source statement."
     },
     "licence_note": {
      "type": "string",
      "description": "Terms of reuse and the not-advice note."
     },
     "funds": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/HealthFund"
      }
     }
    },
    "required": [
     "funds"
    ]
   },
   "HealthFundFile": {
    "type": "object",
    "properties": {
     "fund": {
      "type": "string",
      "description": "The insurer's registered name."
     },
     "fund_label": {
      "type": "string",
      "description": "Short name used on the site."
     },
     "fund_slug": {
      "type": "string",
      "description": "URL slug of the fund (its page and JSON file).",
      "pattern": "^[a-z0-9-]+$"
     },
     "fund_code": {
      "type": "string",
      "description": "Three-letter code the regulator uses for the fund."
     },
     "fund_type": {
      "type": "string",
      "description": "open (anyone can join) or restricted (membership limited to a group).",
      "enum": [
       "open",
       "restricted"
      ]
     },
     "restriction": {
      "type": [
       "string",
       "null"
      ],
      "description": "Restricted funds: who may join, in brief."
     },
     "restriction_details": {
      "type": [
       "string",
       "null"
      ],
      "description": "Full eligibility statement."
     },
     "description": {
      "type": [
       "string",
       "null"
      ],
      "description": "The fund's own description."
     },
     "website": {
      "type": [
       "string",
       "null"
      ],
      "description": "Fund website.",
      "format": "uri"
     },
     "phone": {
      "type": [
       "string",
       "null"
      ],
      "description": "Fund phone number."
     },
     "states": {
      "type": "array",
      "description": "States the fund sells in.",
      "items": {
       "type": "string"
      }
     },
     "brands": {
      "type": "array",
      "description": "Sub-brands.",
      "items": {
       "type": "object"
      }
     },
     "source": {
      "type": "string",
      "description": "Data source statement."
     },
     "licence_note": {
      "type": "string",
      "description": "Terms of reuse and the not-advice note."
     },
     "note": {
      "type": "string",
      "description": "How the profile tables relate to the policies."
     },
     "policy_count": {
      "type": "integer",
      "description": "Policies in this file."
     },
     "hospital_policy_count": {
      "type": "integer",
      "description": "Hospital-only policies."
     },
     "combined_policy_count": {
      "type": "integer",
      "description": "Combined policies."
     },
     "cover_profiles": {
      "type": "object",
      "description": "cover_profile id -> {covered, restricted, not_covered}: lists of clinical category names.",
      "additionalProperties": {
       "type": "object",
       "properties": {
        "covered": {
         "type": "array",
         "items": {
          "type": "string"
         }
        },
        "restricted": {
         "type": "array",
         "items": {
          "type": "string"
         }
        },
        "not_covered": {
         "type": "array",
         "items": {
          "type": "string"
         }
        }
       }
      }
     },
     "waiting_profiles": {
      "type": "object",
      "description": "waiting_profile id -> kind -> {value, unit}.",
      "additionalProperties": {
       "type": "object"
      }
     },
     "extras_profiles": {
      "type": "object",
      "description": "extras_profile id -> extras services covered.",
      "additionalProperties": {
       "type": "array",
       "items": {
        "type": "string"
       }
      }
     },
     "policies": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/HealthPolicyDetail"
      }
     }
    },
    "required": [
     "fund",
     "fund_slug",
     "policies"
    ]
   },
   "HealthDatasetIndex": {
    "type": "object",
    "properties": {
     "generated_at": {
      "type": "string",
      "description": "When the files were generated (UTC).",
      "format": "date-time"
     },
     "fetched_at": {
      "type": "string",
      "description": "When the data.gov.au release was downloaded (UTC).",
      "format": "date-time"
     },
     "data_as_of": {
      "type": "string",
      "description": "Extract date of the release, from its file names.",
      "format": "date"
     },
     "source": {
      "type": "string",
      "description": "Data source statement."
     },
     "licence_note": {
      "type": "string",
      "description": "Terms of reuse and the not-advice note."
     },
     "dataset": {
      "type": "string",
      "description": "Dataset name."
     },
     "page": {
      "type": "string",
      "description": "Human-readable page for the dataset.",
      "format": "uri"
     },
     "release": {
      "type": "object",
      "description": "The data.gov.au release the files were built from (name, url, bytes, sha256, extract_date).",
      "additionalProperties": true
     },
     "files": {
      "type": "array",
      "items": {
       "type": "object",
       "properties": {
        "file": {
         "type": "string"
        },
        "url": {
         "type": "string",
         "format": "uri"
        },
        "description": {
         "type": "string"
        }
       }
      }
     },
     "states_dir": {
      "type": "object",
      "properties": {
       "path": {
        "type": "string"
       },
       "url_template": {
        "type": "string"
       },
       "description": {
        "type": "string"
       },
       "states": {
        "type": "array",
        "items": {
         "type": "object",
         "properties": {
          "state": {
           "type": "string"
          },
          "url": {
           "type": "string",
           "format": "uri"
          },
          "row_count": {
           "type": "integer"
          }
         }
        }
       }
      }
     },
     "funds_dir": {
      "type": "object",
      "properties": {
       "path": {
        "type": "string"
       },
       "url_template": {
        "type": "string"
       },
       "page_template": {
        "type": "string"
       },
       "description": {
        "type": "string"
       },
       "count": {
        "type": "integer"
       },
       "funds": {
        "type": "array",
        "items": {
         "type": "object",
         "properties": {
          "fund": {
           "type": "string",
           "description": "The insurer's registered name."
          },
          "fund_label": {
           "type": "string",
           "description": "Short name used on the site."
          },
          "fund_slug": {
           "type": "string",
           "description": "URL slug of the fund (its page and JSON file).",
           "pattern": "^[a-z0-9-]+$"
          },
          "fund_code": {
           "type": "string",
           "description": "Three-letter code the regulator uses for the fund."
          },
          "fund_type": {
           "type": "string",
           "description": "open (anyone can join) or restricted (membership limited to a group).",
           "enum": [
            "open",
            "restricted"
           ]
          },
          "url": {
           "type": "string",
           "format": "uri"
          },
          "page": {
           "type": "string",
           "format": "uri"
          },
          "policy_count": {
           "type": "integer"
          }
         }
        }
       }
      }
     }
    },
    "required": [
     "generated_at",
     "files",
     "funds_dir",
     "states_dir"
    ]
   }
  }
 }
}
