Municipal Money API Documentation
The Municipal Money API publishes the financial information of South African municipalities in a machine-friendly format.
All municipalities must regularly submit financial information to National Treasury who, in partnership with OpenUp, make it available to the public through this API.
What data is available
The financial data is very similar to that made available on National Treasury’s website in PDF reports and Excel spreadsheets and generally called Section 71 information. It is described further below and includes:
- Aged Creditor Analysis
- Aged Creditor Analysis (v2)
- Aged Debtor Analysis
- Aged Debtor Analysis (v2)
- Audit Opinions
- Balance Sheet
- Capital Acquisition
- Capital Acquisition (v2)
- Cash Flow
- Cash Flow (v2)
- Conditional Grants
- Demarcation Changes
- Financial Position (v2)
- Grants (v2)
- Income and Expenditure
- Income and Expenditure (v2)
- Municipalities
- Municipal Officials
- Repairs and Maintenance
- Repairs and Maintenance (v2)
- Unauthorised, Irregular, Fruitless and Wasteful Expenditure
The data is available for all metro, district and local municipalities.
What is v2?
Datasets marked "v2" are replacements for the first version of those datasets in Municipal Money. A new dataset was created when the 2019-2020 financial year data was released as the coding system changed with the change to mSCOA-sourced data.
Sometimes structure of the dataset in Municipal Money also changed, also requiring a different dataset to be used to avoid breaking existing usage of the API.
The original counterpart for each v2 datasets is referred to in its description.
Where is the data from?
The data is composed of the Section 71 (of the Municipal Financial Management Act) submissions from municipalities to the Treasury's Local Government database. These are regular submissions from the municipality, signed off by the Municipal Manager and Chief Financial Officer as accurate, to National Treasury.
Since mSCOA
Since the 2019-20 financial year, the municipal Standard Chart of Accounts (mSCOA) has been the specification for how financial management data must be submitted by municipalities to National Treasury. This includes the requirement that submissions are automated via an integration between the municipalities' accounting systems and National Treasury's Local Government Database.
Before mSCOA
Up to the 2019-2020 financial year, these submissions took the shape of return forms in Excel Spreadsheets provided by Treasury to help municipalities validate the data and supply it in a consistent format. It can be helpful to look at the forms to understand the data better.
Snapshots from the Local Government Database in Municipal Money
Municipal Money is updated quarterly from snapshots of the Local Government Database. These snapshots are also used to produce Section 71 reports which is a reflection of the state of local government finances as reported by municipalities.
These reports and snapshots are signed off by Director General of National Treasury as a true reflection of the data supplied by municipalities according to Section 71 of the Municipal Financial Management Act.
National Treasury analyses the data to try and ensure correct use of the chart of accounts. Municipalities can not correct the data once submitted - corrections are supplied as adjustments in the subsequent month. Quarters are then locked and no further modifications are allowed to a quarter so that the data does not deviate from what has already been published.
Audits by the auditor general
The data where Amount Type is Audited Actual are audit outcome figures audited by the Auditor General and submitted by the municipality to the Local Government database. National Treasury does extensive verification to ensure that the audit outcomes submitted to the database matches the Annual Financial Statements as audited by the Auditor General. See also the Audit Report for the Auditor General's comments on the accuracy of the reporting by the municipality.
How can I be sure I am getting the right results from the API?
The treasury publishes quarterly reports based on the municipalities' Section 71 submissions as well as well as reports on municipality financial health using standard indicators based on this data.
It can be useful to verify numbers retrieved from the API against these published reports. This verifies both a correct understanding of how to use the API, and that the API supplies reliable information. When doing so, it is important to be aware that the reports are based on a snapshot of the data at the point in time where they are generated, while the API could contain amended numbers if a municipality updated their submission. The Treasury's reports also fall back to pre-audited and then budget values if audited values are not available at the time of publication. When this is the case, it would be noted as such. Generally the API can be expected to match the treasury's publications so if one value doesn't match, try checking the same field for other periods and other municipalities to ensure the correct field is being compared. If that is the case, one can investigate further why a specific field doesn't match - perhaps because of the reasons mentioned here.
Export CSV
You can export a subset of the data as CSV if you want to explore that offline. As you explore the data of a cube, you can download the entire dataset matching your current filters showing only the columns you have selected. Once you've narrowed down what you want, click the Download CSV button.
Datasets
Aged Creditor Analysis - aged_creditor
Analysis of creditors aggregated by age of debt. Does not include individual creditors.
Submitted to National Treasury using return forms: AC, ACA.
Items
Code | Item | Composition |
---|---|---|
0100 | Bulk Electricity | |
0200 | Bulk Water | |
0300 | PAYE deductions | |
0400 | VAT (output less input) | |
0500 | Pensions / Retirement deductions | |
0600 | Loan repayments | |
0700 | Trade Creditors | |
0800 | Auditor General | |
0900 | Other | |
1000 | Total | sum(0100, 0200, 0300, 0400, 0500, 0600, 0700, 0800, 0900) |
TP01 | Top 1 Creditor | |
TP02 | Top 2 Creditor | |
TP03 | Top 3 Creditor | |
TP04 | Top 4 Creditor | |
TP05 | Top 5 Creditor | |
TP06 | Top 6 Creditor | |
TP07 | Top 7 Creditor | |
TP08 | Top 8 Creditor | |
TP09 | Top 9 Creditor | |
TP10 | Top 10 Creditor | |
TOT | Total | sum(TP01, TP02, TP03, TP04, TP05, TP06, TP07 TP08 TP09, TP10) |
Dimensions and their attributes
Amount Type (Non-aggregatable) | Whether this figure is actual, budgeted, audited etc. | ||
Code | amount_type.code | string | |
Label | amount_type.label | string | |
Financial Period | The period this figure corresponds to, e.g. the month number of a month within the financial year, or the calendar year end of a financial year. | ||
Period | financial_period.period | integer | |
Financial Year (Non-aggregatable) | The calendar year falling at the end of the financial year | ||
Year End | financial_year_end.year | integer | |
Item (Non-aggregatable) | |||
Code | item.code | string | Code used by the treasury |
Composition | item.composition | string | The composition of this item. Indicates how this item is composed of other items in this cube for the same mnuicipality, financial year and period, and amount type using item codes. |
Label | item.label | string | |
Position in Return Form | item.position_in_return_form | integer | The position of this item in the Section 71 Return form - useful for sorting line items to be ordered as they are in the return form to group related items and place them below the section headings and above section totals. |
Return Form Structure | item.return_form_structure | string | What structural role this line item has in the return form |
Municipality | Municipality demarcation details | ||
Demarcation Code | demarcation.code | string | Municipality code assigned by the Municipal Demarcation Board |
Name | demarcation.label | string | |
Period Length (Non-aggregatable) | The length of the period this figure corresponds to | ||
Length | period_length.length | string |
Aged Creditor Analysis (v2) - aged_creditor_v2
Analysis of creditors aggregated by age of debt. Does not include individual creditors. Section 71-level aggregation of mSCOA data from 2019-20 onwards replacing the original aged_creditor cube.
Items
Code | Item | Composition |
---|---|---|
0100 | Bulk Electricity | |
0200 | Bulk Water | |
0300 | PAYE deductions | |
0400 | VAT (output less input) | |
0500 | Pensions / Retirement deductions | |
0600 | Loan repayments | |
0700 | Trade Creditors | |
0800 | Auditor General | |
0900 | Other | |
1000 | Total | sum(0100, 0200, 0300, 0400, 0500, 0600, 0700, 0800, 0900) |
TP01 | Top 1 Creditor | |
TP02 | Top 2 Creditor | |
TP03 | Top 3 Creditor | |
TP04 | Top 4 Creditor | |
TP05 | Top 5 Creditor | |
TP06 | Top 6 Creditor | |
TP07 | Top 7 Creditor | |
TP08 | Top 8 Creditor | |
TP09 | Top 9 Creditor | |
TP10 | Top 10 Creditor | |
TOT | Total | sum(TP01, TP02, TP03, TP04, TP05, TP06, TP07 TP08 TP09, TP10) |
Dimensions and their attributes
Amount Type (Non-aggregatable) | Whether this figure is actual, budgeted, audited etc. | ||
Code | amount_type.code | string | |
Label | amount_type.label | string | |
Financial Period | The period this figure corresponds to, e.g. the month number of a month within the financial year, or the calendar year end of a financial year. | ||
Period | financial_period.period | integer | |
Financial Year (Non-aggregatable) | The calendar year falling at the end of the financial year | ||
Year End | financial_year_end.year | integer | |
Item | |||
Code | item.code | string | Code used by the treasury |
Composition | item.composition | string | The composition of this item. Indicates how this item is composed of other items in this cube for the same mnuicipality, financial year and period, and amount type using item codes. |
Label | item.label | string | |
Position in Return Form | item.position_in_return_form | integer | The position of this item in the Section 71 Return form - useful for sorting line items to be ordered as they are in the return form to group related items and place them below the section headings and above section totals. |
Return Form Structure | item.return_form_structure | string | What structural role this line item has in the return form |
Municipality | Municipality demarcation details | ||
Demarcation Code | demarcation.code | string | Municipality code assigned by the Municipal Demarcation Board |
Name | demarcation.label | string | |
Period Length (Non-aggregatable) | The length of the period this figure corresponds to | ||
Length | period_length.length | string |
Aged Debtor Analysis - aged_debtor
Analysis of debtors by age of debt. Does not include individual debtors.
Submitted to National Treasury using return forms: AD, ADA.
Items
Code | Item | Composition |
---|---|---|
1100 | Debtors Age Analysis By Income Source | |
1200 | Trade and Other Receivables from Exchange Transactions - Water | |
1300 | Trade and Other Receivables from Exchange Transactions - Electricity | |
1400 | Receivables from Non-exchange Transactions - Property Rates | |
1500 | Receivables from Exchange Transactions - Waste Water Management | |
1600 | Receivables from Exchange Transactions - Waste Management | |
1700 | Receivables from Exchange Transactions - Property Rental Debtors | |
1810 | Interest on Arrear Debtor Accounts | |
1820 | Recoverable unauthorised, irregular or fruitless and wasteful Expenditure | |
1900 | Other | |
2000 | Total By Income Source | sum(1200, 1300, 1400, 1500, 1600, 1700, 1810, 1820, 1900) |
2100 | Debtors Age Analysis By Customer Group | |
2200 | Organs of State | |
2300 | Commercial | |
2400 | Households | |
2500 | Other | |
2600 | Total By Customer Group | sum(2200, 2300, 2400, 2500) |
Dimensions and their attributes
Amount Type (Non-aggregatable) | Whether this figure is actual, budgeted, audited etc. | ||
Code | amount_type.code | string | |
Label | amount_type.label | string | |
Customer Group | Debtor organs of state | ||
Code | customer_group.code | string | Code used by treasury |
Financial Period | The period this figure corresponds to, e.g. the month number of a month within the financial year, or the calendar year end of a financial year. | ||
Period | financial_period.period | integer | |
Financial Year (Non-aggregatable) | The calendar year falling at the end of the financial year | ||
Year End | financial_year_end.year | integer | |
Item (Non-aggregatable) | |||
Code | item.code | string | Code used by treasury |
Composition | item.composition | string | The composition of this item. Indicates how this item is composed of other items in this cube for the same mnuicipality, financial year and period, and amount type using item codes. |
Label | item.label | string | |
Position in Return Form | item.position_in_return_form | integer | The position of this item in the Section 71 Return form - useful for sorting line items to be ordered as they are in the return form to group related items and place them below the section headings and above section totals. |
Return Form Structure | item.return_form_structure | string | What structural role this line item has in the return form |
Municipality | Municipality demarcation details | ||
Demarcation Code | demarcation.code | string | Municipality code assigned by the Municipal Demarcation Board |
Name | demarcation.label | string | |
Period Length (Non-aggregatable) | The length of the period this figure corresponds to | ||
Length | period_length.length | string |
Aged Debtor Analysis (v2) - aged_debtor_v2
Analysis of debtors by age of debt. Does not include individual debtors. Section 71-level aggregation of mSCOA data from 2019-20 onwards replacing the original aged_debtor cube.
Items
Code | Item | Composition |
---|---|---|
1100 | Debtors Age Analysis By Income Source | |
1200 | Trade and Other Receivables from Exchange Transactions - Water | |
1300 | Trade and Other Receivables from Exchange Transactions - Electricity | |
1400 | Receivables from Non-exchange Transactions - Property Rates | |
1500 | Receivables from Exchange Transactions - Waste Water Management | |
1600 | Receivables from Exchange Transactions - Waste Management | |
1700 | Receivables from Exchange Transactions - Property Rental Debtors | |
1810 | Interest on Arrear Debtor Accounts | |
1820 | Recoverable unauthorised, irregular or fruitless and wasteful Expenditure | |
1900 | Other | |
2000 | Total By Income Source | sum(1200, 1300, 1400, 1500, 1600, 1700, 1810, 1820, 1900) |
2100 | Debtors Age Analysis By Customer Group | |
2200 | Organs of State | |
2300 | Commercial | |
2400 | Households | |
2500 | Other | |
2600 | Total By Customer Group | sum(2200, 2300, 2400, 2500) |
Dimensions and their attributes
Amount Type (Non-aggregatable) | Whether this figure is actual, budgeted, audited etc. | ||
Code | amount_type.code | string | |
Label | amount_type.label | string | |
Customer Group | Debtor organs of state | ||
Code | customer_group.code | string | Code used by treasury |
Financial Period | The period this figure corresponds to, e.g. the month number of a month within the financial year, or the calendar year end of a financial year. | ||
Period | financial_period.period | integer | |
Financial Year (Non-aggregatable) | The calendar year falling at the end of the financial year | ||
Year End | financial_year_end.year | integer | |
Item | |||
Code | item.code | string | Code used by treasury |
Composition | item.composition | string | The composition of this item. Indicates how this item is composed of other items in this cube for the same mnuicipality, financial year and period, and amount type using item codes. |
Label | item.label | string | |
Position in Return Form | item.position_in_return_form | integer | The position of this item in the Section 71 Return form - useful for sorting line items to be ordered as they are in the return form to group related items and place them below the section headings and above section totals. |
Return Form Structure | item.return_form_structure | string | What structural role this line item has in the return form |
Municipality | Municipality demarcation details | ||
Demarcation Code | demarcation.code | string | Municipality code assigned by the Municipal Demarcation Board |
Name | demarcation.label | string | |
Period Length (Non-aggregatable) | The length of the period this figure corresponds to | ||
Length | period_length.length | string |
Audit Opinions - audit_opinions
Outcomes of financial statement audits from the Auditor General.
Dimensions and their attributes
Financial Year (Non-aggregatable) | The calendar year falling at the end of the financial year | ||
Year End | financial_year_end.year | integer | |
Municipality | Municipality demarcation details | ||
Demarcation Code | demarcation.code | string | Municipality code assigned by the Municipal Demarcation Board |
Name | demarcation.label | string | |
Opinion | |||
Auditor General's Report URL | opinion.report_url | string | |
Code | opinion.code | string | |
Label | opinion.label | string |
Balance Sheet - bsheet
Statement of Financial Position. The assets, liabilities and capital of a municipality at a specific point in time.
Submitted to National Treasury using return forms: BS, BSR, BSAC, BSA.
Items
Code | Item | Composition |
---|---|---|
0100 | COMMUNITY WEALTH / EQUITY | |
0110 | Community Wealth | |
0600 | Housing Development Fund | |
0300 | Reserves | |
0500 | Accumulated Surplus/(Deficit) | |
0680 | Minorities Interests | |
0690 | Total Community Wealth / Equity | sum(0600, 0300, 0500, 0680) |
0700 | Non-Current Liabilities | |
0900 | Borrowing | |
0910 | Non-Current Provisions | |
1000 | Total Non-Current Liabilities | sum(0900, 0910) |
2300 | Current Liabilities | |
2400 | Consumer Deposits | |
2500 | Provisions | |
2600 | Creditors | |
2610 | Conditional Grants and Receipts | |
2700 | Bank Overdraft | |
2800 | Borrowing | |
1600 | Total Current Liabilities | sum(2400, 2500, 2600, 2610, 2700, 2800) |
1650 | Total Net Assets and Liabilities | sum(0690 1000, 1600) |
1100 | ASSETS | |
1200 | Non-Current Assets | |
1300 | Property Plant and Equipment | |
1400 | Non-Current Investments | |
1500 | Long-term Receivables | |
1401 | Investment Property | |
1402 | Investment in Associate | |
1403 | Agricultural | |
1404 | Biological | |
1405 | Intangible | |
1406 | Other Non-Current Assets | |
2900 | Total Non-Current Assets | sum(1300, 1400, 1500, 1401, 1402, 1403, 1404, 1405, 1406) |
1700 | Current Assets | |
2200 | Call Investment Deposits | |
1900 | Inventory | |
2000 | Consumer Debtors | |
2010 | Other Debtors | |
2100 | Current Portion Of Long-Term Receivables | |
1800 | Cash | |
2150 | Total Current Assets | sum(2200, 1900, 2000, 2010, 2100, 1800) |
3000 | Total Assets | sum(2900, 2150) |
Dimensions and their attributes
Amount Type (Non-aggregatable) | Whether this figure is actual, budgeted, audited etc. | ||
Code | amount_type.code | string | |
Label | amount_type.label | string | |
Financial Period | The period this figure corresponds to, e.g. the month number of a month within the financial year or the calendar year end of a financial year. | ||
Period | financial_period.period | integer | |
Financial Year (Non-aggregatable) | The calendar year falling at the end of the financial year | ||
Year End | financial_year_end.year | integer | |
Item (Non-aggregatable) | |||
Code | item.code | string | Code used by treasury |
Composition | item.composition | string | The composition of this item. Indicates how this item is composed of other items in this cube for the same mnuicipality, financial year and period, and amount type using item codes. |
Label | item.label | string | |
Position in Return Form | item.position_in_return_form | integer | The position of this item in the Section 71 Return form - useful for sorting line items to be ordered as they are in the return form to group related items and place them below the section headings and above section totals. |
Return Form Structure | item.return_form_structure | string | What structural role this line item has in the return form |
Municipality | Municipality demarcation details | ||
Demarcation Code | demarcation.code | string | Municipality code assigned by the Municipal Demarcation Board |
Name | demarcation.label | string | |
Period Length (Non-aggregatable) | The length of the period this figure corresponds to | ||
Length | period_length.length | string |
Capital Acquisition - capital
Purchase, repair and renewal of capital assets.
Submitted to National Treasury using return forms: CA, CAR, CAA, CAAA.
Items
Code | Item | Composition |
---|---|---|
0100 | INFRASTRUCTURE | |
0300 | Roads, Pavements, Bridges & Storm Water | |
0400 | Water Reservoirs & Reticulation | |
0500 | Car Parks, Bus Terminals and Taxi Ranks | |
0600 | Electricity Reticulation | |
0700 | Sewerage Purification & Reticulation | |
0800 | Housing | |
0900 | Street Lighting | |
1000 | Refuse sites | |
1100 | Gas | |
1200 | Other | |
1300 | Sub-total Infrastructure | sum(0300, 0400, 0500, 0600, 0700, 0800, 0900, 1000, 1100, 1200) |
1400 | COMMUNITY | |
1500 | Establishment of Parks & Gardens | |
1600 | Sportsfields | |
1700 | Community Halls | |
1800 | Libraries | |
1900 | Recreational Facilities | |
2000 | Clinics | |
2100 | Museums & Art Galleries | |
2200 | Other | |
2300 | Sub-total Community | sum(1500, 1600, 1700, 1800, 1900, 2000, 2100, 2200) |
2310 | HERITAGE ASSETS | |
2311 | Heritage Assets | |
2312 | Sub-total Heritage Assets | 2311 |
2320 | INVESTMENT PROPERTIES | |
2321 | Investment Properties | |
2322 | Sub-total Investment Properties | 2321 |
2400 | OTHER ASSETS | |
2500 | Other motor vehicles | |
2600 | Plant & equipment | |
2700 | Office equipment | |
2800 | Abattoirs | |
2900 | Markets | |
3000 | Airports | |
3100 | Security Measures | |
3110 | Civic Land and Buildings | |
3120 | Other Land and Buildings | |
3200 | Other | |
3300 | Sub-total Other Assets | sum(2500, 2600, 2700, 2800, 2900, 3000, 3100, 3110, 3120, 3200) |
3400 | SPECIALISED VEHICLES | |
3500 | Refuse | |
3600 | Fire | |
3700 | Conservancy | |
3800 | Ambulances | |
3900 | Buses | |
4000 | Sub-total Specialised Vehicles | sum(3500, 3600, 3700, 3800, 3900) |
4010 | AGRICULTURAL ASSETS | |
4011 | Agricultural Assets | |
4012 | Sub-total Agricultural Assets | 4011 |
4020 | BIOLOGICAL ASSETS | |
4021 | Biological Assets | |
4022 | Sub-total Biological Assets | 3021 |
4030 | INTANGIBLES | |
4031 | Intangibles | |
4032 | Sub-total Intangibles | 4031 |
4100 | TOTAL | sum(1300, 2300, 2312, 2322, 3300, 4000, 4012, 4022, 4032) |
4200 | SOURCE OF FINANCE | |
4300 | External Loans | |
4400 | Asset Financing Reserve | |
4500 | Surplus Cash | |
4600 | Public contributions/ donations | |
4700 | National Government Transfers and Grants | |
4701 | Provincial Government Transfers and Grants | |
4702 | District Municipality Transfers and Grants | |
4703 | Other Transfers and Grants | |
4800 | Leases | |
5000 | Other | |
5100 | TOTAL FINANCING | sum(4300, 4400, 4500, 4600, 4700, 4701, 4702, 4703, 4800, 5000) |
Dimensions and their attributes
Amount Type (Non-aggregatable) | Whether this figure is actual, budgeted, audited etc. | ||
Code | amount_type.code | string | |
Label | amount_type.label | string | |
Financial Period | The period this figure corresponds to, e.g. the month number of a month within the financial year or the calendar year end of a financial year. | ||
Period | financial_period.period | integer | |
Financial Year (Non-aggregatable) | The calendar year falling at the end of the financial year | ||
Year End | financial_year_end.year | integer | |
Function | Function of government classification adapted from International Monetary Fund's Government Financial Statistics manual. | ||
Code | function.code | string | Code used by treasury |
Label | function.label | string | |
Item (Non-aggregatable) | |||
Code | item.code | string | Code used by treasury |
Composition | item.composition | string | The composition of this item. Indicates how this item is composed of other items in this cube for the same mnuicipality, financial year and period, and amount type using item codes. |
Label | item.label | string | |
Position in Return Form | item.position_in_return_form | integer | The position of this item in the Section 71 Return form - useful for sorting line items to be ordered as they are in the return form to group related items and place them below the section headings and above section totals. |
Return Form Structure | item.return_form_structure | string | What structural role this line item has in the return form |
Municipality | Municipality demarcation details | ||
Demarcation Code | demarcation.code | string | Municipality code assigned by the Municipal Demarcation Board |
Name | demarcation.label | string | |
Period Length (Non-aggregatable) | The length of the period this figure corresponds to | ||
Length | period_length.length | string |
Capital Acquisition (v2) - capital_v2
Purchase, repair and renewal of capital assets. The assets, liabilities and capital of a municipality at a specific point in time. Section 71-level aggregation of mSCOA data from 2019-20 onwards replacing the original capital cube.
Items
Code | Item | Composition |
---|---|---|
0120 | Roads | |
0130 | Road Structures | |
0140 | Road Furniture | |
0150 | Capital Spares | |
0170 | Drainage Collection | |
0180 | Storm water Conveyance | |
0190 | Attenuation | |
0210 | Power Plants | |
0220 | HV Substations | |
0230 | HV Switching Station | |
0240 | HV Transmission Conductors | |
0250 | MV Substations | |
0260 | MV Switching Stations | |
0270 | MV Networks | |
0280 | LV Networks | |
0290 | Capital Spares | |
0310 | Dams and Weirs | |
0320 | Boreholes | |
0330 | Reservoirs | |
0340 | Pump Stations | |
0350 | Water Treatment Works | |
0360 | Bulk Mains | |
0370 | Distribution | |
0380 | Distribution Points | |
0390 | PRV Stations | |
0400 | Capital Spares | |
0420 | Pump Station | |
0430 | Reticulation | |
0440 | Waste Water Treatment Works | |
0450 | Outfall Sewers | |
0460 | Toilet Facilities | |
0470 | Capital Spares | |
0490 | Landfill Sites | |
0500 | Waste Transfer Stations | |
0510 | Waste Processing Facilities | |
0520 | Waste Drop-off Points | |
0530 | Waste Separation Facilities | |
0540 | Electricity Generation Facilities | |
0550 | Capital Spares | |
0570 | Rail Lines | |
0580 | Rail Structures | |
0590 | Rail Furniture | |
0600 | Drainage Collection | |
0610 | Storm water Conveyance | |
0620 | Attenuation | |
0630 | MV Substations | |
0640 | LV Networks | |
0650 | Capital Spares | |
0670 | Sand Pumps | |
0680 | Piers | |
0690 | Revetments | |
0700 | Promenades | |
0710 | Capital Spares | |
0730 | Data Centres | |
0740 | Core Layers | |
0750 | Distribution Layers | |
0760 | Capital Spares | |
0790 | Halls | |
0800 | Centres | |
0810 | Crèches | |
0820 | Clinics/Care Centres | |
0830 | Fire/Ambulance Stations | |
0840 | Testing Stations | |
0850 | Museums | |
0860 | Galleries | |
0870 | Theatres | |
0880 | Libraries | |
0890 | Cemeteries/Crematoria | |
0900 | Police | |
0910 | Parks | |
0920 | Public Open Space | |
0930 | Nature Reserves | |
0940 | Public Ablution Facilities | |
0950 | Markets | |
0960 | Stalls | |
0970 | Abattoirs | |
0980 | Airports | |
0990 | Taxi Ranks/Bus Terminals | |
1000 | Capital Spares | |
1020 | Indoor Facilities | |
1030 | Outdoor Facilities | |
1040 | Capital Spares | |
1060 | Monuments | |
1070 | Historic Buildings | |
1080 | Works of Art | |
1090 | Conservation Areas | |
1100 | Other Heritage | |
1130 | Improved Property | |
1140 | Unimproved Property | |
1150 | Non-revenue Generating | |
1160 | Improved Property | |
1170 | Unimproved Property | |
1200 | Municipal Offices | |
1210 | Pay/Enquiry Points | |
1220 | Building Plan Offices | |
1230 | Workshops | |
1240 | Yards | |
1250 | Stores | |
1260 | Laboratories | |
1270 | Training Centres |
Dimensions and their attributes
Amount Type (Non-aggregatable) | Whether this figure is actual, budgeted, audited etc. | ||
Code | amount_type.code | string | |
Label | amount_type.label | string | |
Capital Type (Non-aggregatable) | |||
Code | capital_type.code | string | Code used by treasury |
Label | capital_type.label | string | |
Financial Period | The period this figure corresponds to, e.g. the month number of a month within the financial year or the calendar year end of a financial year. | ||
Period | financial_period.period | integer | |
Financial Year (Non-aggregatable) | The calendar year falling at the end of the financial year | ||
Year End | financial_year_end.year | integer | |
Function | Function of government classification adapted from International Monetary Fund's Government Financial Statistics manual. | ||
Code | function.code | string | Code used by treasury |
Label | function.label | string | |
Item | |||
Code | item.code | string | Code used by treasury |
Label | item.label | string | |
Municipality | Municipality demarcation details | ||
Demarcation Code | demarcation.code | string | Municipality code assigned by the Municipal Demarcation Board |
Name | demarcation.label | string | |
Period Length (Non-aggregatable) | The length of the period this figure corresponds to | ||
Length | period_length.length | string |
Cash Flow - cflow
The movement of cash into and out of the municipality.
Submitted to National Treasury using return forms: CFB, CFR, CFA, CFAA.
Items
Code | Item | Composition |
---|---|---|
3000 | Cash Receipts by Source | |
3010 | Property rates | |
3020 | Property rates - penalties & collection charges | |
3030 | Service charges - electricity revenue | |
3040 | Service charges - water revenue | |
3050 | Service charges - sanitation revenue | |
3060 | Service charges - refuse revenue | |
3070 | Service charges - other | |
3080 | Rental of facilities and equipment | |
3090 | Interest earned - external investments | |
3100 | Interest earned - outstanding debtors | |
3110 | Dividends received | |
3120 | Fines | |
3130 | Licences and permits | |
3140 | Agency services | |
3150 | Transfer receipts - operational | |
3160 | Other revenue | |
3170 | Cash Receipts by Source | sum(3010, 3020, 3030, 3040, 3050, 3060, 3070, 3080, 3090, 3100, 3110, 3120, 3130, 3140, 3150, 3160) |
3180 | Other Cash Flows/Receipts by Source | |
3190 | Transfer receipts - capital | |
3200 | Contributions recognised - capital & Contributed assets | |
3210 | Proceeds on disposal of PPE | |
3220 | Short term loans | |
3230 | Borrowing long term/refinancing | |
3240 | Increase (decrease) in consumer deposits | |
3250 | Decrease (Increase) in non-current debtors | |
3260 | Decrease (increase) other non-current receivables | |
3270 | Decrease (increase) in non-current investments | |
3280 | Total Cash Receipts by Source | sum(3190, 3200, 3210, 3220, 3230, 3240, 3250, 3260, 3270, 3170) |
4000 | Cash Payments by Type | |
4010 | Employee related costs | |
4020 | Remuneration of councillors | |
4030 | Collection costs | |
4040 | Interest paid | |
4050 | Bulk purchases - Electricity | |
4060 | Bulk purchases - Water & Sewer | |
4070 | Other materials | |
4080 | Contracted services | |
4090 | Grants and subsidies paid - other municipalities | |
4100 | Grants and subsidies paid - other | |
4110 | General expenses | |
4120 | Cash Payments by Type | sum(4010, 4020, 4030, 4040, 4050, 4060, 4070, 4080, 4090, 4100, 4110) |
4130 | Other Cash Flows/Payments by Type | |
4140 | Capital assets | |
4150 | Repayment of borrowing | |
4160 | Other Cash Flows/Payments | |
4170 | Total Cash Payments by Type | sum(4140, 4150, 4160, 4120) |
4180 | Net Increase/(Decrease) in Cash Held | 3280 - 4170 |
4190 | Cash/cash equivalents at the month/year begin: | |
4200 | Cash/cash equivalents at the month/year end: | 4180 + 4190 |
2100 | - Consumer deposits repaid | |
0500 | - Grants and subsidies | |
1500 | - Salaries wages and allowances | |
1400 | Less : Payments | |
1100 | - Statutory Receipts (incl VAT) | |
0700 | - Investments redeemed | |
1800 | - Investments made | |
2000 | - Statutory Payments (incl VAT) | |
1600 | - Cash and creditor payments | |
0200 | Add : Receipts | |
0100 | Opening Cash Balance | |
0400 | - External loans received | |
2200 | - Other payments | |
1200 | - Other | |
2400 | Closing Balance | |
0800 | - Consumer deposits | |
1300 | Sub-Total (Receipts) | |
2300 | Sub-Total (Payments) | |
0900 | - Receipts from long-term debtors | |
1700 | - Capital payments | |
0600 | - Public donations | |
1900 | - External loans repaid | |
0300 | - Revenue receipts (incl consumer debtors) | |
1000 | - Insurance claims |
Dimensions and their attributes
Amount Type (Non-aggregatable) | Whether this figure is actual, budgeted, audited etc. | ||
Code | amount_type.code | string | |
Label | amount_type.label | string | |
Financial Period | The period this figure corresponds to, e.g. the month number of a month within the financial year or the calendar year end of a financial year. | ||
Period | financial_period.period | integer | |
Financial Year (Non-aggregatable) | The calendar year falling at the end of the financial year | ||
Year End | financial_year_end.year | integer | |
Item (Non-aggregatable) | |||
Code | item.code | string | Code used by treasury |
Composition | item.composition | string | The composition of this item. Indicates how this item is composed of other items in this cube for the same mnuicipality, financial year and period, and amount type using item codes. |
Label | item.label | string | |
Position in Return Form | item.position_in_return_form | integer | The position of this item in the Section 71 Return form - useful for sorting line items to be ordered as they are in the return form to group related items and place them below the section headings and above section totals. |
Return Form Structure | item.return_form_structure | string | What structural role this line item has in the return form |
Municipality | Municipality demarcation details | ||
Demarcation Code | demarcation.code | string | Municipality code assigned by the Municipal Demarcation Board |
Name | demarcation.label | string | |
Period Length (Non-aggregatable) | The length of the period this figure corresponds to | ||
Length | period_length.length | string |
Cash Flow (v2) - cflow_v2
The movement of cash into and out of the municipality. Section 71-level aggregation of mSCOA data from 2019-20 onwards replacing the original cflow cube.
Items
Code | Item | Composition |
---|---|---|
0100 | Receipts | |
0120 | Property rates | |
0130 | Service charges | |
0140 | Other revenue | |
0150 | Transfers and Subsidies - Operational | |
0160 | Transfers and Subsidies - Capital | |
0170 | Interest | |
0180 | Dividends | |
0190 | Payments | |
0200 | Suppliers and employees | |
0210 | Finance charges | |
0220 | Transfers and Subsidies | |
0230 | NET CASH FROM/(USED) OPERATING ACTIVITIES | |
0240 | CASH FLOWS FROM INVESTING ACTIVITIES | |
0250 | Receipts | |
0260 | Proceeds on disposal of PPE | |
0280 | Decrease (increase) in non-current receivables | |
0290 | Decrease (increase) in non-current investments | |
0300 | Payments | |
0310 | Capital assets | |
0320 | NET CASH FROM/(USED) INVESTING ACTIVITIES | |
0330 | CASH FLOWS FROM FINANCING ACTIVITIES | |
0340 | Receipts | |
0350 | Short term loans | |
0360 | Borrowing long term/refinancing | |
0370 | Increase (decrease) in consumer deposits | |
0380 | Payments | |
0390 | Repayment of borrowing | |
0400 | NET CASH FROM/(USED) FINANCING ACTIVITIES | |
0410 | NET INCREASE/ (DECREASE) IN CASH HELD | |
0420 | Cash/cash equivalents at the year begin: | |
0430 | Cash/cash equivalents at the year end: |
Dimensions and their attributes
Amount Type (Non-aggregatable) | Whether this figure is actual, budgeted, audited etc. | ||
Code | amount_type.code | string | |
Label | amount_type.label | string | |
Financial Period | The period this figure corresponds to, e.g. the month number of a month within the financial year or the calendar year end of a financial year. | ||
Period | financial_period.period | integer | |
Financial Year (Non-aggregatable) | The calendar year falling at the end of the financial year | ||
Year End | financial_year_end.year | integer | |
Item | |||
Code | item.code | string | Code used by treasury |
Composition | item.composition | string | The composition of this item. Indicates how this item is composed of other items in this cube for the same mnuicipality, financial year and period, and amount type using item codes. |
Label | item.label | string | |
Position in Return Form | item.position_in_return_form | integer | The position of this item in the Section 71 Return form - useful for sorting line items to be ordered as they are in the return form to group related items and place them below the section headings and above section totals. |
Return Form Structure | item.return_form_structure | string | What structural role this line item has in the return form |
Municipality | Municipality demarcation details | ||
Demarcation Code | demarcation.code | string | Municipality code assigned by the Municipal Demarcation Board |
Name | demarcation.label | string | |
Period Length (Non-aggregatable) | The length of the period this figure corresponds to | ||
Length | period_length.length | string |
Conditional Grants - conditional_grants
Details of grants received from national government.
Submitted to National Treasury using return forms: Form for each grant.
Dimensions and their attributes
Amount Type (Non-aggregatable) | Whether this figure is actual, budgeted, audited etc. | ||
Code | amount_type.code | string | |
Label | amount_type.label | string | |
Financial Period | The period this figure corresponds to, e.g. the month number of a month within the financial year or the calendar year end of a financial year. | ||
Period | financial_period.period | integer | |
Financial Year (Non-aggregatable) | The calendar year falling at the end of the financial year | ||
Year End | financial_year_end.year | integer | |
Grant | |||
Code | grant.code | string | |
Label | grant.label | string | |
Municipality | Municipality demarcation details | ||
Demarcation Code | demarcation.code | string | Municipality code assigned by the Municipal Demarcation Board |
Name | demarcation.label | string | |
Period Length (Non-aggregatable) | The length of the period this figure corresponds to | ||
Length | period_length.length | string |
Demarcation Changes - demarcation_changes
Changes to municipality demarcation where at least one municipality was disestablished or newly-established
Dimensions and their attributes
New Demarcation Transition Code | new_code_transition.code | string | The change that occurred to the new municipality for this particular demarcation change. |
Date | The date the change took place | ||
Date | date.date | date | |
New demarcation | New municipality demarcation details | ||
Demarcation Code | new_demarcation.code | string | Municipality code assigned by the Municipal Demarcation Board |
Old demarcation | Old municipality demarcation details | ||
Demarcation Code | old_demarcation.code | string | Municipality code assigned by the Municipal Demarcation Board |
Old demarcation | Old municipality demarcation details | ||
Old Demarcation Transition Code | old_code_transition.code | string | The change that occurred to the old municipality for this particular demarcation change. |
Financial Position (v2) - financial_position_v2
Statement of Financial Position. The assets, liabilities and capital of a municipality at a specific point in time. Section 71-level aggregation of mSCOA data from 2019-20 onwards replacing the original bsheet cube.
Items
Code | Item | Composition |
---|---|---|
0100 | ASSETS | |
0110 | Current assets | |
0120 | Cash and cash equivalents | |
0130 | Trade and other receivables from exchange transactions | |
0140 | Receivables from non-exchange transactions | |
0150 | Current portion of non-current receivables | |
0160 | Inventory | |
0170 | VAT | |
0180 | Other current assets | |
0190 | Non current assets | |
0200 | Long-term receivables | |
0210 | Investments | |
0220 | Investment property | |
0230 | Property, plant and equipment | |
0240 | Biological assets | |
0250 | Living and non-living resources | |
0260 | Heritage assets | |
0270 | Intangible assets | |
0280 | Trade and other receivables from exchange transactions | |
0290 | Non-current receivables from non-exchange transactions | |
0300 | Other non-current assets | |
0310 | LIABILITIES | |
0320 | Current liabilities | |
0330 | Bank overdraft | |
0340 | Borrowing | |
0350 | Bank overdraft | |
0360 | Financial liabilities | |
0370 | Consumer deposits | |
0380 | Trade and other payables from exchange transactions | |
0390 | Trade and other payables from non-exchange transactions | |
0400 | Provision | |
0410 | VAT | |
0420 | Other current liabilities | |
0430 | TOTAL LIABILITIES | |
0440 | NET ASSETS | |
0450 | Financial liabilities | |
0460 | Provision | |
0470 | Long term portion of trade payables | |
0480 | Other non-current liabilities | |
0490 | Total non current liabilities | |
0500 | TOTAL LIABILITIES | |
0510 | NET ASSETS | |
0530 | Accumulated surplus/(deficit) | |
0540 | Reserves and funds | |
0550 | Other | |
0560 | TOTAL COMMUNITY WEALTH/EQUITY |
Dimensions and their attributes
Amount Type (Non-aggregatable) | Whether this figure is actual, budgeted, audited etc. | ||
Code | amount_type.code | string | |
Label | amount_type.label | string | |
Financial Period | The period this figure corresponds to, e.g. the month number of a month within the financial year or the calendar year end of a financial year. | ||
Period | financial_period.period | integer | |
Financial Year (Non-aggregatable) | The calendar year falling at the end of the financial year | ||
Year End | financial_year_end.year | integer | |
Item | |||
Code | item.code | string | Code used by treasury |
Composition | item.composition | string | The composition of this item. Indicates how this item is composed of other items in this cube for the same mnuicipality, financial year and period, and amount type using item codes. |
Label | item.label | string | |
Position in Return Form | item.position_in_return_form | integer | The position of this item in the Section 71 Return form - useful for sorting line items to be ordered as they are in the return form to group related items and place them below the section headings and above section totals. |
Return Form Structure | item.return_form_structure | string | What structural role this line item has in the return form |
Municipality | Municipality demarcation details | ||
Demarcation Code | demarcation.code | string | Municipality code assigned by the Municipal Demarcation Board |
Name | demarcation.label | string | |
Period Length (Non-aggregatable) | The length of the period this figure corresponds to | ||
Length | period_length.length | string |
Grants (v2) - grants_v2
Details of grants received from national and provincial government. Section 71-level aggregation of mSCOA data from 2019-20 onwards replacing the original conditional_grants cube, adding Equitable Share Grant (ESG).
Dimensions and their attributes
Amount Type (Non-aggregatable) | Whether this figure is actual, budgeted, audited etc. | ||
Code | amount_type.code | string | |
Label | amount_type.label | string | |
Financial Period | The period this figure corresponds to, e.g. the month number of a month within the financial year or the calendar year end of a financial year. | ||
Period | financial_period.period | integer | |
Financial Year (Non-aggregatable) | The calendar year falling at the end of the financial year | ||
Year End | financial_year_end.year | integer | |
Grant | |||
Code | grant.code | string | |
Label | grant.label | string | |
Municipality | Municipality demarcation details | ||
Demarcation Code | demarcation.code | string | Municipality code assigned by the Municipal Demarcation Board |
Name | demarcation.label | string | |
Period Length (Non-aggregatable) | The length of the period this figure corresponds to | ||
Length | period_length.length | string |
Income and Expenditure - incexp
Statement of Financial Performance. How a municipality has spent money and received income.
Submitted to National Treasury using return forms: OSB, OSR, OSA, OSAA.
Items
Code | Item | Composition |
---|---|---|
0100 | OPERATING REVENUE | |
0200 | Property Rates | |
0300 | Property Rates - Penalties And Collection Charges | |
0400 | Service Charges | |
0700 | Rent Of Facilities And Equipment | |
0800 | Interest Earned - External Investments | |
1000 | Interest Earned - Outstanding Debtors | |
1100 | Dividends Received | |
1300 | Fines | |
1400 | Licenses and Permits | |
1500 | Agency Services | |
1600 | Transfers Recognised - Operating | |
1610 | Transfers Recognised - Capital | |
1700 | Other Revenue | |
1800 | Gain On Disposal Of Property, Plant & Equipment | |
1900 | Total Operating Revenue Generated | sum(0200, 0300, 0400, 0700, 0800, 1000, 1100, 1300, 1400, 1500, 1600, 1610, 1700, 1800) |
2000 | Less Revenue Foregone | |
2100 | Total Direct Operating Revenue | 1900 - 2000 or 1900 + 2000 depending on the sign on 2000 such that 2100 < 1900 |
2200 | INTERNAL TRANSFERS – (must net out with corresp. items under | |
2300 | Interest Received - Internal Loans | |
2500 | Internal Recoveries (Activity Based Costing Etc) | |
2600 | Dividends Received - Internal (From Municipal Entities) | |
2700 | Total Indirect Operating Revenue | sum(2300, 2500, 2600) |
2800 | Total Operating Revenue | sum(2100, 2700) |
2900 | OPERATING EXPENDITURE | |
3000 | Employee Related Costs - Wages & Salaries | |
3100 | Employee Related Costs - Social Contributions | |
3200 | Less Employee Costs Capitalised | |
3300 | Less Employee Costs Allocated To Other Operating Items | |
3400 | Remuneration Of Councillors | |
3500 | Debt Impairment | |
3600 | Collection Costs | |
3700 | Depreciation and Asset Impairment | |
3900 | Interest Expense - External Borrowings | |
4000 | Redemption Payments - External Borrowings (Gamap To Remove) | |
4100 | Bulk Purchases | |
4110 | Other Materials | |
4200 | Contracted Services | |
4300 | Grants and Subsidies | |
4400 | Other Expenditure | |
4500 | Loss On Disposal Of Property, Plant & Equipment | |
4550 | Contributions To/(From) Provisions | |
4600 | Total Direct Operating Expenditure | sum(3000, 3100, 3200, 3300, 3400, 3500, 3600, 3700, 3900, 4000, 4100, 4110, 4200, 4300, 4400, 4500, 4550) |
4700 | INTERNAL TRANSFERS - (must net out with corresp. items under | |
4800 | Interest - Internal Borrowings | |
5000 | Internal Charges (Activity Based Costing Etc) | |
5010 | Contributed Assets | |
5100 | Total Indirect Operating Expenditure | sum(4800, 5000, 5010) |
5200 | Total Operating Expenditure | sum(4600, 5100) |
5300 | SURPLUS | |
5400 | Operating Surplus / (Deficit) - Total Revenue Less Total Exp | 2800 - 5200 or 2800 + 5200 depending on the sign on 5200 such that 5400 < 2800 |
5500 | Taxation | |
5600 | Operating Surplus / (Deficit) - After Tax | 5400 - 5500 or 5400 + 5500 depending on the sign on 5500 such that 5600 < 5400 |
5800 | Cross Subsidisation | |
6600 | Plus Interests In Entities Not Wholly Owned | |
5900 | Surplus / (Deficit) After Tax, Cross Subsidies & Share Of As | sum(5600, 5800, 6600) |
6200 | OTHER ADJUSTMENTS AND TRANSFERS | |
5700 | Dividends Paid (Municipal Entities Only) | |
6210 | Asset Financing Reserve (Afr) | |
6220 | Housing Development Fund | |
6230 | Depreciation Reserve Ex Afr | |
6240 | Depreciation Reserve Ex Govt Grants | |
6250 | Depreciation Reserve Ex Donations And Contributions | |
6260 | Self-Insurance Reserve | |
6270 | Revaluation Reserve | |
6280 | Other | |
6700 | Change To Unappropriated Surplus / (Accumulated Deficit) | sum(5900, 5700, 6210, 6220, 6230, 6240, 6250, 6260, 6270, 6280) |
Dimensions and their attributes
Amount Type (Non-aggregatable) | Whether this figure is actual, budgeted, audited etc. | ||
Code | amount_type.code | string | |
Label | amount_type.label | string | |
Financial Period | The period this figure corresponds to, e.g. the month number of a month within the financial year or the calendar year end of a financial year. | ||
Period | financial_period.period | integer | |
Financial Year (Non-aggregatable) | The calendar year falling at the end of the financial year | ||
Year End | financial_year_end.year | integer | |
Government Function | Function of government classification adapted from International Monetary Fund's (IMF) Government Financial Statistics (GFS) manual | ||
Category Label | function.category_label | string | |
Code | function.code | string | Code used by treasury |
Label | function.label | string | |
Subcategory Label | function.subcategory_label | string | |
Item (Non-aggregatable) | |||
Code | item.code | string | Code used by treasury |
Composition | item.composition | string | The composition of this item. Indicates how this item is composed of other items in this cube for the same mnuicipality, financial year and period, and amount type using item codes. |
Label | item.label | string | |
Position in Return Form | item.position_in_return_form | integer | The position of this item in the Section 71 Return form - useful for sorting line items to be ordered as they are in the return form to group related items and place them below the section headings and above section totals. |
Return Form Structure | item.return_form_structure | string | What structural role this line item has in the return form |
Municipality | Municipality demarcation details | ||
Demarcation Code | demarcation.code | string | Municipality code assigned by the Municipal Demarcation Board |
Name | demarcation.label | string | |
Period Length (Non-aggregatable) | The length of the period this figure corresponds to | ||
Length | period_length.length | string |
Income and Expenditure (v2) - incexp_v2
Statement of Financial Performance. How a municipality has spent money and received income. Section 71-level aggregation of mSCOA data from 2019-20 onwards replacing the original incexp cube.
Items
Code | Item | Composition |
---|---|---|
0200 | Property rates | |
0300 | Service charges - Electricity | |
0400 | Service charges - Water | |
0500 | Service charges - Waste Water Management | |
0600 | Service charges - Waste Management | |
0700 | Sale of Goods and Rendering of Services | |
0800 | Agency services | |
0900 | Interest | |
1000 | Interest earned from Receivables | |
1100 | Interest earned from Current and Non Current Assets | |
1200 | Dividends | |
1300 | Rent on Land | |
1400 | Rental from Fixed Assets | |
1500 | Licence and permits | |
1600 | Operational Revenue | |
1700 | Gains on disposal of PPE | |
1800 | Property rates | |
1900 | Surcharges and Taxes | |
2000 | Fines, penalties and forfeits | |
2100 | Licences or permits | |
2200 | Transfer and subsidies - Operational | |
2300 | Interest | |
2400 | Fuel Levy | |
2500 | Operational Revenue | |
2600 | Gains on disposal of Assets | |
2700 | Other Gains | |
2800 | Discontinued Operations | |
2900 | Other expenditure | |
3000 | Loss on disposal of PPE | |
3100 | Employee related costs | |
3200 | Remuneration of councillors | |
3300 | Bulk purchases - electricity | |
3400 | Inventory consumed | |
3500 | Debt impairment | |
3600 | Depreciation and amortisation | |
3700 | Interest | |
3800 | Contracted services | |
3900 | Transfers and subsidies | |
4000 | Irrecoverable debts written off | |
4100 | Operational costs | |
4200 | Losses on disposal of Assets | |
4300 | Other Losses | |
4600 | Transfers and subsidies - capital (monetary allocations) | |
4700 | Transfers and subsidies - capital (in-kind) | |
4900 | Income Tax | |
5100 | Share of Surplus/Deficit attributable to Joint Venture | |
5200 | Share of Surplus/Deficit attributable to Minorities | |
5400 | Share of Surplus/Deficit attributable to Associate | |
5500 | Intercompany/Parent subsidiary transactions |
Dimensions and their attributes
Amount Type (Non-aggregatable) | Whether this figure is actual, budgeted, audited etc. | ||
Code | amount_type.code | string | |
Label | amount_type.label | string | |
Financial Period | The period this figure corresponds to, e.g. the month number of a month within the financial year or the calendar year end of a financial year. | ||
Period | financial_period.period | integer | |
Financial Year (Non-aggregatable) | The calendar year falling at the end of the financial year | ||
Year End | financial_year_end.year | integer | |
Government Function | Function of government classification adapted from International Monetary Fund's (IMF) Government Financial Statistics (GFS) manual | ||
Category Label | function.category_label | string | |
Code | function.code | string | Code used by treasury |
Label | function.label | string | |
Subcategory Label | function.subcategory_label | string | |
Item | |||
Code | item.code | string | Code used by treasury |
Composition | item.composition | string | The composition of this item. Indicates how this item is composed of other items in this cube for the same mnuicipality, financial year and period, and amount type using item codes. |
Label | item.label | string | |
Position in Return Form | item.position_in_return_form | integer | The position of this item in the Section 71 Return form - useful for sorting line items to be ordered as they are in the return form to group related items and place them below the section headings and above section totals. |
Return Form Structure | item.return_form_structure | string | What structural role this line item has in the return form |
Municipality | Municipality demarcation details | ||
Demarcation Code | demarcation.code | string | Municipality code assigned by the Municipal Demarcation Board |
Name | demarcation.label | string | |
Period Length (Non-aggregatable) | The length of the period this figure corresponds to | ||
Length | period_length.length | string |
Municipalities - municipalities
General information about the municipality including its geographic location and contact details provided to the National Treasury
Dimensions and their attributes
Municipality | |||
Category | municipality.category | string | |
Demarcation Code | municipality.demarcation_code | string | |
Fax Number | municipality.fax_number | string | |
Long Name | municipality.long_name | string | |
MIIF Category | municipality.miif_category | string | |
Name | municipality.name | string | |
Parent Municipality Code | municipality.parent_code | string | |
Phone Number | municipality.phone_number | string | |
Postal Address part 1 | municipality.postal_address_1 | string | |
Postal Address part 2 | municipality.postal_address_2 | string | |
Postal Address part 3 | municipality.postal_address_3 | string | |
Province Code | municipality.province_code | string | |
Province Name | municipality.province_name | string | |
Street Address part 1 | municipality.street_address_1 | string | |
Street Address part 2 | municipality.street_address_2 | string | |
Street Address part 3 | municipality.street_address_3 | string | |
Street Address part 4 | municipality.street_address_4 | string | |
URL | municipality.url | string |
Municipal Officials - officials
Names and contact information for high level municipality staff
Dimensions and their attributes
Contact Details | |||
Email Address | contact_details.email_address | string | |
Fax Number | contact_details.fax_number | string | |
Name | contact_details.name | string | |
Phone Number | contact_details.phone_number | string | |
Title | contact_details.title | string | |
Municipality | |||
Demarcation Code | municipality.demarcation_code | string | |
Role | |||
Role | role.role | string |
Repairs and Maintenance - repmaint
Money spent on repairs and maintenance of assets.
Items
Code | Item | Composition |
---|---|---|
5001 | Employee Related Costs | |
5002 | Other Materials | |
5003 | Contracted Services | |
5004 | Other Expenditure | |
5005 | Total Repairs and Maintenance Expenditure | sum(5001, 5002, 5003, 5004) |
Dimensions and their attributes
Amount Type (Non-aggregatable) | Whether this figure is actual, budgeted, audited etc. | ||
Code | amount_type.code | string | |
Label | amount_type.label | string | |
Financial Period | The period this figure corresponds to, e.g. the month number of a month within the financial year or the calendar year end of a financial year. | ||
Period | financial_period.period | integer | |
Financial Year (Non-aggregatable) | The calendar year falling at the end of the financial year | ||
Year End | financial_year_end.year | integer | |
Item (Non-aggregatable) | |||
Code | item.code | string | Code used by treasury |
Composition | item.composition | string | The composition of this item. Indicates how this item is composed of other items in this cube for the same mnuicipality, financial year and period, and amount type using item codes. |
Label | item.label | string | |
Position in Return Form | item.position_in_return_form | integer | The position of this item in the Section 71 Return form - useful for sorting line items to be ordered as they are in the return form to group related items and place them below the section headings and above section totals. |
Return Form Structure | item.return_form_structure | string | What structural role this line item has in the return form |
Municipality | Municipality demarcation details | ||
Demarcation Code | demarcation.code | string | Municipality code assigned by the Municipal Demarcation Board |
Name | demarcation.label | string | |
Period Length (Non-aggregatable) | The length of the period this figure corresponds to | ||
Length | period_length.length | string |
Repairs and Maintenance (v2) - repmaint_v2
Money spent on repairs and maintenance of assets. How a municipality has spent money and received income. Section 71-level aggregation of mSCOA data from 2019-20 onwards replacing the original repmaint cube.
Items
Code | Item | Composition |
---|---|---|
5001 | Employee Related Costs | |
5002 | Other Materials | |
5003 | Contracted Services | |
5004 | Other Expenditure |
Dimensions and their attributes
Amount Type (Non-aggregatable) | Whether this figure is actual, budgeted, audited etc. | ||
Code | amount_type.code | string | |
Label | amount_type.label | string | |
Financial Period | The period this figure corresponds to, e.g. the month number of a month within the financial year or the calendar year end of a financial year. | ||
Period | financial_period.period | integer | |
Financial Year (Non-aggregatable) | The calendar year falling at the end of the financial year | ||
Year End | financial_year_end.year | integer | |
Item | |||
Code | item.code | string | Code used by treasury |
Composition | item.composition | string | The composition of this item. Indicates how this item is composed of other items in this cube for the same mnuicipality, financial year and period, and amount type using item codes. |
Label | item.label | string | |
Position in Return Form | item.position_in_return_form | integer | The position of this item in the Section 71 Return form - useful for sorting line items to be ordered as they are in the return form to group related items and place them below the section headings and above section totals. |
Return Form Structure | item.return_form_structure | string | What structural role this line item has in the return form |
Municipality | Municipality demarcation details | ||
Demarcation Code | demarcation.code | string | Municipality code assigned by the Municipal Demarcation Board |
Name | demarcation.label | string | |
Period Length (Non-aggregatable) | The length of the period this figure corresponds to | ||
Length | period_length.length | string |
Unauthorised, Irregular, Fruitless and Wasteful Expenditure - uifwexp
Specific expenditure amounts from audited financial results, recorded in the notes to the annual financial statements.
Items
Code | Item | Composition |
---|---|---|
fruitless | Fruitless and Wasteful Expenditure | |
irregular | Irregular Expenditure | |
unauthorised | Unauthorised Expenditure |
Dimensions and their attributes
Financial Year (Non-aggregatable) | The calendar year falling at the end of the financial year | ||
Year End | financial_year_end.year | integer | |
Item (Non-aggregatable) | |||
Code | item.code | string | 'unauthorised', 'irregular' or 'fruitless' which stands for Fruitless and Wasteful |
Label | item.label | string | |
Municipality | Municipality demarcation details | ||
Demarcation Code | demarcation.code | string | Municipality code assigned by the Municipal Demarcation Board |
Name | demarcation.label | string |
Bulk Downloads
aged creditor facts v1 (Metadata) | ||
All |
||
aged creditor facts v2 (Metadata) | ||
All |
||
aged debtor facts v1 (Metadata) | ||
2012 |
||
2013 |
||
2014 |
||
2015 |
||
2016 |
||
2017 |
||
2018 |
||
2019 |
||
aged debtor facts v2 (Metadata) | ||
2021 |
||
2020 |
||
2022 |
||
2023 |
||
2024 |
||
audit opinion facts (Metadata) | ||
All |
||
bsheet facts v1 (Metadata) | ||
2009 |
||
2010 |
||
2011 |
||
2012 |
||
2013 |
||
2014 |
||
2015 |
||
2016 |
||
2017 |
||
2018 |
||
2019 |
||
2020 |
||
capital facts v1 (Metadata) | ||
2009 |
||
2010 |
||
2011 |
||
2012 |
||
2013 |
||
2014 |
||
2015 |
||
2016 |
||
2017 |
||
2018 |
||
2019 |
||
2020 |
||
capital facts v2 (Metadata) | ||
2019 |
||
2021 |
||
2020 |
||
2022 |
||
2018 |
||
cflow facts v1 (Metadata) | ||
2009 |
||
2010 |
||
2011 |
||
2012 |
||
2013 |
||
2014 |
||
2015 |
||
2016 |
||
2017 |
||
2018 |
||
2019 |
||
2020 |
||
cflow facts v2 (Metadata) | ||
2019 |
||
2021 |
||
2020 |
||
2022 |
||
2018 |
||
conditional grant facts v1 (Metadata) | ||
2013 |
||
2014 |
||
2015 |
||
2016 |
||
2017 |
||
2018 |
||
2019 |
||
financial position facts v2 (Metadata) | ||
2019 |
||
2021 |
||
2020 |
||
2022 |
||
2018 |
||
grant facts v2 (Metadata) | ||
2021 |
||
2020 |
||
2022 |
||
2023 |
||
2024 |
||
incexp facts v1 (Metadata) | ||
2009 |
||
2010 |
||
2011 |
||
2012 |
||
2013 |
||
2014 |
||
2015 |
||
2016 |
||
2017 |
||
2018 |
||
2019 |
||
2020 |
||
incexp facts v2 (Metadata) | ||
2018 |
||
2019 |
||
2021 |
||
2020 |
||
municipal staff contacts (Metadata) | ||
All |
||
repairs maintenance facts v1 (Metadata) | ||
All |
||
repairs maintenance facts v2 (Metadata) | ||
All |
||
uifwexp facts (Metadata) | ||
All |
||
uifwexp facts v1 (Metadata) | ||
All |
Using the API
The API endpoint is http://municipaldata.treasury.gov.za/api
The API only supports GET
requests. Successful responses have response code 200 and are in JSON format.
How the API works
The API is a simple OLAP-style interface.
Each dataset (income and expenditure, balance sheet, etc.) is called a cube. You can think of a cube as a simple (but very big) spreadsheet. Each fact in the cube is a row in our spreadsheet that has dimensions and measures. Dimensions are labels such as municipality, year, month or function code. Measures are monetary amounts in South African Rands.
You can use the API to list available cubes and get metadata about a cube that describes its attributes and values. You can also use the API to filter or cut, sort and aggregate facts in a cube.
The API is very similar to a pivot table in a spreadsheet. It lets you slice, dice and aggregate values to make sense of a vast amount of information.
Pagination
Pagination is important to make sure the client and server handle a mangeable amount of data at a time. The result of a query may be broken up into multiple pages. By default, a maximum of 10 000 items are returned per page. The response includes information on the page size,
current page, and total number of results to assist with pagination. If the page size is smaller than the total_fact_count
or total_cell_count
of a given query (depending on the kind of query), you might want to request the remaining pages and collect the results client-side.
{ "page": 2, "page_size": 100, "total_member_count": 152, ... }
You can paginate through results using these query parameters:
Parameter | Default | Description |
---|---|---|
pagesize | 10000 | Maximum number of items per page. |
page | 1 | The page number to fetch, starting with page 1. |
Cut (filter)
... "cell": [ { "ref": "item.code", "value": "3010", "operator": ":" }, { "ref": "municipality.code", "value": "BUF", "operator": ":" }, ], "cells": [ { "item.code": "3010", "amount.sum": 6256185, "financial_period.period": 8 }, ...
Use the parameter cut
with values key:value
to restrict values to a subset of the cube. This is called cutting the cube into cells. Separate multiple cuts with vertical bar e.g. cut=item.code:"3010"|municipality.code:"BUF"
String values must be quoted with double quotes
GET /cubes/<name>/facts?cut=item.code:"3010"|municipality.code:"BUF"
Key | Type | Example value |
---|---|---|
dimension.attribute | integer | 11 |
string | "BUF" |
Sorting
Use the parameter order
to sort the returned values. Separate multiple sorting dimensions with comma e.g. order=financial_year_end.year:desc,amount_type.code:asc
The results will be primarily sorted according to the first argument; within that, it is sorted according to the second argument, etc. That means it's equivalent to a stable sort performed in reverse order of the arguments.
Queries on Cubes
List Cubes
GET https://municipaldata.treasury.gov.za/api/cubes
(loading...)
Lists all available cubes (datasets).
Get a Cube's Model
GET https://municipaldata.treasury.gov.za/api/cubes/<name>/model
GET https://municipaldata.treasury.gov.za/api/cubes/incexp/model
GET /cubes/incexp/model { "status": "ok", "model": { "description": "a.k.a. Financial Performance. Financial obligations in and out.", "update_cycle": "quarter", "last_updated": "2016-06", "dimensions": { "function": { "description": "Function", "hierarchy": "function", "key_attribute": "code", "key_ref": "function.code", "cardinality": 55, "label_attribute": "desc", "cardinality_class": "medium", "label_ref": "function.desc", "label": "Function", "attributes": { "code": { "column": "function_cde", "ref": "function.code", "type": "string", "description": "some description", "label": "Code" }, "desc": { "column": "function_desc", "ref": "function.desc", "type": "string", "description": "some description", "label": "Description" } }, "ref": "function" }, ...
Returns a description of the cube. The metadata includes attributes, measures, dimensions, aggregates etc.
update_cycle
indicates how frequently you can expect later data and corrections in this dataset
last_updated
is a partial ISO 8601 date indicating the date of the latest update. E.g. 2016-06 means the financial year 2015-2016 4th Quarter updates have been applied, which happen some time after it's actually 2016-06. Note that due to the time it takes to verify and submit data, the latest data in a given dataset lags behind that dataset's date.
List Facts
GET /cubes/incexp/facts?pagesize=2 { "total_fact_count": 463171, "status": "ok", "page": 1, "fields": [ "period_length.length", "financial_year_end.year", "financial_period.period", "function.desc", "function.code", "amount_type.desc", "amount_type.code", "incexp.desc", "incexp.code", "demarcation.desc", "demarcation.code", "amount" ], "cell": [], "page_size": 2, "order": [], "data": [ { "financial_year_end.year": 2015, "amount_type.code": "ACT", "amount": null, "incexp.code": "1500", "amount_type.desc": "Actual", "demarcation.desc": "Buffalo City", "function.code": "191", "incexp.desc": "Agency Services", "period_length.length": "month", "demarcation.code": "BUF", "function.desc": "Budget & Treasury Office/Not Required", "financial_period.period": "01" }, { "financial_year_end.year": 2015, "amount_type.code": "ACT", "amount": null, "incexp.code": "1500", "amount_type.desc": "Actual", "demarcation.desc": "City of Cape Town", "function.code": "191", "incexp.desc": "Agency Services", "period_length.length": "month", "demarcation.code": "CPT", "function.desc": "Budget & Treasury Office/Not Required", "financial_period.period": "01" } ] }
GET https://municipaldata.treasury.gov.za/api/cubes/<name>/facts
GET https://municipaldata.treasury.gov.za/api/cubes/incexp/facts?pagesize=5
Get individual entries from a cube in a non-aggregated form.
Query String Parameters
Parameter | Default | Description |
---|---|---|
cut | See filters (cut) | |
page | See pagination | |
pagesize | See pagination | |
order | See sorting | |
format | json |
Determines whether output is in json or csv format. |
List Members
GET /cubes/incexp/members/demarcation?pagesize=3 { "status": "ok", "page": 1, "fields": [ "demarcation.desc", "demarcation.code" ], "cell": [], "page_size": 10000, "total_member_count": 3, "data": [ { "demarcation.code": "BUF", "demarcation.desc": "Buffalo City" }, { "demarcation.code": "CPT", "demarcation.desc": "City of Cape Town" }, { "demarcation.code": "JHB", "demarcation.desc": "City of Johannesburg" }, ], "order": [] }
GET https://municipaldata.treasury.gov.za/api/cubes/<name>/members/<member_name>
GET https://municipaldata.treasury.gov.za/api/cubes/incexp/members/demarcation
GET https://municipaldata.treasury.gov.za/api/cubes/incexp/members/demarcation.label
Get distinct values for a given member (dimension) of a cube. For example, all the suppliers in a procurement dataset.
URL Parameters
Parameter | Description |
---|---|
name | Name of the cube |
member_name | Name of of a dimension or attribute |
Query String Parameters
Parameter | Default | Description |
---|---|---|
cut | See filters (cut) | |
page | See pagination | |
pagesize | See pagination | |
order | See sorting | |
format | json | Determines whether output is in json or csv format. |
Aggregating Facts
GET /api/cubes/incexp/aggregate { "cell": [], "status": "ok", "page_size": 10000, "attributes": [], "total_cell_count": 1, "cells": [ { "amount.sum": 17427626659163, "_count": 463171 } ], "order": [], "aggregates": [ "_count", "amount.sum" ], "page": 1, "summary": { "amount.sum": 17427626659163, "_count": 463171 } }
GET https://municipaldata.treasury.gov.za/api/cubes/<name>/aggregate
Returns aggregate views of the facts in a cube.
Query String Parameters
Parameter | Default | Description |
---|---|---|
cut | See filters (cut) | |
aggregates | _count and the sum of each measure. |
Aggregates to include. Cube Measure refs followed by .sum are currently supported, separated by | |
drilldown | none | Drilldowns to aggregate by. Dimension attribute refs separated by | |
page | See pagination | |
pagesize | See pagination | |
order | See sorting | |
format | json |
Determines whether output is in json or csv format. |
Non-aggregatable Dimensions
Non-aggregatable dimensions are dimensions where it does not make sense to aggregate over the categories in the dimension.
For example, it does not make sense to aggregate over all financial years when there is no filter on financial years because the number of years might change when additional data is added. You would be summing together an arbitrary number of years.
It also does not make sense to aggregate over amount types since summing together a budget and an actual figure makes no sense.
The correct way to query cubes with non-aggregatable dimensions is to either include that dimension as a drilldown (disaggregate) or as a filter.
For example, filter by financial year being 2017 and drilldown by amount type, to compare budgeted and actual figures for that year.
Best Practises
For the best possible experience using the API, follow these best practises:
- Use pagination to get all the requested data
- Request only the fields you need to minimise the data clients need to download
- Look for an explanation message in error responses. If the response doesn't help you to resolve the issue, get in touch with us
Getting Help
You can get help with the API at helpdesk@municipalmoney.gov.za