{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/calculate-co-nz/json-schema/calculate-co-nz-minimum-wage-response-schema.json",
  "title": "MinimumWageResponse",
  "x-generated": "2026-11-03",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/calculate-co-nz-openapi.json#/components/schemas/MinimumWageResponse",
  "properties": {
    "result": {
      "$ref": "#/$defs/MinimumWageResult",
      "description": "The rate in force, gross pay and take-home."
    },
    "disclaimer": {
      "type": "string",
      "title": "Disclaimer",
      "description": "Scope and limits of this calculation."
    }
  },
  "type": "object",
  "required": [
    "result",
    "disclaimer"
  ],
  "$defs": {
    "MinimumWageResult": {
      "properties": {
        "as_at": {
          "type": "string",
          "title": "As At",
          "description": "The date answered for."
        },
        "wage_type": {
          "type": "string",
          "title": "Wage Type",
          "description": "The wage type asked for."
        },
        "rate_name": {
          "type": "string",
          "title": "Rate Name",
          "description": "Name of the rate applied, e.g. new entrant before 1 May 2013."
        },
        "hourly_rate": {
          "type": "number",
          "title": "Hourly Rate",
          "description": "Hourly rate applied, before tax."
        },
        "rate_effective_from": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Rate Effective From",
          "description": "When that rate took effect. The adult and training rates in force from 1 May 2013 to 31 March 2014 took effect on 1 April 2013; only the starting-out rate began on 1 May 2013."
        },
        "adult_rate": {
          "type": "number",
          "title": "Adult Rate",
          "description": "Adult minimum wage on the date."
        },
        "starting_out_rate": {
          "type": "number",
          "title": "Starting Out Rate",
          "description": "Starting-out (or new entrant) rate on the date, 80% of adult."
        },
        "training_rate": {
          "type": "number",
          "title": "Training Rate",
          "description": "Training rate on the date, 80% of adult."
        },
        "hours_per_week": {
          "type": "number",
          "title": "Hours Per Week",
          "description": "Hours used."
        },
        "gross_weekly": {
          "type": "number",
          "title": "Gross Weekly",
          "description": "Rate x hours."
        },
        "gross_fortnightly": {
          "type": "number",
          "title": "Gross Fortnightly",
          "description": "Two weeks gross."
        },
        "gross_annual": {
          "type": "number",
          "title": "Gross Annual",
          "description": "52 weeks gross."
        },
        "take_home": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Take Home",
          "description": "PAYE, IETC, ACC, KiwiSaver, student loan and net pay, weekly and annual, on current settings. Null for a past rate."
        },
        "comparison": {
          "anyOf": [
            {
              "items": {
                "additionalProperties": true,
                "type": "object"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "Comparison",
          "description": "Starting-out, adult and living wage at 40 hours, net vs adult, on the KiwiSaver rate given (0 included: no fallback to the default)."
        },
        "next_expected_change": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Next Expected Change",
          "description": "When the rate is next expected to change."
        },
        "rate_confirmed_for_date": {
          "type": "boolean",
          "title": "Rate Confirmed For Date",
          "description": "False when the date is past the next expected change."
        },
        "notes": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "title": "Notes",
          "description": "Caveats that apply to this answer."
        },
        "history": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "type": "array",
          "title": "History",
          "description": "Every dated rate since 1 April 2008, most recent first, from Employment New Zealand. Each row has a note, null except on 1 May 2013, when only the starting-out rate began."
        },
        "inputs": {
          "additionalProperties": true,
          "type": "object",
          "title": "Inputs",
          "description": "The inputs used, with defaults filled in."
        }
      },
      "type": "object",
      "required": [
        "as_at",
        "wage_type",
        "rate_name",
        "hourly_rate",
        "adult_rate",
        "starting_out_rate",
        "training_rate",
        "hours_per_week",
        "gross_weekly",
        "gross_fortnightly",
        "gross_annual",
        "rate_confirmed_for_date",
        "notes",
        "history",
        "inputs"
      ],
      "title": "MinimumWageResult"
    }
  }
}