---
title: Average class sizes in government primary schools by year, New South Wales
resource: https://publicdata.au/d/nsw-primary-class-sizes/
publisher: NSW Department of Education
licence: CC BY 4.0
licence_url: https://creativecommons.org/licenses/by/4.0/
version: 2024-06-13
rows: 26
fields: 9
source: https://data.nsw.gov.au/data/dataset/43438137-084e-4d50-81c0-ce741ea3b37b/resource/7616001d-e4cb-4e4a-9a4f-76b166df5d37/download/average-class-size-by-year-2024-final.csv
source_sha256: 1f12422b62a0d3867b87ab0c7eeb099a1257de660c50afe0fa7b0719fdf904f8
language: en-AU
operator: National Digital
not_endorsed: true
---

# Average class sizes in government primary schools by year, New South Wales

The average class size in NSW government primary schools for each grade from Kindergarten to Year 6, for each year the Department has reported since 1997.

Published by NSW Department of Education under CC BY 4.0 and republished here in other formats, with cells typed and suppressed values made null. NSW Department of Education has not endorsed this site.

Also called: NSW primary school class sizes, Average students per class NSW public schools, Kindergarten class sizes NSW.

## Download

Latest version, redirects to `https://publicdata.au/d/nsw-primary-class-sizes/v/2024-06-13/`:

- csv: https://publicdata.au/d/nsw-primary-class-sizes/latest/data.csv (1.2 KB)
- xlsx: https://publicdata.au/d/nsw-primary-class-sizes/latest/data.xlsx (9.1 KB)
- json: https://publicdata.au/d/nsw-primary-class-sizes/latest/data.json (5.8 KB)
- parquet: https://publicdata.au/d/nsw-primary-class-sizes/latest/data.parquet (8.3 KB)
- sqlite: https://publicdata.au/d/nsw-primary-class-sizes/latest/data.sqlite (29 KB)
- duckdb: https://publicdata.au/d/nsw-primary-class-sizes/latest/data.duckdb (100 KB)
- ndjson: https://publicdata.au/d/nsw-primary-class-sizes/latest/data.ndjson (5.3 KB)
- arrow: https://publicdata.au/d/nsw-primary-class-sizes/latest/data.arrow (6.7 KB)
- csv.gz: https://publicdata.au/d/nsw-primary-class-sizes/latest/data.csv.gz (389 B)

Pinned version 2024-06-13: `https://publicdata.au/d/nsw-primary-class-sizes/v/2024-06-13/data.<format>`. Dated versions never change.

## Query

The query API returns only the rows you ask for, as JSON, NDJSON or CSV, from the same typed rows as the files. It needs no key. Rows: https://publicdata.au/api/v1/datasets/nsw-primary-class-sizes/rows. Counts and sums: https://publicdata.au/api/v1/datasets/nsw-primary-class-sizes/aggregate.

- Rows: https://publicdata.au/api/v1/datasets/nsw-primary-class-sizes/rows?limit=5
- Aggregate: https://publicdata.au/api/v1/datasets/nsw-primary-class-sizes/aggregate?group=year&metric=avg.k_to_6

Each filter is `field=operator.value` in the query string, and every filter must match. A number or date field compares as a number or date, and a text field compares as text. Values are case-sensitive except with `ilike`. Prefix `not.` to negate a filter, as `not.eq.value`. Operators: `eq.value`, `neq.value`, `gt.value`, `gte.value`, `lt.value`, `lte.value`, `like.*text*`, `ilike.*text*`, `in.(a,b,c)`, `is.null`.

- `select`: Fields to return, comma-separated. Every field when absent.
- `order`: `field.asc` or `field.desc`, comma-separated. The publisher's row order when absent.
- `limit`: Rows per page, 1 to 10,000. 100 when absent.
- `offset`: Rows to skip. The `next` URL in each answer sets it for you.
- `group`: On `aggregate`, fields to group by, comma-separated.
- `metric`: On `aggregate`, `count`, `sum.field`, `avg.field`, `min.field` or `max.field`, comma-separated. `count` when absent.
- `format`: `json`, `ndjson` or `csv`. JSON carries the provenance header, and the others carry it in response headers.

