Data · vintages

Weekly vintages

Each vintage is the town and province aggregates of public/data.json on the capture date: the last commit of that file in a closed ISO week, Monday to Sunday, UTC. The series starts on 2026-08-05. Commits before that date are not used. A day inside the declared capture gap is not a capture. The JSON file is written once, and a later run refuses to overwrite it. The manifest records the SHA-256 of those exact bytes. A day with no eligible capture is listed and left empty. Nothing is interpolated.

The figures are asking prices from the committed listing book. A removed listing left that book. It is not a recorded sale. The open observation files are CC BY 4.0. These files are aggregates of that book.

JSON manifestPoint-in-time policyLicense

Frozen vintages
13

Latest capture 31 October 2026

Gap weeks
0

A closed week with no eligible capture. No file is written.

Missing capture days
15

Listed below. Not estimated.

01

What a row means

live_listings
Listings in the committed book on the capture date. A listing is one feed reference, not one dwelling.
median_asking_eur_m2
Median asking EUR per square metre on the capture date. A town median is published only when that town has at least 5 live listings and at least one positive asking EUR per square metre, the same floor as towns.csv. A province median is published when the province has at least one positive asking EUR per square metre. A thinner town has no median. No value is filled in from another day.
price_cuts
Same ref, same place, positive asking price on both vintages, and a lower asking price on the capture date. Null on the first vintage, when there is no previous file to compare.
price_rises
Same ref, same place, positive asking price on both vintages, and a higher asking price on the capture date. Null when there is no previous vintage.
price_cut_share
price_cuts divided by comparable listings, half-up to 4 decimal places, written as a decimal string. Comparable listings are the same ref in the same place with a positive asking price in both vintages. Null when there is no comparison, or when the comparable count is zero.
price_rise_share
price_rises divided by the same comparable count, in the same decimal form. Null on the same terms as the cut share.
new_listings
A ref in this place on the capture date that was not in the previous book. Null when there is no previous vintage.
removed_listings
A ref that was in this place in the previous vintage and is absent from the whole book on the capture date. Leaving the book is not a recorded sale. Null when there is no previous vintage.
reassigned
A ref present in both books whose town or province changed. It is not counted as new, removed, or a price move.
gaps
gap_dates_in_week are the days in that closed week, on or after the series start, that are not an eligible capture. A commit inside the declared capture gap is not eligible. Those days are listed and left empty.
02

Declared gap and other missing days

The declared capture gap is 14 October 2026 to 20 October 2026. Those dates have no vintage file. Other dates in the list are days, on or after 5 August 2026, when public/data.json has no eligible commit.

2026-08-17, 2026-09-14, 2026-09-21, 2026-10-10, 2026-10-11, 2026-10-12, 2026-10-14, 2026-10-15, 2026-10-16, 2026-10-17, 2026-10-18, 2026-10-19, 2026-10-20, 2026-10-26, 2026-11-01

03

Vintages

2026-W32 · frozen

9 August 2026

Rows
74
Compared with
–
Gap days in the week
–
SHA-256
41e73a3cca0ba3436219df9aad6553ce0bf884b98831b3a1afb71d47210b49df

JSONCSV

2026-W33 · frozen

16 August 2026

Rows
74
Compared with
9 August 2026
Gap days in the week
–
SHA-256
56bd741bc866e25cdf5b3ba2e93bd9a3247b40d197c9d8f7d783c6d072c601de

JSONCSV

2026-W34 · frozen

23 August 2026

Rows
73
Compared with
16 August 2026
Gap days in the week
2026-08-17
SHA-256
332d01b5e381d716fd201d4c7a8cc6a8b1b5c0d133567f12e45aaa32fa9eb9ae

JSONCSV

2026-W35 · frozen

30 August 2026

Rows
72
Compared with
23 August 2026
Gap days in the week
–
SHA-256
e2f12e2c9c43fce4b56c0f47ae371e7748803f90fc61bffda85f07f50931a960

JSONCSV

2026-W36 · frozen

6 September 2026

Rows
73
Compared with
30 August 2026
Gap days in the week
–
SHA-256
73d226a0747a5238bc06b10b65defdd526cd25f7851ee09fc58ffa5fbd7c6510

JSONCSV

2026-W37 · frozen

13 September 2026

Rows
74
Compared with
6 September 2026
Gap days in the week
–
SHA-256
7adb7d43130b7a3369c3a878fdaae5e0be999c8b03629fc92921cd903cc5288f

JSONCSV

2026-W38 · frozen

20 September 2026

Rows
74
Compared with
13 September 2026
Gap days in the week
2026-09-14
SHA-256
2ff5a639fcb911bc8ec3f80822e2f59d3def1cab6aa2d1a55560bf7cc54d9356

JSONCSV

2026-W39 · frozen

27 September 2026

Rows
74
Compared with
20 September 2026
Gap days in the week
2026-09-21
SHA-256
c0cae8525996f34b765edf91f6e15068bc56c48d19d83f1af16e588ddab334fd

JSONCSV

2026-W40 · frozen

4 October 2026

Rows
73
Compared with
27 September 2026
Gap days in the week
–
SHA-256
9e62d15527d5caf117f904813f9775d5607e03664f5194bfe7646552c44ec12c

JSONCSV

2026-W41 · frozen

9 October 2026

Rows
74
Compared with
4 October 2026
Gap days in the week
2026-10-10, 2026-10-11
SHA-256
64f1770e7073eff334e65119eee63325bb193ed2d8972e1da912a7c0b85a4414

JSONCSV

2026-W42 · frozen

13 October 2026

Rows
74
Compared with
9 October 2026
Gap days in the week
2026-10-12, 2026-10-14, 2026-10-15, 2026-10-16, 2026-10-17, 2026-10-18
SHA-256
fcf4ef68aa5973b054081a8bbdbc36fe623162e049864e5eb30ba4c7a2bac92b

JSONCSV

2026-W43 · frozen

25 October 2026

Rows
74
Compared with
13 October 2026
Gap days in the week
2026-10-19, 2026-10-20
SHA-256
cae10214538b33f3d89590958f2ca92d78306673185b7253cc941172afdb8f11

JSONCSV

2026-W44 · frozen

31 October 2026

Rows
73
Compared with
25 October 2026
Gap days in the week
2026-10-26, 2026-11-01
SHA-256
0db4387d0f089b2e876546ddf0d1cc264edce321e7748bf7ff9cb6ba11b77ff1

JSONCSV