Government of Tamil Nadu spending on stationery and printing (Demand No. 30): what was spent, what is budgeted for 2026-27, and what the Budget announced. Every figure traces to a page of an official budget document.
Amount grew from ₹177 crore in 2018-19 to ₹184 crore in 2026-27
Total of heads 2058, 2059, 4058, ₹ crore. Each year shows the latest stage available: Actual, then Revised Estimate (RE), then Revised Budget Estimate (RBE).
- Stationery and printing (2058)
- Public works (2059)
- Capital outlay on stationery and printing (4058)
| 2018-19 | 177.1 |
|---|---|
| 2019-20 | 148.6 |
| 2020-21 | 143.3 |
| 2021-22 | 134.5 |
| 2022-23 | 143.9 |
| 2023-24 | 183.6 |
| 2024-25 | 194.7 |
| 2025-26 | 212.7 |
| 2026-27 | 183.8 |
Source: Demand No. 30 books and Annual Financial Statements, Government of Tamil Nadu. Values in ₹ crore.
Largest allocations
Top five minor heads, ₹ crore.
| Minor head | 2024-25 Actual | 2025-26 RE | 2026-27 RBE |
|---|---|---|---|
| 2058-00-103 Government Presses | 88.1 | 96.0 | 102.1 |
| 2058-00-101 Purchase and Supply of Stationery Stores | 70.3 | 70.6 | 56.1 |
| 2058-00-001 Direction and Administration | 18.1 | 21.5 | 22.1 |
| 2058-00-797 Transfers to Reserve Funds / Deposit Accounts | 2.9 | 2.9 | 2.9 |
| 2058-00-104 Cost of Printing by other sources | 0.5 | 1.3 | 0.3 |
Detailed allocation
Loading the explorer…
Series show the latest stage available for each year (Actual > RE > RBE > IBE > BE). Heads 2058, 4058 are compared with the Annual Financial Statements. Head 2059 is shared with other Demands and is not compared. 14 related data issues
Known data issues
Known gaps and discrepancies in the source documents or between them. Each has a permanent ID. “Documented” means the document itself is wrong and we kept the printed figure; “open” means we have not found the cause.
14 issues
| ID | Status | What | Treatment |
|---|---|---|---|
DQ-D30-0001 | explained | latest-stage roll-up does not add up 2058-00-103-AA, 2024-25 Object values add to 504,547 thousand but the sub-head shows 504,567 The latest value per code is chosen separately, and for some codes under this sub-head the Actual column is blank, so an earlier-stage figure is used (3 codes here use a different stage from the sub-head). Within each demand book every total ties exactly. | Published as is; each code carries its own stage |
DQ-D30-0002 | explained | latest-stage roll-up does not add up 2058-00-103-AC, 2022-23 Object values add to 45,676 thousand but the sub-head shows 45,682 The latest value per code is chosen separately, and for some codes under this sub-head the Actual column is blank, so an earlier-stage figure is used (1 codes here use a different stage from the sub-head). Within each demand book every total ties exactly. | Published as is; each code carries its own stage |
DQ-D30-0003 | explained | latest-stage roll-up does not add up 2058-00-103-AE, 2022-23 Object values add to 58,901 thousand but the sub-head shows 58,907 The latest value per code is chosen separately, and for some codes under this sub-head the Actual column is blank, so an earlier-stage figure is used (1 codes here use a different stage from the sub-head). Within each demand book every total ties exactly. | Published as is; each code carries its own stage |
DQ-D30-0004 | explained | latest-stage roll-up does not add up 2058-00-103-AF, 2022-23 Object values add to 49,571 thousand but the sub-head shows 49,577 The latest value per code is chosen separately, and for some codes under this sub-head the Actual column is blank, so an earlier-stage figure is used (1 codes here use a different stage from the sub-head). Within each demand book every total ties exactly. | Published as is; each code carries its own stage |
DQ-D30-0005 | explained | latest-stage roll-up does not add up 2058-00-103-AG, 2022-23 Object values add to 116,309 thousand but the sub-head shows 116,315 The latest value per code is chosen separately, and for some codes under this sub-head the Actual column is blank, so an earlier-stage figure is used (2 codes here use a different stage from the sub-head). Within each demand book every total ties exactly. | Published as is; each code carries its own stage |
DQ-D30-0006 | explained | latest-stage roll-up does not add up 2058-00-103-AG, 2024-25 Object values add to 137,762 thousand but the sub-head shows 140,730 The latest value per code is chosen separately, and for some codes under this sub-head the Actual column is blank, so an earlier-stage figure is used (2 codes here use a different stage from the sub-head). Within each demand book every total ties exactly. | Published as is; each code carries its own stage |
DQ-D30-0007 | explained | latest-stage roll-up does not add up 2058-00-103-AJ, 2022-23 Object values add to 11,327 thousand but the sub-head shows 11,294 The latest value per code is chosen separately, and for some codes under this sub-head the Actual column is blank, so an earlier-stage figure is used (24 codes here use a different stage from the sub-head). Within each demand book every total ties exactly. | Published as is; each code carries its own stage |
DQ-D30-0008 | explained | latest-stage roll-up does not add up 2058-00-103-AK, 2023-24 Object values add to 10,895 thousand but the sub-head shows 10,879 The latest value per code is chosen separately, and for some codes under this sub-head the Actual column is blank, so an earlier-stage figure is used (15 codes here use a different stage from the sub-head). Within each demand book every total ties exactly. | Published as is; each code carries its own stage |
DQ-D30-0009 | explained | latest-stage roll-up differs by rounding 7 sub-head/year pairs For 7 sub-head/year pairs the object values add to within Rs 5 thousand of the sub-head figure (largest difference 5 thousand = Rs 0.0005 crore) Each code shows its latest printed stage, and different codes under one sub-head can come from different books, where amounts are rounded separately. Within each demand book every total ties exactly. | Published as is; each code carries its own stage |
DQ-D30-0010 | explained | code printed in some books but not in between 4 code families 4 codes (with the codes below them) are printed in some books, absent from a book in between and printed again later. Examples: 2058-00-103-AE-301-03 'Government Branch Press, Salem' (absent from 2023-24 BE, 2024-25 BE); 4058-00-103-JW 'Add-Percentage Charges for Establishment Transferred from the Major Head "2059-Public Works"' (absent from 2023-24 BE); 4058-00-103-JX 'Add-Percentage Charges for Machinery and Equipment transferred from the Major Head "2059-Public Works"' (absent from 2023-24 BE). The full list is in the master_codes file (columns books_present and books_list). Checked against the PDFs: for 4 of 4 family/book absences a text search of the book finds no line with that code. A line with nothing to show in a book seems to be left out of that book; this has not been confirmed with the department. | Each code kept once; presence per book recorded in books_list |
DQ-XDOC-0093 | open | unexplained gap Head 2058, 2021-22 Actual AFS prints 1,304,072 thousand for head 2058; the Stationery and Printing demand book prints 1,306,726 Cause not identified. Probably part of the head sits under another demand, but this has not been confirmed from the documents. | Both published as printed; difference shown, not allocated |
DQ-XDOC-0094 | open | unexplained gap Head 4058, 2021-22 Actual AFS prints 35,421 thousand for head 4058; the Stationery and Printing demand book prints 33,885 Cause not identified. Probably part of the head sits under another demand, but this has not been confirmed from the documents. | Both published as printed; difference shown, not allocated |
DQ-XDOC-0095 | open | unexplained gap Head 2058, 2024-25 Actual AFS prints 1,797,981 thousand for head 2058; the Stationery and Printing demand book prints 1,797,990 Cause not identified. Probably part of the head sits under another demand, but this has not been confirmed from the documents. | Both published as printed; difference shown, not allocated |
DQ-XDOC-0096 | open | unexplained gap Head 2058, 2024-25 Actual AFS prints 1,797,981 thousand for head 2058; the Stationery and Printing demand book prints 1,797,990 Cause not identified. Probably part of the head sits under another demand, but this has not been confirmed from the documents. | Both published as printed; difference shown, not allocated |
Downloads
Stationery and Printing (Demand 30): budget by code
Every code in Demand 30 from major head down to detail, with full hierarchy and the latest-stage value per fiscal year in Rs crore.
- master_codes.csv CSV · 590 rows · 306 KB
- values_long.csv CSV · 4,598 rows · 926 KB
master_code is built only from printed codes. Voted and charged amounts are summed. Where the latest printed figure is nil the value is 0.
Column dictionary (27 columns)
| Column | Type | Meaning |
|---|---|---|
master_code | string | Unique alphanumeric code built from printed codes only, for example 2404-00-195-AB-309-03. |
level | string | Level of the code: major, minor, subhead, object or detail. |
major_code | string | Major head code. |
major_description | string | Major head description. |
minor_code | string | Minor head code with major and sub-major. |
minor_description | string | Minor head description. |
category | string | State's Expenditure, Central Sector Schemes, or Schemes Shared between State and Centre. |
subhead_code | string | Sub-head code. |
subhead_description | string | Sub-head description. |
object_code | string | Object code. |
object_description | string | Object description. |
detail_code | string | Detail code. |
detail_description | string | Detail description. |
full_path_description | string | Descriptions of all levels joined top to bottom. |
parent_code | string | master_code of the level above. |
alternate_labels | string | Older wording of the description, where it changed. |
hod | string | Head of department code printed in the demand book. |
first_book | string | First demand book that prints the code. |
last_book | string | Last demand book that prints the code. |
books_present | integer | Number of the six demand books that print the code. |
books_list | string | The demand books that print the code. |
status | string | Status of the item: for codes, in all books, new, discontinued or intermittent; for issues, documented, explained or open. |
fiscal_year | string | Financial year, April to March, written like 2025-26. |
stage | string | Budget stage of the figure: Actual (audited), RE (revised estimate), RBE (revised budget estimate), IBE (interim budget estimate) or BE (budget estimate). |
amount_crore | number | Amount in Rs crore (1 crore = 10 million rupees). |
amount_thousand | number | Amount in Rs thousand, as printed in the source document. |
source_edition | string | The budget document the figure was read from, for example 2026-27 RBE. |
AFS compared with the Stationery and Printing demand book
Heads 2058, 4058 as printed in each Annual Financial Statement and in the matching Demand 30 book: 68 of 72 comparisons agree to within Rs 5 thousand; every other difference is listed as a data issue (see data issues). Heads shared with other Demands are not compared.
- afs_vs_demand30.csv CSV · 72 rows · 5 KB
Column dictionary (11 columns)
| Column | Type | Meaning |
|---|---|---|
book | string | The edition of the budget document (AFS and demand book share the edition). |
head | integer | Major head: 2404 (revenue), 4404 (capital outlay) or 6404 (loans). |
fiscal_year | string | Financial year, April to March, written like 2025-26. |
estimate_type | string | Budget stage of the figure (Actual, RE, RBE, IBE, BE). |
afs_thousand | number | Amount printed in the AFS, Rs thousand. |
demand_thousand | integer | Amount printed in the demand book, Rs thousand. |
afs_crore | number | Amount printed in the Annual Financial Statement, Rs crore. |
demand_crore | number | Amount printed in the Dairy Development demand book, Rs crore. |
gap_thousand | number | AFS minus demand book, Rs thousand. |
gap_crore | number | AFS minus demand book, Rs crore. |
gap_pct_of_afs | number | Gap as a percentage of the AFS amount. |
Budget announcements
Everything the Budget speech and highlights announce (currently the 2026-27 Revised Budget Estimates): schemes, projects, programmes, reforms, subsidies and policies. One row per announcement per budget year, with the primary amount exactly as printed, its kind (allocation, project cost and so on), the speech paragraph and highlights bullet it comes from, and the Demand(s) for Grants it relates to.
- announcements.csv CSV · 178 rows · 66 KB
announcement_code is permanent: an announcement keeps its code in every budget year, and one that ends is marked is_current = no, never removed. related_demands links the announcement to the Demand(s) for Grants it relates to; blank means not yet linked. source_document names the budget document, and paragraph or bullet, each row was taken from. Some amounts are the current-year allocation, others the cost of a whole project: always read amount_kind.
Column dictionary (17 columns)
| Column | Type | Meaning |
|---|---|---|
announcement_code | string | Permanent ID of the announcement, SCH-2026-nnn. It never changes and is never reused. |
budget_year | string | Fiscal year of the budget document the row was taken from, for example 2026-27. |
name | string | Scheme, project, policy or announcement name as used on this site. |
department | string | Department heading under which the speech and highlights list the item. |
item_type | string | scheme, project, programme, policy, fund, subsidy, reform, platform, committee, announcement and so on. |
related_demands | string | Demand No(s). for Grants this announcement relates to, separated by semicolons (for example 08). Blank if not yet linked. |
amount_text | string | Primary amount exactly as printed, for example Rs.139 crore. |
amount_crore | number | Amount in Rs crore (1 crore = 10 million rupees). |
amount_kind | string | What the amount is: allocation, cost_stated, project_cost, valued_at, annual, multi_year_cost, capital_outlay, increase, viability_gap, credit_target, grant_sought or none. |
other_amounts | string | Other amounts printed with the item, each with what it is. |
source_document | string | Budget document, and the paragraph or bullet in it, that this row was taken from. |
highlights_bullet | integer | Bullet number in the highlights document. |
highlights_page | string | Printed page of that bullet in the highlights. |
speech_para | integer | Paragraph number in the budget speech. |
speech_page | string | Printed page of that paragraph in the speech. |
is_current | string | yes if the announcement is part of the current budget; no if it has ended or been withdrawn (the row and its code are kept). |
source_text | string | The highlights bullet text the entry is based on. |