Without a version the API answers from the newest loaded version, and that answer changes when the publisher releases again. Put `versions/<date>/` before `rows` or `aggregate` for an answer that never changes. `/api/v1/datasets/<slug>/versions` lists the loaded versions. The API allows 60 requests in 10 seconds from one address. Above that it answers 429 for 10 seconds with a `Retry-After` header, a `RateLimit-Policy` header and a JSON body that gives the limit. Every API answer carries the same `RateLimit-Policy`. A client should wait the `Retry-After` seconds, or read the files, which have no limit. OpenAPI for this dataset: https://publicdata.au/d/nsw-primary-class-sizes/openapi.json

## Explore

Charts and dashboards in the browser: https://publicdata.au/d/nsw-primary-class-sizes/explore/. A dashboard can be shared as a link or embedded.

## Fields

| field | type | publisher's header | note |
|---|---|---|---|
| `year` | integer | Year |  |
| `kindergarten` | number | K |  |
| `year_1` | number | Year 1 |  |
| `year_2` | number | Year 2 |  |
| `year_3` | number | Year 3 |  |
| `year_4` | number | Year 4 |  |
| `year_5` | number | Year 5 |  |
| `year_6` | number | Year 6 |  |
| `k_to_6` | number | K-6 |  |

Key: `year`.

## Versions

- 2024-06-13: 26 rows, 9 fields, sha256 1f12422b62a0. https://publicdata.au/d/nsw-primary-class-sizes/v/2024-06-13/

Machine-readable: https://publicdata.au/d/nsw-primary-class-sizes/versions.json, https://publicdata.au/d/nsw-primary-class-sizes/changes.json, https://publicdata.au/d/nsw-primary-class-sizes/datapackage.json, https://publicdata.au/d/nsw-primary-class-sizes/schema.json, https://publicdata.au/d/nsw-primary-class-sizes/history.tar.zst

## Same subject, other publishers

