Skip to main content
Glama

Microburbs Australian Property Data

Suburb · Underclass Drag

suburbs_demographics_underclass_drag
Read-onlyIdempotent

Shown in the suburb report as the 'Underclass Drag' card in the Demographics section.

Welfare-dependency and public-housing shares with the suburb's underclass tier (High / Mid / Low) and the capital-growth impact associated with that tier. Regional and neighbour ranks for the same two metrics are served by /demographics/cohorts.

Price: 10¢ per call.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "suburb_name": "<suburb_name>"
    },
    "name": "suburbs_demographics_underclass_drag"
  }
}

Input Schema

NameRequiredDescriptionDefault
suburb_nameYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "available": {
      -      "anyOf": [
      -        {
      -          "type": "boolean"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "description": "`false` on no-data responses. Omitted on success — branch on `data !== null` if you want a single discriminator.",
      -      "title": "Available"
      -    },
      -    "data": {
      -      "anyOf": [
      -        {
      -          "additionalProperties": true,
      -          "description": "Welfare dependency + public housing, with the underclass tier.",
      -          "example": {
      -            "growth_impact": {
      -              "band": "Middle 90%",
      -              "pct_per_year": 0
      -            },
      -            "n_microburbs": 77,
      -            "public_housing_basis": "microburb_downscale",
      -            "public_housing_pct": 6.6,
      -            "suburb": "Belmont North",
      -            "tier": "Mid",
      -            "welfare_dependency_pct": 16.2
      -          },
      -          "properties": {
      -            "growth_impact": {
      -              "additionalProperties": true,
      -              "description": "Capital-growth impact associated with the tier.",
      -              "properties": {
      -                "band": {
      -                  "description": "Plain-language name of the band the suburb landed in, suitable for display alongside the figure — e.g. 'Middle 90%', 'High unemployment', 'Low private-school share'. The wording differs per indicator; treat it as a label, not a shared enum.",
      -                  "title": "Band",
      -                  "type": "string"
      -                },
      -                "pct_per_year": {
      -                  "description": "The growth difference historically associated with this band, in percentage points per year on a percent scale — `-3.8` means 3.8 percentage points a year worse, `0.5` means half a point a year better, and `0.0` (the common case, for suburbs in the middle band) means no association either way. A relative difference, not a growth rate in its own right.",
      -                  "title": "Pct Per Year",
      -                  "type": "number"
      -                }
      -              },
      -              "required": [
      -                "pct_per_year",
      -                "band"
      -              ],
      -              "title": "GrowthImpact",
      -              "type": "object"
      -            },
      -            "n_microburbs": {
      -              "anyOf": [
      -                {
      -                  "type": "integer"
      -                },
      -                {
      -                  "type": "null"
      -                }
      -              ],
      -              "description": "Mesh blocks behind the public-housing rollup.",
      -              "title": "N Microburbs"
      -            },
      -            "public_housing_basis": {
      -              "anyOf": [
      -                {
      -                  "enum": [
      -                    "microburb_downscale",
      -                    "census_suburb"
      -                  ],
      -                  "type": "string"
      -                },
      -                {
      -                  "type": "null"
      -                }
      -              ],
      -              "description": "Which denominator produced public_housing_pct — 'microburb_downscale' (mesh-block tenure base, preferred) or 'census_suburb' (suburb census population share).",
      -              "title": "Public Housing Basis"
      -            },
      -            "public_housing_pct": {
      -              "anyOf": [
      -                {
      -                  "type": "number"
      -                },
      -                {
      -                  "type": "null"
      -                }
      -              ],
      -              "description": "Public-housing share of dwellings, as a percentage.",
      -              "title": "Public Housing Pct"
      -            },
      -            "suburb": {
      -              "description": "Canonical SAL name.",
      -              "title": "Suburb",
      -              "type": "string"
      -            },
      -            "tier": {
      -              "description": "Underclass concentration tier. High = welfare >= 20% or public housing >= 15%; Low = welfare < 10% and public housing < 2%.",
      -              "enum": [
      -                "High",
      -                "Mid",
      -                "Low"
      -              ],
      -              "title": "Tier",
      -              "type": "string"
      -            },
      -            "welfare_dependency_pct": {
      -              "description": "Share of working-age residents on JobSeeker / Disability Support / carer payments, as a percentage.",
      -              "title": "Welfare Dependency Pct",
      -              "type": "number"
      -            }
      -          },
      -          "required": [
      -            "suburb",
      -            "welfare_dependency_pct",
      -            "tier",
      -            "growth_impact"
      -          ],
      -          "title": "UnderclassDrag",
      -          "type": "object"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "description": "The endpoint's payload, or `null` when Microburbs has no value."
      -    },
      -    "message": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "description": "Human-readable explanation. Omitted on success.",
      -      "title": "Message"
      -    },
      -    "reason": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "description": "Machine-readable slug naming the no-data condition (e.g. `no_avm_for_GANSW704074813`). Stable per endpoint. Omitted on success.",
      -      "title": "Reason"
      -    }
      -  },
      -  "title": "ApiResponse[UnderclassDrag]",
      -  "type": "object",
      -  "x-fastmcp-top-level-schema": "ApiResponse_UnderclassDrag_"
      -}New value: +null
  2. First observed

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly, idempotent, non-destructive, closed-world behavior, so the description is free to add the genuinely useful extra: a 10¢ per call price, which an agent cannot learn from any structured field. It also discloses the result shape (tier plus growth impact). It stops short of noting whether a missing/unknown suburb errors or returns empty.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the card identity, then the payload, then the alternative, then cost — a sensible ordering with little waste. The inline endpoint path `/demographics/cohorts` is slightly awkward where a tool name would be more actionable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description steps in to describe the returned fields (dependency and housing shares, tier values, growth impact) and flags that ranks live elsewhere, plus the cost of the call. For a single-parameter read tool that is sufficient to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for the single required suburb_name, so the description carries the burden; it implies a suburb identifier by speaking of "the suburb's" metrics but never specifies name versus ID, or how ambiguous or non-existent suburb names are handled. That is marginal compensation for a 0% coverage schema, though the parameter itself is a simple string.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the specific card and enumerates the metrics delivered: welfare-dependency share, public-housing share, an underclass tier (High/Mid/Low), and the associated capital-growth impact. That is enough to distinguish it from most demographics siblings, though it never uses an explicit retrieval verb and leans on report-card framing rather than a plain statement of what the call returns.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is a partial routing hint: regional and neighbour ranks for the same two metrics come from `/demographics/cohorts`. However, that is written as an endpoint path rather than the sibling tool name, and no guidance is given on when to pick this over suburbs_demographics_all, _income, or _tenure, which likely overlap contextually.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources