1. Home
  2. Library
  3. Tool reference

Calculate Australian construction payment-claim dates.

LiveAustralia1 credit

What it does

For a payment claim in New South Wales or Queensland, work out the payment schedule deadline, the payment due date and the adjudication deadlines under the security of payment laws.

Ask your AI

Calculate Australian construction payment-claim dates. 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

Counts each Act’s business days; Queensland also needs the show-holiday district of the site.

Good to know

  • Counts each Act’s business days; Queensland also needs the show-holiday district of the site.
  • An unknown contract term gets no deadline, and an adjudication date without a schedule or notice date is labelled as hypothetical.
  • Residential work needs to know whether the owner lives there. Victoria is not calculated yet. General information, not legal advice.
For developers
Tool IDau_construction_payment_dates
ServerAustralia
Credit behaviour1 credit

Input schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "state": {
      "type": "string",
      "enum": [
        "NSW",
        "QLD",
        "VIC"
      ],
      "description": "NSW, QLD or VIC. Victoria returns calculated false."
    },
    "claim_date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Date the payment claim was served, YYYY-MM-DD."
    },
    "contract_date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Date the construction contract was entered into, YYYY-MM-DD. Selects the Act version."
    },
    "work_type": {
      "type": "string",
      "enum": [
        "commercial",
        "residential"
      ],
      "description": "commercial or residential construction work."
    },
    "payment_relationship": {
      "type": "string",
      "enum": [
        "principal_to_head_contractor",
        "head_contractor_to_subcontractor"
      ],
      "description": "Who pays whom under the contract."
    },
    "owner_resides": {
      "description": "Residential work only: yes if the owner lives in, or intends to live in, the dwelling; no if not; unknown if not established. Omitted residential work is treated as unknown.",
      "type": "string",
      "enum": [
        "yes",
        "no",
        "unknown"
      ]
    },
    "region": {
      "description": "QLD only, required for QLD: the Queensland show-holiday district of the site, as listed by the Queensland Government (a council split into parts has one value per part). other_or_unknown withholds the dates or shows a labelled range. Leave out for NSW and VIC.",
      "type": "string",
      "enum": [
        "other_or_unknown",
        "Southern Downs region (Stanthorpe and Dalveen)",
        "Southern Downs region (Allora, former Warwick Shire Division 1)",
        "Southern Downs region (Killarney, former Warwick Shire Division 3)",
        "Goondiwindi region (Inglewood)",
        "Western Downs region (Miles and District)",
        "Southern Downs region (Warwick)",
        "Toowoomba region (Toowoomba, excluding Yarraman, Upper Yarraman and Cooyar)",
        "Western Downs region (Dalby and District)",
        "Western Downs region (Wandoan and District)",
        "Goondiwindi region (Goondiwindi and Waggamba)",
        "Shire of Banana (Taroom)",
        "Maranoa region (Roma and the east and north)",
        "North Burnett region (Mundubbera)",
        "Maranoa region (Mitchell and the west)",
        "Shire of Banana (Theodore and Cracow)",
        "City of Ipswich",
        "Gympie region (excluding Goomeri)",
        "Shire of Banana (Biloela, Moura and Callide Valley)",
        "Shire of Murweh",
        "Barcaldine region (Alpha)",
        "Central Highlands region (Capella and Tieri)",
        "Fraser Coast region",
        "Longreach region (Longreach and Ilfracombe)",
        "Shire of Barcoo",
        "Shire of Bulloo",
        "Western Downs region (Chinchilla and District)",
        "Isaac region (Moranbah, Clermont, Middlemount, Dysart and Kilcummin)",
        "Bundaberg region (postcodes 4660, 4670 and 4673)",
        "Central Highlands region (Springsure, Rolleston and Bauhinia)",
        "Shire of Flinders (Hughenden, Stamford, Prairie and Torrens Creek)",
        "Sunshine Coast region (former Caloundra City)",
        "Central Highlands region (Emerald, Comet, Gemfields, Blackwater, Bluff, Dingo and Duaringa)",
        "Shire of Carpentaria",
        "Weipa town area",
        "Isaac region (St Lawrence and south of Clairview)",
        "Rockhampton region",
        "Shire of Banana (Baralaba)",
        "Shire of Banana (Wowan and Dululu)",
        "Shire of Cloncurry",
        "Shire of Livingstone",
        "Shire of Richmond",
        "Shire of Woorabinda",
        "Sunshine Coast region (former Maroochy Shire)",
        "Isaac region (Nebo, Glenden, Coppabella and Clairview)",
        "Mackay region",
        "City of Mount Isa",
        "Shire of Mornington",
        "Whitsunday region (Proserpine, Airlie Beach and Cannonvale)",
        "Whitsunday region (Bowen)",
        "Shire of Burdekin",
        "Shire of Cook",
        "Shire of Hinchinbrook",
        "Mareeba Shire (Irvinebank, Myosotis and Western parishes)",
        "Tablelands region",
        "Shire of Palm Island",
        "City of Townsville",
        "Cassowary Coast region (north: Divisions 4, 5 and 6)",
        "Cairns region",
        "Mareeba Shire (Cairns show area)",
        "Shire of Aurukun",
        "Shire of Hope Vale",
        "Shire of Kowanyama",
        "Shire of Mapoon",
        "Shire of Napranum",
        "Shire of Pormpuraaw",
        "Shire of Wujal Wujal",
        "Shire of Yarrabah",
        "Mareeba Shire (Mowbray, Salisbury, Riflemead and Garioch north of Hunter and Rifle Creeks)",
        "Shire of Douglas",
        "Cassowary Coast region (south: Division 1)",
        "Charters Towers region",
        "Shire of Etheridge",
        "Bundaberg region (postcode 4671)",
        "City of Moreton Bay",
        "City of Redland",
        "Gladstone region",
        "Goondiwindi region (Texas)",
        "Gympie region (Goomeri)",
        "Lockyer Valley region",
        "Logan City",
        "North Burnett region (Biggenden, Eidsvold, Gayndah, Monto and Mount Perry)",
        "Scenic Rim region",
        "Shire of Balonne",
        "Shire of Cherbourg",
        "Somerset region",
        "South Burnett region",
        "Toowoomba region (Yarraman, Upper Yarraman and Cooyar)",
        "Western Downs region (Tara and District)",
        "City of Brisbane",
        "Shire of Paroo",
        "City of Gold Coast",
        "Barcaldine region (Barcaldine, Jericho and Aramac)",
        "Longreach region (Isisford and Yaraka)",
        "Shire of Noosa",
        "Shire of Quilpie",
        "Shire of Torres",
        "Torres Strait Island region",
        "Northern Peninsula Area region",
        "Whitsunday region (Collinsville)"
      ]
    },
    "reference_date": {
      "description": "NSW only: the contract's reference date, YYYY-MM-DD. Must be on or before claim_date.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "contract_payment_terms_status": {
      "type": "object",
      "properties": {
        "schedule": {
          "type": "string",
          "enum": [
            "known",
            "confirmed_silent",
            "unknown"
          ],
          "description": "known: the contract states a payment schedule period (give its days). confirmed_silent: the contract was checked and says nothing. unknown: not checked; the deadline is withheld."
        },
        "due": {
          "type": "string",
          "enum": [
            "known",
            "confirmed_silent",
            "unknown"
          ],
          "description": "known: the contract states a payment due date or period (give its days). confirmed_silent: the contract was checked and says nothing. unknown: not checked; the due date is withheld."
        }
      },
      "required": [
        "schedule",
        "due"
      ],
      "additionalProperties": false,
      "description": "The status of each contract payment term. Every term must be stated."
    },
    "contract_day_count_basis": {
      "type": "string",
      "enum": [
        "act_definition",
        "contract_definition",
        "calendar_days",
        "fixed_date"
      ],
      "description": "How the contract counts days. act_definition: the Act's own day definition (also use this when the contract states no payment terms). contract_definition: the contract defines working or business days itself. calendar_days: the contract counts calendar days. fixed_date: the contract gives a date (supply contract_schedule_date or contract_due_date). Only act_definition and fixed_date are calculated; the others withhold the date."
    },
    "contract_schedule_date": {
      "description": "Fixed date the contract gives for the payment schedule, YYYY-MM-DD. Required when contract_day_count_basis is fixed_date and the schedule term is known; leave out otherwise.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "contract_due_date": {
      "description": "Fixed date the contract gives for payment, YYYY-MM-DD. Required when contract_day_count_basis is fixed_date and the due term is known; leave out otherwise.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "contract_schedule_business_days": {
      "description": "Payment schedule period in business days. Required when contract_payment_terms_status.schedule is known; leave out otherwise.",
      "type": "integer",
      "minimum": 1,
      "maximum": 60
    },
    "contract_due_business_days": {
      "description": "Payment due period in business days. Required when contract_payment_terms_status.due is known; leave out otherwise.",
      "type": "integer",
      "minimum": 1,
      "maximum": 60
    },
    "schedule_received_date": {
      "description": "Date the payment schedule was received or given, YYYY-MM-DD. Anchors the disputed-schedule adjudication deadline; omit for a hypothetical latest date.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "notice_of_intention_date": {
      "description": "NSW only: date the notice of intention to apply for adjudication was served, YYYY-MM-DD. Anchors the no-schedule application deadline; omit for a hypothetical latest date.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    }
  },
  "required": [
    "state",
    "claim_date",
    "contract_date",
    "work_type",
    "payment_relationship",
    "contract_payment_terms_status",
    "contract_day_count_basis"
  ],
  "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.