Budgets and spending profile
How government budgets and spending are described so figures can be compared across agencies and years.
Schemas: 3
Code lists: 4
Standards: schema.org, Fiscal Data Package, COFOG, GFSM 2014
Amount
A sum of money, as a schema:MonetaryAmount. Currency is required on every amount rather than inherited from the budget, because amounts get copied out of their document and a figure that silently assumes a currency is how conversion errors happen.
| Field | Type | Definition | Required |
|---|---|---|---|
@type |
"MonetaryAmount" |
Always MonetaryAmount, a real schema.org type. |
Yes |
value |
number |
The numeric amount, in the units currency names. |
Yes |
currency |
string |
ISO 4217. | Yes |
validFrom |
string |
When this amount takes effect, for a value that changes over time. | No |
validThrough |
string |
When this amount stops applying. | No |
BudgetLine
One allocated amount within a budget, classified along the dimensions the Fiscal Data Package defines. A line is either money in or money out - direction is required, because a bare amount cannot be interpreted without it. Lines nest through isPartOf/hasPart, so a published budget can be traversed from a department total down to an individual programme without assuming a fixed depth.
Standards: Fiscal Data Package, COFOG, GFSM 2014
| Field | Type | Definition | Required |
|---|---|---|---|
@id |
string |
This budget line's own dereferenceable identifier. | Yes |
@type |
"BudgetLine" |
Always BudgetLine. |
Yes |
name |
string |
The line's label as the budget document itself names it. | Yes |
description |
string |
A plain-language note on what this line covers, when the name alone isn't enough. | No |
identifier |
Identifier[] |
Any scheme-qualified identifiers for this line beyond its @id. |
No |
budget |
Reference |
The Budget this line belongs to. | Yes |
amount |
Amount |
The Amount allocated or spent on this line. |
Yes |
budgetPhase |
string |
Overrides the budget's phase where a single document carries several, which is common in a document showing proposed against executed. | No |
direction |
string |
Money in, money out, or a financing movement. termCode from the BudgetDirection code list. Required: without it an amount is uninterpretable. |
Yes |
functionalClassification |
string |
What the money is for. termCode from the COFOG code list (UN Classification of the Functions of Government) - the dimension that makes budgets comparable across countries. |
No |
economicClassification |
string |
What kind of transaction it is. termCode from the EconomicClassification code list (IMF Government Finance Statistics Manual 2014). |
No |
administrativeClassification |
Reference |
Which body spends it - a GovernmentOrganization reference, not a free-text department name. | No |
programClassification |
string |
The publisher's own programme or activity code. | No |
fundSource |
string |
The fund or financing source, where the publisher tracks them. | No |
position |
integer |
Ordering among sibling lines. | No |
isPartOf |
Reference |
The parent line. | No |
hasPart |
Reference[] |
The lines nested directly under this one, e.g. a department total's individual programmes. | No |
sourceDataset |
string |
The Dataset this record was published as part of. |
No |
{
"@id": "https://example-city.gov/id/budget-line/fy2026/rev-property-tax",
"@type": "BudgetLine",
"name": "Property tax",
"budget": {
"@id": "https://example-city.gov/id/budget/fy2026-approved",
"name": "FY2026 approved budget"
},
"amount": {
"@type": "MonetaryAmount",
"value": 41200000,
"currency": "USD"
},
"direction": "revenue",
"economicClassification": "11",
"position": 1
}
Budget
A government's fiscal plan for one period, at one phase of the budget cycle. Mirrors the Fiscal Data Package, which remains the source model; this is a schema.org projection for discovery and for joining budgets to the organization, meeting, and legislation that produced them. schema.org has no budget, fiscal, expenditure, or appropriation concept of any kind - MonetaryAmount is a value type, not a model - so gs:Budget is minted outright.
Standards: Fiscal Data Package
| Field | Type | Definition | Required |
|---|---|---|---|
@id |
string |
This budget's own dereferenceable identifier. | Yes |
@type |
"Budget" |
Always Budget. |
Yes |
name |
string |
The budget document's title, e.g. 'Example City FY2026 Adopted Budget'. | Yes |
description |
string |
A plain-language summary of this budget, when the name alone isn't enough. | No |
url |
string |
Where this budget's canonical human-readable page lives. | No |
identifier |
Identifier[] |
Any scheme-qualified identifiers for this budget beyond its @id. |
No |
publisher |
Reference |
The GovernmentOrganization publishing this budget. | Yes |
about |
Reference |
The Jurisdiction it covers. | No |
budgetPhase |
string |
Which point in the budget cycle this document represents. Required, and the single most important field here: a budget figure without its phase is not comparable to any other figure. | Yes |
fiscalYear |
string |
The publisher's own label for the period, e.g. 'FY2026' or '2026-27'. A label only - startDate and endDate carry the actual period, because fiscal years begin in different months in different countries. | No |
startDate |
string |
When the fiscal period begins. | Yes |
endDate |
string |
When the fiscal period ends. | Yes |
currency |
string |
ISO 4217 code. Required: an amount without a currency is unusable outside its own country, and this profile is used across countries. | Yes |
totalAmount |
Amount |
Sum across the budget, for validation against the lines. | No |
adoptedBy |
Reference |
The body that adopted it, usually the legislature. | No |
enactedAt |
Reference |
The Meeting at which it was adopted. Joins to the meetings profile. | No |
legislation |
Reference |
The appropriation ordinance or act giving it legal force. Joins to the code profile. | No |
budgetLine |
Reference[] |
The BudgetLines that make up this budget. |
No |
supersedes |
Reference |
The earlier phase this revises, e.g. an approved budget superseding the proposed one. Retain both: comparing phases is most of what budget transparency is for. | No |
conformanceLevel |
string[] |
schemaGov conformance level claimed, per SPEC section 4. Distinct from conformsTo, which names an external standard the data follows. | No |
distribution |
object[] |
schema:DataDownload. Publish the Fiscal Data Package itself here; this projection is for discovery, not a replacement for it. | No |
dateModified |
string |
When this record was last updated. | No |
inLanguage |
string[] |
The language(s) this budget document is published in. | No |
license |
string |
The licence this budget data is published under. | No |
sourceDataset |
string |
The Dataset this record was published as part of. |
No |
{
"@id": "https://example-city.gov/id/budget/fy2026-approved",
"@type": "Budget",
"name": "Example City FY2026 approved budget",
"description": "The adopted annual operating budget for fiscal year 2026.",
"url": "https://example-city.gov/budget/fy2026",
"publisher": {
"@id": "https://example-city.gov/id/organization/city-government",
"name": "Example City Government"
},
"about": {
"@id": "https://example-city.gov/id/jurisdiction/example-city",
"name": "Example City"
},
"budgetPhase": "approved",
"fiscalYear": "FY2026",
"startDate": "2025-07-01",
"endDate": "2026-06-30",
"currency": "USD",
"totalAmount": {
"@type": "MonetaryAmount",
"value": 56250000,
"currency": "USD"
},
"adoptedBy": {
"@id": "https://example-city.gov/id/organization/city-council",
"name": "Example City Council"
},
"enactedAt": {
"@id": "https://example-city.gov/id/meeting/council-2025-06-15",
"name": "City Council meeting, 15 June 2025"
},
"legislation": {
"@id": "https://example-city.gov/id/legislation/ordinance/2025-20",
"name": "Ordinance No. 2025-20"
},
"supersedes": {
"@id": "https://example-city.gov/id/budget/fy2026-proposed",
"name": "Example City FY2026 proposed budget"
},
"conformanceLevel": [
"standard"
],
"dateModified": "2025-06-16",
"inLanguage": [
"en-US"
],
"license": "https://creativecommons.org/publicdomain/zero/1.0/",
"budgetLine": [
{
"@id": "https://example-city.gov/id/budget-line/fy2026/rev-property-tax"
},
{
"@id": "https://example-city.gov/id/budget-line/fy2026/rev-state-grants"
},
{
"@id": "https://example-city.gov/id/budget-line/fy2026/rev-fees"
},
{
"@id": "https://example-city.gov/id/budget-line/fy2026/exp-public-works"
},
{
"@id": "https://example-city.gov/id/budget-line/fy2026/exp-street-maintenance"
},
{
"@id": "https://example-city.gov/id/budget-line/fy2026/exp-waste"
},
{
"@id": "https://example-city.gov/id/budget-line/fy2026/exp-pw-admin"
},
{
"@id": "https://example-city.gov/id/budget-line/fy2026/exp-police"
},
{
"@id": "https://example-city.gov/id/budget-line/fy2026/exp-parks"
},
{
"@id": "https://example-city.gov/id/budget-line/fy2026/exp-general-government"
},
{
"@id": "https://example-city.gov/id/budget-line/fy2026/exp-debt-interest"
},
{
"@id": "https://example-city.gov/id/budget-line/fy2026/fin-capital-reserve"
}
],
"distribution": [
{
"@type": "DataDownload",
"name": "FY2026 approved budget, Fiscal Data Package",
"contentUrl": "https://example-city.gov/budget/fy2026/datapackage.json",
"encodingFormat": "application/json"
}
]
}