- [Full-time equivalent enrolments in government schools by school type, South Australia](https://publicdata.au/d/sa-school-enrolments-by-type/) (SA)
- [Government primary school zones, South Australia](https://publicdata.au/d/sa-primary-school-zones/) (SA)
- [Public school term dates, New South Wales, 2019 to 2025](https://publicdata.au/d/nsw-school-term-dates/) (NSW)
- [Government high school zones, South Australia](https://publicdata.au/d/sa-high-school-zones/) (SA)
- [School locations, Victoria](https://publicdata.au/d/vic-school-locations/) (Vic)
- [State school enrolments by school and year level, February census, Queensland 2015 to 2019](https://publicdata.au/d/qld-state-school-enrolments-february/) (Qld)
- [State school catchment areas, primary, Queensland](https://publicdata.au/d/qld-school-catchments-primary/) (Qld)
- [Government primary school zones for 2027, Victoria](https://publicdata.au/d/vic-school-zones-primary-2027/) (Vic)
- [Child care services, children and hourly fees by area, Greater Sydney and Melbourne, 2012-13 to 2015-16](https://publicdata.au/d/au-child-care-services-by-sa3-2012-2016/) (Cth)
- [State and non-state school details, Queensland](https://publicdata.au/d/qld-school-details/) (Qld)
- [State school catchment areas, junior secondary, Queensland](https://publicdata.au/d/qld-school-catchments-junior-secondary/) (Qld)
- [State school catchment areas, senior secondary, Queensland](https://publicdata.au/d/qld-school-catchments-senior-secondary/) (Qld)

## Attribution and citation

NSW Department of Education, NSW Government, Average government primary school class sizes by year, sourced 3 October 2026, https://data.nsw.gov.au/data/dataset/nsw-education-average-government-primary-school-class-sizes-by-year, licensed under CC BY 4.0.

The licence requires the publisher's attribution. We ask that you also name publicdata.au and link to the version you used.

Plain text: NSW Department of Education, NSW Government, Average government primary school class sizes by year, sourced 3 October 2026, https://data.nsw.gov.au/data/dataset/nsw-education-average-government-primary-school-class-sizes-by-year, licensed under CC BY 4.0. Serialised and versioned by National Digital at publicdata.au, https://publicdata.au/d/nsw-primary-class-sizes/v/2024-06-13/

Harvard: NSW Department of Education (2024) Average class sizes in government primary schools by year, New South Wales, version 2024-06-13 [data set], CC BY 4.0, sourced 3 October 2026. Serialised and versioned by National Digital at publicdata.au. Available at: https://publicdata.au/d/nsw-primary-class-sizes/v/2024-06-13/

Markdown: Data: [Average class sizes in government primary schools by year, New South Wales](https://data.nsw.gov.au/data/dataset/nsw-education-average-government-primary-school-class-sizes-by-year), NSW Department of Education, [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/), sourced 3 October 2026. Files: [publicdata.au](https://publicdata.au/d/nsw-primary-class-sizes/v/2024-06-13/) by [National Digital](https://nationaldigital.com.au/).

## Questions

### How do I download Average class sizes in government primary schools by year as a CSV file?

Open https://publicdata.au/d/nsw-primary-class-sizes/latest/data.csv. It redirects to the newest dated version, which is https://publicdata.au/d/nsw-primary-class-sizes/v/2024-06-13/data.csv today. The same path serves Excel, JSON, Parquet, SQLite, DuckDB, NDJSON, Arrow. A dated URL never changes, so use it when the file must stay the same.

### Can I open Average class sizes in government primary schools by year in Excel?

Yes. https://publicdata.au/d/nsw-primary-class-sizes/v/2024-06-13/data.xlsx is a workbook with the 26 rows on a records sheet, the field list on a second sheet and the provenance on a third. The CSV also opens in Excel. https://publicdata.au/d/nsw-primary-class-sizes/v/2024-06-13/data.csv.gz is the CSV at about a tenth of the size.

### What years does Average class sizes in government primary schools by year cover?

The current version covers 1997 to 2023. Each release from Department of Education becomes a new dated version here, and earlier versions stay online.

### How often is Average class sizes in government primary schools by year updated?

Department of Education releases it yearly. This site checks the portal every week and adds a dated version when the file changes.

### Can I use Average class sizes in government primary schools by year commercially?

Yes. CC BY 4.0 allows commercial use, redistribution and derived works as long as the attribution is kept. The attribution string is in this page's side column and inside every file.

### Is this the official source for Average class sizes in government primary schools by year?

No. The publisher is NSW Department of Education, and its page is https://data.nsw.gov.au/data/dataset/nsw-education-average-government-primary-school-class-sizes-by-year. This site republishes the publisher's file without changing its content. The original sits beside every version as source.csv with its SHA-256, so the two can be compared.

### What is in each row?

One school year, with the average number of students per class in NSW government primary schools for Kindergarten, each of Years 1 to 6, and Kindergarten to Year 6 together.

### Why do some years not appear?

The Department's file has the years it published averages for, from 1997. Years it did not report are not rows.

## What this site did to the data

Cells were typed, headers were renamed to snake_case and the encoding was made UTF-8. Rows were left alone. Nothing is derived. The publisher's file is beside every version as `source.csv`.

## Improve this dataset

This page is built from [register/nsw-primary-class-sizes.yaml](https://github.com/National-Digital/publicdata.au/blob/main/register/nsw-primary-class-sizes.yaml) on GitHub, and a fix to it is welcome as a pull request. https://publicdata.au/contribute/ explains how.
