1. Home
  2. Library
  3. Tool reference

Plan a New Zealand tax reserve.

LiveNew Zealand1 credit

What it does

Work out how much a sole trader should set aside for each provisional-tax instalment under the standard, estimation or ratio method, the share of income to put aside from today, and when each payment is due.

Ask your AI

Plan a New Zealand tax reserve. Ask me for any detail you need first, then show the result with its source and date, and list anything a person should check.

What comes back

Standard uses last year’s residual income tax; estimation uses your own estimate.

Good to know

  • Standard uses last year’s residual income tax; estimation uses your own estimate.
  • The ratio method needs the rate Inland Revenue issued and your taxable supplies for each monthly or two-monthly GST period.
  • The accounting income method and six-monthly GST are not supported.
For developers
Tool IDnz_tax_reserve_plan
ServerNew Zealand
Credit behaviour1 credit

Input schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "tax_year": {
      "type": "string",
      "enum": [
        "2025-26",
        "2026-27"
      ]
    },
    "as_of_date": {
      "description": "Planning date for the forward reserve; defaults to today.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "balance_date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Balance date that ends the income year being planned, for example 2027-03-31 for 2026-27."
    },
    "method": {
      "type": "string",
      "enum": [
        "standard",
        "estimation",
        "ratio",
        "aim"
      ]
    },
    "prior_year_rit": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000
    },
    "two_years_prior_rit": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000
    },
    "has_extension_of_time": {
      "type": "boolean"
    },
    "filing_timing": {
      "description": "When the previous income-year return was filed relative to the three provisional instalments.",
      "type": "string",
      "enum": [
        "before_first",
        "after_first",
        "after_second",
        "after_third"
      ]
    },
    "expected_prior_year_rit": {
      "description": "Required for filing_timing after_third: expected prior-year RIT used to calculate P3 before the return was filed.",
      "type": "number",
      "minimum": 0,
      "maximum": 100000000
    },
    "estimated_rit": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000
    },
    "gst_filing_frequency": {
      "type": "string",
      "enum": [
        "monthly",
        "two_monthly"
      ]
    },
    "gst_taxable_supplies": {
      "description": "Ratio method only: enter all 6 two-month GST periods, or all 12 monthly periods when gst_filing_frequency is monthly; monthly pairs are added for each ratio instalment. This is separate from the cash-receipts forecast.",
      "minItems": 1,
      "maxItems": 12,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "period_number": {
            "type": "integer",
            "minimum": 1,
            "maximum": 12
          },
          "amount": {
            "type": "number",
            "minimum": 0,
            "maximum": 100000000,
            "description": "GST taxable supplies; exclude GST-exempt supplies."
          },
          "asset_sale_adjustment": {
            "description": "Optional asset-sale value to subtract from this GST period. It must exceed the greater of NZ$1,000 and 5% of preceding 12 months' taxable supplies, and the asset must not be revenue account property. If supplied, also enter preceding_12_months_taxable_supplies and set asset_sale_is_revenue_account_property to false.",
            "type": "number",
            "minimum": 0,
            "maximum": 100000000
          },
          "preceding_12_months_taxable_supplies": {
            "description": "Required with asset_sale_adjustment; GST-taxable supplies for the preceding 12 months.",
            "type": "number",
            "minimum": 0,
            "maximum": 100000000
          },
          "asset_sale_is_revenue_account_property": {
            "description": "Required with asset_sale_adjustment; must be false to use the IRD adjustment.",
            "type": "boolean"
          }
        },
        "required": [
          "period_number",
          "amount"
        ],
        "additionalProperties": false
      }
    },
    "ird_issued_rate": {
      "description": "IRD decimal ratio, e.g. 0.085.",
      "type": "number",
      "minimum": 0,
      "maximum": 1
    },
    "expected_receipts": {
      "minItems": 1,
      "maxItems": 200,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "received_on": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "amount": {
            "type": "number",
            "minimum": 0,
            "maximum": 100000000,
            "description": "Expected receipt excluding GST."
          },
          "instalment_number": {
            "type": "integer",
            "minimum": 1,
            "maximum": 6
          }
        },
        "required": [
          "received_on",
          "amount"
        ],
        "additionalProperties": false
      }
    },
    "expected_income_per_period": {
      "description": "Expected period income excluding GST; periods map evenly by whole months across the income year.",
      "type": "number",
      "minimum": 0,
      "maximum": 100000000
    },
    "expected_periods": {
      "description": "Undated NZ forecast periods: 1, 2, 3, 4, 6, or 12. Use dated expected_receipts for custom periods.",
      "type": "integer",
      "minimum": 1,
      "maximum": 12
    },
    "provisional_tax_paid": {
      "description": "Total net actual provisional-tax payments; defaults to NZ$0. For late standard filing schedules, this scalar is allocated chronologically; use provisional_tax_payments to enter exact period payments and refunds.",
      "type": "number",
      "minimum": 0,
      "maximum": 100000000
    },
    "provisional_tax_payments": {
      "description": "Exact standard-option payment history by instalment. If provisional_tax_paid is also supplied, it must equal this array's net sum.",
      "maxItems": 3,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "instalment_number": {
            "type": "integer",
            "minimum": 1,
            "maximum": 3
          },
          "amount": {
            "type": "number",
            "minimum": -1000000000000,
            "maximum": 1000000000000,
            "description": "Actual net payment for this instalment; enter a negative amount for a refund."
          }
        },
        "required": [
          "instalment_number",
          "amount"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "tax_year",
    "balance_date",
    "method"
  ],
  "additionalProperties": false
}

Shared output schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "anyOf": [
    {
      "type": "object",
      "properties": {
        "summary": {
          "type": "string"
        },
        "data": {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {}
        },
        "executionId": {
          "type": "string",
          "format": "uuid",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
        },
        "creditsCharged": {
          "type": "number",
          "minimum": 0
        },
        "usage": {
          "type": "object",
          "properties": {
            "credits_charged": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            "credits_remaining": {
              "anyOf": [
                {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9007199254740991
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "credits_charged"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "summary",
        "data",
        "creditsCharged"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "message": {
              "type": "string"
            },
            "retryable": {
              "type": "boolean"
            }
          },
          "required": [
            "code",
            "message",
            "retryable"
          ],
          "additionalProperties": false
        },
        "usage": {
          "type": "object",
          "properties": {
            "credits_charged": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            "credits_remaining": {
              "anyOf": [
                {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9007199254740991
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "credits_charged"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "error"
      ],
      "additionalProperties": false
    }
  ]
}

Ready to use this tool?

Connect Aroai to your AI and try a request.