A prediction enters once
A contract enters its country cohort at the first monthly snapshot where its estimated renewal date is 6 to 18 months away. The buyer identity, title, category, estimated date and estimation basis are frozen at entry.
Prediction ledger v0
Facts come from official notices. Renewal timing is our estimate. This is the protocol we freeze before checking whether those estimates were right.
The earliest July 2026 cohort entries can mature no sooner than April 2027. We will not publish a headline precision result before at least 100 predictions have matured in that country.
A contract enters its country cohort at the first monthly snapshot where its estimated renewal date is 6 to 18 months away. The buyer identity, title, category, estimated date and estimation basis are frozen at entry.
We look for a qualifying successor notice from three calendar months before the estimate through three calendar months after it. A prediction does not mature until that seven-month window has fully elapsed.
A match requires the same frozen buyer identity plus deterministic title and procurement-category similarity. Matching rules and aliases are locked before outcomes are inspected. There is no manual rescue for a near miss.
Later source corrections are reported as a tagged subset, not silently removed. Only duplicates, pre-snapshot withdrawals and identity failures discovered before outcome review can be excluded.
Prospective forecast precision is the share of matured eligible predictions with exactly one qualifying successor notice. A contract notice, concession notice or competition-opening prior information notice can qualify. Awards, modifications, corrigenda, cancellations, direct-award notices and market consultations do not.
Results will include a 95% Wilson confidence interval. We will report both the numerator and denominator, never a bare accuracy percentage.
Netherlands results will never be presented as Germany or DACH accuracy. Each country has its own cohort, denominator and result.
We correct factual errors promptly. Send a written correction request to ravid@tendervane.com with the page URL, the disputed passage, and a supporting source. Material corrections are logged below as: date; page; corrected statement; reason; whether the headline, chart, or CSV changed. Typographical fixes that do not alter meaning are not logged. A report keeps its original as-of date unless its data are refreshed; a refresh receives a new as-of date and a dated log entry.
Published notices can arrive on TED after our measurement date. A re-run of the same query on the same as-of date can therefore return slightly different totals later. We treat that as a property of the source, not an error: reports keep the numbers that were true at measurement, and material drift is logged here.
Log
2026-08-05: /rapporten/marktconsultaties-overheids-it-2026; partial reversal of the 2026-08-04 withdrawal (one figure reinstated, on review). The 4.6-months-over-24 cross-check was withdrawn on 4 August together with the cohort figures, on the reasoning that its cases sit inside the unreproducible cohort. Review found that reasoning unsound: the 24 pairs are selected by TenderNed’s own related-publication links, use none of our matching, and re-derivation reproduces them exactly, so their incidental membership of the failed cohort does not contaminate them. The figure is reinstated with a mandatory narrow scope — it describes only those 24 source-linked pairs and estimates nothing about consultations in general — and re-enters the page, the FAQ, the Dataset structured data, the downloadable CSV and llms.txt marked with its basis. The four cohort figures (4.9 median, p75 7.8, p90 10.2, 19.6% floor) remain withdrawn with no replacement. The 4 August entry below is preserved as written; a log that edits its own history is not a log.
2026-08-04: /rapporten/marktconsultaties-overheids-it-2026; withdrawal (two figures removed, not restated). The report published a median lead time of 4.9 months from market consultation to tender, over 47 hand-adjudicated pairs drawn from a frozen cohort of 240 Dutch IT consultations, and a floor of 19.6% of that cohort having a source-verified later tender. Re-running the cohort selection returned 379 consultations rather than 240; later publication accounts for 107 of the difference and 32 remain unexplained. A denominator we cannot rebuild cannot carry either figure, and because both share the same numerator they were withdrawn together. The 4.6-months-over-24 cross-check derived from TenderNed’s own related-publication links was withdrawn with them: it is independently derived but its cases are drawn from the same cohort, so publishing it alone would reintroduce the unreproducible denominator through a smaller number. No replacement figure is published because none is verified. Removed from the page body, the FAQ, the meta description, the Dataset structured data, the downloadable CSV and llms.txt. The report’s central undercount finding is unaffected: it runs on TenderNed’s own published datasets and reproduces exactly.
2026-08-04: /de/berichte/1-cent-auftragswert-2026; material correction (date semantics and cohort construction). An internal audit of the date fields on 3 August 2026 found that our parser had collapsed reference-block dates in the Bekanntmachungsservice XML into the award-date column, so the published universe was windowed on a mix of contract-signature and notice-dispatch dates, and it contained 621 result notices in which no contract was awarded at all (their missing values are the consequence of a missing award, not opacity). Corrected universe: 5,176 rows with a selected winner and a published contract-conclusion date (BT-145) in 2024-2025 (previously 7,051). Headline: 54.8% of rows without a substantive value indication → 50.5%; the share of those rows without a non-publication marker for the award-value fields 77.5% → 69.9%; one-cent award-value entries 752 → 646; year figures 60.8/48.9 → 56.2/46.0 (the 2025-lower-than-2024 finding survives); authority bands and the named exemplar re-derived (BG-Phoenics GmbH, 37 of 39 rows). The lower headline reflects corrected cohort construction, not improved disclosure practice. Headline, charts, row-level CSV and methodology JSON all changed; the underlying database repair is manifest-bound and receipted.
2026-08-04: /de/berichte/ein-angebots-quote-oeffentliche-it-2026; material correction (same date-semantics defect). The German cohort was windowed on award-date values that in fact carried the notice publication or dispatch date on all 8,924 Bekanntmachungsservice rows (TED rows: 0% affected). After the repair the cohort counts only lots with a published contract-conclusion date (BT-145) in the window: 6,586 evaluated lots (previously 8,254). German headline 40.5% → 38.4% (2,528 of 6,586); year figures 42.2/39.7/38.7 → 40.0/38.4/35.6; in 2024 the German rate now sits slightly BELOW the Dutch 40.5%; the provisional 2026 gap to the Netherlands is 6.9 points, not 10.0; the highest German value-class rate is 46.0% (403 of 877) in the EUR 250K-1M class. Every Dutch cell reproduces unchanged. The lower German figures reflect corrected cohort construction, not a change in competition. Headline, charts and CSV changed.
2026-08-04: /de/berichte/software-abhaengigkeit-vergabegrund-2026; material correction (same date-semantics defect). This investigation windows its universe on the award date, so the repair narrowed it from 137 to 97 notices: the ones that left publish no contract-conclusion date (BT-145) and could no longer be windowed on. Their justification texts remain public and unchanged. The corrected universe is a strict subset of the 137 already hand-classified, so every figure is the same adjudication recounted, not a re-adjudication, and no notice required new coding. Dependency explicitly cited: 103 of 137 (75.2%) → 75 of 97 (77.3%); exactly one tender: 132 → 93; no usable award value: 97 → 70, of which 53 carry no value-privacy marker; hospital buyers 60 → 48; KHZG references 15 → 10; per-vendor counts re-derived (Dedalus 46, SAP 28, Microsoft 16, d.velop 7). One quoted case (Landesamt für Finanzen, Dienststelle Regensburg) fell outside the corrected universe and was removed rather than quoted from outside the stated denominator, leaving seven verbatim cases. The five repeated-template clusters are unchanged (15, 7, 4, 3 and 2 notices). Headline, charts, evidence CSV and classification dataset all changed.
2026-08-04: /de/berichte/verfahrensarten-hinter-der-ein-angebots-quote; material correction (same date-semantics defect, same corrected cohort as the parent report). Share of single-bid lots from negotiated procedures without a prior call 52.5% → 47.8% (1,208 of 2,528); their within-procedure rate 90.5% → 89.2%; lots without any procedure code 80 → 44. The two-group shift-share decomposition of the 2024→2026 decline reverses on the corrected cohort: the between-group (composition) term now accounts for roughly 76% of the movement, where the previously published decomposition attributed roughly a third to composition; the section was rewritten and discloses both results. Headline, cross-table and CSV changed.
2026-07-25: /at/daten/bbg-rahmenvereinbarungen-laufen-aus; material correction (duplicate records counted twice). The page stated that 67 BBG IT framework agreements with a combined published value of EUR 2,780,243,375 have an expected end within 24 months, with a disclosed floor of 64 records and EUR 2,513,443,375 after known duplicates. Five of those 67 records were second publications of contracts already in the list: the same award appears in both the European notice and the Austrian national data, and our matching rule required the contracting authority to be spelled identically in both, which for Austrian framework agreements it almost never is. Each of the five was checked individually against the original notices and merged only where both sources carry the same official registration identifiers for the contracting authority and the supplier, the same value to the cent and the same award date (VMware EUR 160,000,000; Security Software 2024 - 2 EUR 95,000,000; Security Software 2024 EUR 60,000,000; PDF-Tools EUR 18,000,000; Classroom-Management-Softwarelösungen EUR 2,000,000). Corrected: headline 67 records → 62, EUR 2,780,243,375 → EUR 2,445,243,375; disclosed floor 64 / EUR 2,513,443,375 → 61 / EUR 2,398,443,375; end-date basis 55 computed + 6 stated + 6 class-median → 54 + 6 + 2, so the notice-derived share rises from 91.0% to 96.8%; the quarterly table and the ten largest by value re-derived; all-time BBG holdings 282 records / EUR 5,928,152,925 → 277 / EUR 5,593,152,925. A sixth candidate was deliberately NOT merged and is disclosed on the page: the national record names no company at all there, while the European notice lists two framework partners, so nothing in either source says which one it is. The same pass also corrected five rows in the ten-largest table whose expected end was shown one year too early against our own stored value (VMware June 2027 → June 2028 and July 2027, now merged; Verrechnungs- und Übermittlungsstellen February 2027 → February 2028; Security Software 2024 - 2 December 2026 → December 2027, now outside the window; Microsoft EDU Austria March 2027 → March 2028). Direction of the correction, stated plainly: every duplicate we find is a record we had been counting twice, so better detection makes our published totals smaller, not larger.
2026-07-25: /at and /at/daten/vergabedaten-oesterreich-abdeckung; improved cross-source duplicate detection. Our Austrian figures count logical awards, not notices, because the same contract is published both on TED and in the Austrian national data. The matching rule in force until 24 July required the contracting authority, the supplier, the value and the award date to be identical in both sources. Austrian framework agreements are procured for open customer lists, and the two sources describe that authority differently, so the rule under-merged. The comparison was widened on 25 July and eight further pairs were adjudicated by hand against the original notices; 215 additional records were linked, on top of the 588 already linked. Nothing was deleted: both notices remain, one is marked as the canonical record. Re-derived over the same 24-month window: 4,432 records / EUR 5,512,964,840 → 4,353 / EUR 4,910,660,075; ending within 12 months 3,084 → 3,028; notice-derived timing 2,202 → 2,198; total analysed Austrian records 18,534 → 18,319 with the end-date basis table re-derived (6,883 / 4,078 / 5,509 / 2,064 → 6,872 / 4,067 / 5,378 / 2,002). The disclosed residuals on the coverage page fall with it: cross-source candidates in the window 9 pairs / EUR 241,095,826 → 3 pairs / EUR 8,542,909, within 12 months 3 / EUR 2,146,067 → 2 / EUR 1,542,909, same-source repeats 52 groups / 63 rows / EUR 66,510,791 → 50 / 61 / EUR 62,510,791, and the most conservative floor 4,360 records / EUR 5,205,358,223 → 4,289 / EUR 4,839,606,375. As-of date on both surfaces moved from 24 to 25 July 2026. No Dutch or German figure is affected; the rule runs for Austria only.
2026-07-22: /rapporten/stand-van-concurrentie-overheids-it-2026; material correction (capture lag). The report states it covers TED award notices published through the 15 July measurement date, but 48 notices that TED had published before that date had not yet been ingested when the figures were computed (45 published 2 to 6 July, discovered in a guard audit on 22 July; 3 previously logged on 18 July as immaterial drift). The monthly ingest predated their arrival. Corrected over the unchanged 15 July window, now under explicit snapshot semantics (award date and publication date both bounded by the measurement date): headline 34.9% (620 of 1,776) → 34.6% (630 of 1,819); annual shares 39.6/34.1/27.8% → 39.6/34.1/27.1% (2024 unchanged; 2025 numerator and denominator move by 1 and 2 with the share unchanged at one decimal); sensitivity without the international-organisation exclusion 36.3% → 36.1%; negotiated-without-prior-call share of lots 18.8% → 18.7%; value-band table re-derived (1,607 → 1,644 unambiguous notices); renewal wall 425 → 426 notices, disclosed values EUR 1.52bn → 1.58bn, peak month December 2026 75 → 74; coverage 1,935 → 1,983 notices from 682 → 691 contracting authorities. The declining trend is unchanged and marginally steeper. Headline, charts, CSV and SVG assets updated. Prevention: the awards ingest now runs on the measurement date before any snapshot is computed, and the standing guard re-derives the published cohort under the same snapshot semantics.
2026-07-22: /rapporten/stand-van-concurrentie-overheids-it-2026; material correction (visibility cohort). The "published since 1 July" visibility figures were measured on 15 July on a signals corpus that still contained content-duplicate rows: the same live procedure republished under a new notice number (corrigenda, deadline extensions) counted as a separate fresh tender, and pre-extension deadlines understated the real response window. A deduplication shipped on 21 July (one row per procedure, latest deadline carried forward), but these figures were not re-examined then. Corrected: 42 tenders, median 65.5 days, 9 under six weeks → 31 unique procedures, median 78 days, 2 under six weeks. The metric now reads first publication to latest published deadline, stated on the page. The section's finding (publication is a late starting signal) is unchanged; the corrected median is longer, not shorter.
2026-07-22: /de/berichte/ein-angebots-quote-oeffentliche-it-2026; material correction (same capture lag as above, Dutch comparison column only). 43 Dutch notices published on TED before the 17 July measurement date were missing from the ingested corpus. Every German figure reproduces unchanged. Dutch column corrected: overall 36.9% (568 of 1,539) → 36.5% (578 of 1,583); annual 40.5/36.9/29.6% → 40.5/36.9/28.7% (2024 unchanged; 2025 cells move by 1 and 3 with the share unchanged); the provisional 2026 DE-NL gap is 10.0 instead of 9.1 percentage points; reconciliation funnel and Dutch value-band cells re-derived (republication chains unchanged at 6 chains, 7 notices). The report's finding (first divergence in 2026 after two close years) is unchanged and slightly stronger. Charts and CSV updated.
2026-07-21: /rapporten/stand-van-concurrentie-overheids-it-2026; material correction. A processing error counted duplicated received-tenders statistics blocks as separate lots: ten notices publish the same statistic two or three times inside one awarded lot, adding 20 phantom single-bid lots to the numerator and 21 to the denominator. Corrected over the unchanged 15 July window: headline 35.7% (640 of 1,795) → 34.9% (620 of 1,776); annual shares 39.8/35.4/28.1% → 39.6/34.1/27.8%; sensitivity without the international-organisation exclusion 33.2% → 36.3% (the excluded notices carried many duplicated blocks, so this figure now sits above the headline instead of below it); the negotiated-without-prior-call share of lots 18.6% → 18.8%. The declining trend is unchanged and marginally steeper. Value bands, renewal wall, coverage and visibility figures were measured on unaffected units and are unchanged. Headline, trend chart, CSV and SVG assets updated. Separately discovered in the same audit: nine award rows across markets stated a non-euro currency (USD/GBP) but had their amounts recorded as euro values. Four sit in this report's value-band table; they move to "no published value" (in-band counts change by two to four notices, every displayed percentage is unchanged by rounding, the renewal-wall figures are unaffected). Ingest now refuses to record a non-euro amount as a euro value. The parser fix and standing guards that re-derive every published figure are part of this correction.
2026-07-21: /de/berichte/ein-angebots-quote-oeffentliche-it-2026; material correction (same processing error as above). Every German figure is unchanged — the German corpus contains no duplicated statistics blocks (the 2026 German lot count 1,545 → 1,544 repairs a transcription slip; the yearly German cells now sum exactly to the German headline). The Dutch comparison column, generated with the pre-fix parser, is corrected: overall 37.7% (588 of 1,560) → 36.9% (568 of 1,539); annual 40.7/38.4/29.9% → 40.5/36.9/29.6%; the provisional 2026 DE–NL gap is 9.1 instead of 8.8 percentage points, and the 2024/2025 gaps are 1.7 and 2.8 points. The report's finding — first divergence in 2026 after two close years — is unchanged. The currency repair described above also moves two Dutch notices with USD amounts out of the Dutch value-band cells (two cells change by one notice each; the no-published-value share rounds from 47 to 48 percent). Charts and CSV updated.
2026-07-18: /rapporten/stand-van-concurrentie-overheids-it-2026; late-arriving TED notices shifted a same-as-of re-run from 1,935 to 1,938 notices and the headline from 35.7% (640 of 1,795 lots) to 35.6% (640 of 1,797 lots). The published report keeps its 15 July measurement; headline, charts, and CSV unchanged. (Superseded by the 2026-07-21 correction above, which re-measures the same window with the repaired parser.)