Skip to content
Eden Engine

Municipal Income and Expenditure Totals by Financial Year (South Africa)

municipalmoney/income-expenditure-by-year

Aggregates South Africa's Municipal Money Income and Expenditure (v2) dataset by municipality for one financial year (the calendar year in which it ends; the dataset starts with 2019-20): one row per municipality with its code, name, the number of dataset rows behind it and the sum of their amounts, plus the same two figures across all municipalities and the total municipality count for paging. The sum covers every line item, amount type (actual, budget, audited) and period in the dataset for that year, so it is a volume indicator, not net income or a surplus. National Treasury data as served by Omnial, not an official National Treasury product.

activeper callv1

Price

$0.0026 per call

You pay the price shown. If a call turns out to cost more than its quote, you pay the actual price, capped at twice the quote. No monthly minimum. Top-ups start at $5.

Data source

National Treasury (South Africa)

Source: National Treasury (South Africa), Municipal Money, with publication date of the data. Terms of Use: municipaldata.treasury.gov.za/terms. Served by Eden Engine; not an official National Treasury product.

Use it

Five steps: search, inspect, learn, run, settle. No per-tool setup; your agent reaches this tool through the meta-tools it already has.

Connect once and your AI can find and run this tool, and any other it needs.

agent
// 1. search: find the tool
omnial_search({ query: "what you need" })

// 2. inspect: price and input schema
omnial_inspect({ tool: "municipalmoney/income-expenditure-by-year" })

// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "municipalmoney/income-expenditure-by-year" })

// 4. run: price the exact call first, then run it
omnial_execute({ tool: "municipalmoney/income-expenditure-by-year", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "municipalmoney/income-expenditure-by-year", input: { /* ... */ } })

// 5. settle: the call is charged when it finishes, nothing to do

Not connected yet? Point your MCP client at https://mcp.eden-engine.com/mcp, then copy a config for your client.

Pricing

Every charge this tool can incur.

ChargePrice
Per call
$0.0026
Updated
Oct 20, 2026

Input and output schemas

Input schema
input_schema.json
{
  "type": "object",
  "required": [
    "financial_year"
  ],
  "properties": {
    "page": {
      "type": "integer",
      "minimum": 1,
      "description": "Page number to read, starting at 1. Leave out for the first page. Use total_cell_count and the page size to work out how many pages there are."
    },
    "page_size": {
      "type": "integer",
      "default": 50,
      "maximum": 300,
      "minimum": 1,
      "description": "Municipalities per page, 1 to 300. Defaults to 50. A year has a little over 250 municipalities, so 300 returns them all in one page."
    },
    "financial_year": {
      "type": "integer",
      "maximum": 2100,
      "minimum": 2020,
      "description": "The calendar year in which the financial year ends, as the dataset records it (financial_year_end.year). 2023 selects the financial year ending in 2023. The v2 dataset starts with 2019-20, so the earliest year is 2020."
    }
  },
  "additionalProperties": false
}
Output schema
output_schema.json
{
  "type": "object",
  "required": [
    "cells",
    "total_cell_count"
  ],
  "properties": {
    "cell": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      },
      "description": "The filter that was applied, echoed by the source."
    },
    "page": {
      "type": "integer"
    },
    "cells": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "demarcation.code",
          "demarcation.label"
        ],
        "properties": {
          "_count": {
            "type": "integer",
            "description": "Dataset rows summed for this municipality and year."
          },
          "amount.sum": {
            "type": "number",
            "description": "Sum of amount over those rows: every line item, amount type and period together. Not net income or a surplus."
          },
          "demarcation.code": {
            "type": "string",
            "description": "Municipal Demarcation Board code; look it up with the municipality profile tool."
          },
          "demarcation.label": {
            "type": "string",
            "description": "Municipality name."
          }
        },
        "additionalProperties": true
      },
      "description": "One row per municipality on this page."
    },
    "order": {
      "type": "array",
      "items": {}
    },
    "status": {
      "type": "string"
    },
    "summary": {
      "type": "object",
      "description": "The same two figures, _count and amount.sum, over every municipality in the year.",
      "additionalProperties": true
    },
    "page_size": {
      "type": "integer"
    },
    "aggregates": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "attributes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "total_cell_count": {
      "type": "integer",
      "description": "How many municipalities the year has, across all pages."
    }
  },
  "description": "The aggregate as the source returns it: one cell per municipality, an all-municipality summary, and the page position.",
  "additionalProperties": true
}