Gyronomics.
ΕΛ

Changelog

Everything new or changed in Gyronomics, from launch to today. Only changes that affect visitors.

Each entry describes the state as it was on its own date. Figures and claims in older entries may have been corrected by newer ones - for the current picture see the data releases page. Data releases

  1. Improvementv2026.10.10-monthly-bulletin

    The monthly bulletin earlier from November

    • New bulletin calendar from the November data: working day 2 after the last eligible reading day. October stays on 4 November 2026.
    • Next dates: 1 December 2026, 30 December 2026, 1 February 2027, 2 March 2027, 30 March 2027.
    Read the full entry

    Monthly bulletin calendar change, announced on 10 October 2026. The October 2026 issue stays on Wednesday 4 November 2026, as announced. From the November 2026 data each issue comes out 2 working days after the month's last eligible reading day (days 25 to 28, a weekday that is not a holiday), instead of working day 3 of the following month. New dates, old ones in brackets: November 2026 → 1 December 2026 (3 December), December → 30 December 2026 (7 January 2027), January 2027 → 1 February 2027 (3 February), February → 2 March (3 March), March → 30 March (5 April), April → 4 May (6 May), May → 1 June (3 June), June → 30 June (5 July), July → 30 July (4 August), August → 31 August (3 September), September 2027 → 30 September 2027 (5 October). Why: in the October plan, from the reading on 26 October to release on 4 November, the 9 days are almost all calendar waiting, while a reading takes about 95 minutes. At least one full working day always separates the last possible reading from the release. Readings take place on the first eligible day at about 08:45, as for the 25 September base. The /api/public/bulletin.json API has a new release_rules field giving the month each rule takes effect from. The old release_rule.working_day stays and covers the October 2026 data only. The issue catalogue moves to schema v2. On the September issue page only the calendar texts change: the rule, and the date of the first annual change, now 30 September 2027 instead of 5 October 2027. The issue files are unchanged (same SHA-256). Labour Day 2027 falls on Holy Saturday: if it is moved, the April issue will need an announced calendar correction.

  2. Monthly pita-gyro price bulletin

    • A new monthly pita-gyro price bulletin, modelled on a monthly CPI release: pages /deltio and /en/deltio, one issue a month.
    • Monthly Pita-Gyro Price Index with September 2026 = 100, from each shop's change against itself.
    • The September issue is the base month: the level in 78 cities and the 8 to 25 September pilot comparison, not an official rate.
    • Next issue on 4 November 2026, working day 3. No email. The annual Index does not change.
    Read the full entry

    A monthly pita-gyro price bulletin, modelled on a monthly CPI release. New pages /deltio and /deltio/2026-09, in Greek and English. The Monthly Pita-Gyro Price Index has September 2026 = 100 as its base and is chained from each shop's change against itself, under the v2 rules. The first issue, September 2026, is the base month: index 100, with no official monthly change because there was no regular reading in August. It shows the level in 78 cities, with an exact 95% interval in 48 of them. It also shows the 8 to 25 September pilot comparison, clearly marked as not an official rate: +0.25%, 95% interval from +0.18% to +0.34%, on 1,588 pairs. The official comparison is Eurostat's HICP for August 2026: restaurants and cafés +0.1% on the month and 5.1% on the year. One issue a month, on working day 3 of the following month; the next one is on 4 November 2026. Issues come as JSON and CSV that never change after publication, each with its SHA-256. The API is at /api/public/bulletin.json, with a bilingual note for every field. The page prints without a PDF, and the city table runs on to the next page without leaving a blank one. Percent changes are rounded by one rule, half away from zero, the same in the bulletin and in the rate table of the prices page. No email. The annual Index does not change.

  3. Correctionv2026.10.09-what-holds

    Corrections to what was already in circulation

    • The share cards printed 218 and −16.8% instead of 214 and −16.7%. They were regenerated from the series, and the title, description and alt of /axiologisi and /krisi are now derived.
    • In the open data the classic index fell outside the range exported next to it (1976: 314 next to 462-981). New fields index_classic_min and index_classic_max.
    • The 18 years 1976-1993 now cite the monthly wage register, and the table has a separate wage asterisk for grade-B months.
    • Peak and trough follow one rule on every page. 1989 and 1985 are named together, and so are 2025 and 2026.
    • Platform B's rate reads the price the customer pays. Fixed before October's first rate.
    • Smaller fixes: download links of the releases page, the correction form's promise, the coverage line, the 2022 "~9%", the country-comparison note, exact rounding of the open year's catering CPI.
    • Since 6.10, 404 pages had lost their noindex and title after a library upgrade. /aep, /gyro-eur and /kyverniseis answered 307 instead of 200. Both are fixed.
    • The 1976-1993 wage again also cites the legal act, second after the monthly register.
    • No series figure changes.
    • The country comparison no longer has hand-typed rows: Germany is sourced from archived evidence, Spain and Portugal leave the table with a note.
    • The privacy page describes Lovable's new events script.
    Read the full entry

    The share cards showed old figures. The rating card printed 218 gyros and a three-year change of −16.8%, while the series has said 214 and −16.7% since 25.9. The card of the 2019 article printed 308 and 218 instead of 306 and 214. The wages card still drew the classic minimum-wage peak at 511 in 1983; since 27.9 it is 505 in 1989. The three cards were regenerated from the series, together with the crisis card, which changes only in its release stamp. The series does not change. The image description on /axiologisi and /krisi, which travels with every share, was hand-written: "218 gyros a month" and "the pita gyro stands at 52". The series says 214 and 51. The title, description and alt of both pages now come from the series, and the crisis alt names its year (51 in 2025). In the open data (data.json, data.csv, reproduction bundle) the only index range, index_min/index_max, was in era gyros. With the classic unit, 1976 showed 314 next to a 462-981 range and 1989 showed 505 next to 719-824. The index sat outside its own range, and this happened in every year from 1976 to 1994. New fields index_classic_min and index_classic_max were added (1976: 231-491, 1989: 472-541), and the field descriptions now say which range is in which unit. In the FAQ the range next to the classic index is now the classic one. For 2026 the figures stay at 194-238, because 2026 is the reference year of the classic gyro. No series figure changes. For 1983, 1986, 1987, 1988 and 1992 the wage source read "Estimate obtained by deflating the 1989 wage backwards". The series has not used that method since 27 September. The other 13 years from 1976 to 1993 cited the year's act, which gives the wage on one date, not the 12-month mean. All 18 years now cite the monthly wage register that their wage comes from: in the table, on the year page, in the CSV, in data.json, in the year API and in the MCP server. The acts remain sources of the individual months, in the payroll_evidence field of data.json. The old ATA source stays in the catalogue, marked as a method no longer in the series. No figure changes. The table now has a separate wage asterisk. It marks the 11 years with grade-B months in the wage register (1981-1990 and 1992). Until now the wage was marked only through the old ATA source, in 5 years. 1984 and 1989, with 8 grade-B months each, had no mark at all. The asterisk next to the year now refers to the price only. 1983 loses that asterisk because its price is documented, and the mark moves to its wage, which has all 12 months at grade B. The year page shows, for example, "Wage: 4 A / 8 B months". The open data gain the columns wage_months_grade_a and wage_months_grade_b. The download links that the Data releases page declares to search engines pointed at data.json?v=…, which returns 409 once a newer release exists: 4 of 5 did not open. They now point at the immutable /datasets/<sha>/data.csv and bundle.json of each daily release's latest archive. A day without a frozen archive declares no download. The "Found an error?" form promised that a correction "goes into the next release". That was not true: no release since 29 August recorded a decision on a form submission. It now says that submissions are reviewed, with no promised date. If one changes a figure in the series, the change is recorded in the changelog with its source. The "Price and wage coverage" line read "August 2026". It was typed by hand on 28 August and never updated, although the 2026 price rests on a September reading. It is now derived from the data: price collection of September 2026 (the latest regular collection in the register), catering CPI to August 2026, minimum wage in force since 1 April 2026. Two 2022 source notes (Pricefox and Newsbeast) said "~9% catering inflation". The CP11.1.1 catering CPI the series uses for 2022 is 4.7%, and both notes now say so, in Greek and in English. The number is read from the series, not typed. The note under the country comparison in the FAQ now says openly that the Germany, Spain and Portugal rows have no source. Their wage and price were entered by hand, with no citation and no date. The rows stay as indicative until a decision is made either to source them or to withdraw them. The open year's annual catering CPI is now rounded exactly, with the same operation in the series, the Eurostat check and the thresholds. Until now the mean of the months came from a floating-point sum that in some combinations gave 74.99999999999999 instead of 75. With a September-December mean of exactly 5.30%, 1,752 of the 85,439 combinations of months between 3.0% and 8.0% would have given 6.2% instead of 6.3%, that is EUR 4.25 and 216 instead of EUR 4.30 and 214. No figure changes today: the rate stays at 6.7%. The best and worst years now follow the same rule on every page: years are ranked by the exact wage-to-price quotient, not by the rounded figure. The findings said "Worst: 2025" and Gyro Day said "Latest: 2026". Both years print as 214 (quotients 213.69 and 213.89). Both are now named with their grades (A, and B provisional), in the salary calculator too. Gyro Day also said "Earliest: 1984", while the best year is 1989 (22.006 against 22.712 days). It now starts from 1989 and names every year that lands on the same day, 23 January: 1989, 1985, 1984 and 1990. No figure changes. The classic index peak is no longer stated as a single year. 1989 (B, 505) and 1985 (D, 504) are 0.107 apart in the quotient (504.51 and 504.40). Without the intermediate roundings they swap places (504.01 and 504.21). The peak card, the share text, the salary calculator, the food-CPI article and the whitepaper headline now name both. The card, the share text and the whitepaper also say that across the 56 robustness cases the peak falls in 1982, 1984, 1985 or 1989. So the peak year is not a finding. "What the data says" no longer presents model assumptions as findings. The portion falling from about 110 to 88 g, the per-100 g index and the fries are now stated as conditional, as the glossary and the era card already said. The "more food" item quoted 22%, a figure from a different scenario. It now gives the rescaling the index actually uses: about 2.0 times the 1977 product (equivalence 0.497). The best documented year, 1989, now says how many composition tests confirm it: 5 of 7. In the other 2, 1984 comes first. Platform B's monthly rate would have read the catalogue's "original" price wherever it existed, even when it was below the price the customer pays. That was the case for 132 of September's 417 wraps. On the 8.9 → 25.9 rehearsal, over 409 pairs, it wrote 22 rises: 6 with no change in the price the customer pays, and only 16 of the 25 real ones. Fixed before the first rate. The price the customer pays counts, and the original only when it is higher, which means during an offer. The new rule sees all 25 rises. It also reads as an offer 3 cases where only the original rose above the paid price. No published figure changes. The TanStack upgrade of 6 October 2026 renamed the globalNotFound field to _notFound. The code kept the old name, so every 404 page lost its "noindex, nosnippet" and its "Page not found" title, and could be indexed by search engines. This was live from 6 October until this release; the browser tests caught it. /aep, /gyro-eur and /kyverniseis, and their English versions, answered 307 to an address full of defaults, for example /aep?year=2025&metric=gdp&unit=gyros, since they were added (29.9, 4.10, 5.10). The router rebuilds the URL from the defaults and redirects when it differs, while the sitemap lists the bare path. Defaults are no longer written to the URL, as on /data already, and the three pages answer 200. A choice that differs from the default stays in the link. The 1976-1993 wage once again also cites the legal act. Since the 9 October release the wage source is the monthly register. As a result, in the 13 years that used to point to an act (1976-1982, 1984, 1985, 1989-1991, 1993), its link had disappeared from every page. The act now appears second, after the register, in five places: the year page, the table, the per-year sources, the calculations and the minimum-wage article. For the 9 years 1976-1982, 1984 and 1985 it is the year's act. A note says the figure is the register's 12-month mean, not the amount in the act. For 1989-1991 and 1993 the link is the EGSSE archive, which leads to the 1990 agreement. It is therefore shown as "Legal acts of the period", not as the year's act. 1983, 1986-1988 and 1992 have no act. year.json gains a new act field. No figure changed. Country comparison: every foreign figure now has a source. The German row was typed by hand (net 1,560 €, döner 7.50 €, index 208). It is now computed from Eurostat's gross wage (2,343 €) and the statutory contributions, with the actual average supplementary health rate of 3.13%: net 1,830.70 €, döner with meat 7.11 € (2025 average of YouGov's shopper panel, grade B), index 257. The row says the price is from 2025 and the wage from 2026. Its caveats also give the index with wage and price from the same year, 237, together with the sources. Spain (1,050 € / 6.00 €, 175) and Portugal (740 € / 6.50 €, 114) were removed from the table. Their 2026 net minimum wages are documented (1,331.91 € and 955.27 €), but no price survey with a sample and a method exists for the local equivalent, so no index is shown. The Privacy page now also describes the second script the host adds to every page since the publication of 9.10.2026, /__l5e/events.*.js. It sends to /__l5e/trackevents on the same domain each page's path without its parameters, the referring page, time on page, page speed and stability measurements and browser errors. Its two random identifiers are not stored on your device, but its requests carry, like every request to the site, the domain's cookies, including the analytics session-id. Screen and click recording are off. The site uses it for error reports. Until now the page said there was no third-party tool beyond the host's analytics, which was no longer true.

  4. Improvementv2026.10.09-what-holds

    What holds: how EUR 4.30 is made, rules before the data, a publication register

    • The 2026 page shows how EUR 4.30 is made: CPI projection EUR 4.45, evidence blend EUR 4.12, weight 1/2. The weight is now a recorded decision.
    • The reproduction package rebuilds the price of all 51 years. Until now 10 prices could not be rebuilt from the public file.
    • The Eurostat check also shows the price and index a new month would give.
    • October's measurement rules are published before the data: a 95% interval, no reading on a public holiday, a rules file with SHA-256.
    • The consistency check also scans head meta, and every card leaves a record of what it printed.
    • Every publication goes into a register, and a check every 6 hours finds which commit the site serves.
    • Measurement rules v2 before October's data: an exact interval for each city's median from its businesses, only with 6 or more.
    Read the full entry

    Every publication of the site now goes into a register: which code, which data version and which checks passed. The register starts with 9 publications from 13.9.2026. The first 8 were back-filled from our notes, only where the notes recorded the identity of the code. The reason: on 6.10.2026 code with library upgrades went live without a recorded check result, and on 9.10 our notes still said no publication had happened. A check every 6 hours now finds which commit the site is serving. It fails if that commit did not pass the automated checks, or if it was not added to the register within 24 hours. It does not fail because the code being prepared is ahead of the site. The Index figures do not change. The consistency check now also scans head meta: the title, description and alt of every page, and the title and description of every article. A gyro count, a price or a base-100 value that names no year of its own must be the latest year's figure. Every card that prints series figures leaves a record of what it printed, and the build compares it with the series. Numbers written as words, such as "four came back" and "three-year change", are tied to the series too. The 2026 page now shows how EUR 4.30 is produced. The catering CPI projection gives EUR 4.17 × (1 + 6.7%) = EUR 4.45. The blend of the evidence is EUR 4.12 (ANT1: 34.6%, enikonomia.gr: 26.9%, Gyronomics: 38.5%). Their mean with weight 1/2 is EUR 4.28. Then come the source range of EUR 3.70-5.00, the no-fall floor of EUR 4.17 and the EUR 0.05 step. The same breakdown appears for the other nine sticky and soft-anchor years (2012-2019, 2022). For 2013 and 2014 it also says that catering CPI was -2% and -1.8%, while the projection was held at 0%. The 1/2 weight was added on 30 Aug 2026 without a recorded decision. It is now a recorded decision until the modern methodology release. With weight 0, 2026 would be EUR 4.45 and 207; with weight 1, it would be EUR 4.15 and 222. The live Eurostat check now also shows the price and index the series would give with Eurostat's mean, using the same code as the series. Today that is EUR 4.30 and 214. The new release the check asks for with each new month therefore announces its result in advance. The reproduction package now rebuilds the price of all 51 years from the anchors, the rates and the price trace. Until now 10 prices could not be rebuilt from the public file: 2012-2019, 2022 and the EUR 4.30 of 2026. The original documents remain outside reproduction, as before. The October measurement rules are published before the data, in a file with the thresholds, the holidays and the eligible days. The monthly rate will carry a 95% interval. "Increase" or "decrease" will be written only when the interval excludes zero. On the 8.9 → 25.9 rehearsal the interval was +0.18% to +0.34%. The same business on two platforms does not count twice in the interval. City medians also get an interval, together with the number of distinct shops behind the figure. This matters because with few shops the interval comes out artificially narrow. In September, 17 of the 41 cities with fewer than 10 listings would have had a zero-width interval. No regular measurement on a public holiday. October is read on the 26th or 27th (the 28th is a holiday), December only on the 28th, and March 2027 only on the 26th. If a month is missed, the next change is published as a two-month change, with no estimate for the missing month. The Calculator loaded 1,102,181 bytes of JavaScript, over its 1,100,000 limit, already after the library upgrade of 6 October, and this release added another 16.7 KB. The address checks of seven pages (/psalida, /prices, /data, /gyro-index, /embed, /widget, /press) and of /releases loaded whole page modules on every page, including the catalogue of data archives. They moved to small modules. The Calculator fell to 1,088,584 bytes and every other page is smaller than before this release (the Index 1,211,538 from 1,214,608). The limit did not change. October measurement rules, version v2, written before the reading of 26 or 27 October. The 95% interval of each city's median becomes exact, from the ordered prices of businesses, instead of a bootstrap. The same business on two platforms counts once, and the interval is published with its businesses and its exact coverage. Below 6 businesses no interval is published: the city keeps its median and its shop count, with a flag. On September's data the bootstrap gave a single-point interval in 22 of the 78 cities. The new rule gives an interval in 48 cities and a flag in 30. The rate keeps the platform-combination strata, and a new test shows that a move of a whole platform does not widen its interval. rules-2026-10-v2.json changes rule 11 only. v1 stays public and unchanged. The sources of the country comparison were archived on 9 October 2026: 36 files (statutes, Eurostat, Destatis, GKV-Spitzenverband, YouGov, BOE, Diário da República), each with its address, retrieval time and SHA-256. Some addresses did not return the document: three PDFs of the German Federal Law Gazette answered with a page shell, one page gave a 503 error, and two links of the Portuguese social security led to the site's home page. These were not kept as evidence. They are listed with the reason, and official copies took their place. New checks recompute every hash and find every quote in the archived text. They also rebuild the German wage, the index and the figures in the caveats from the archive. The consistency gate went from 960 to 975 checks. The regular live check now accepts only the exact name of the new script, not its whole folder. It fails if screen or click recording is turned on or if the data is sent elsewhere. It also fails if the script itself stops keeping those settings off when none are given. It now reads script tags the way a browser does. Until now an unquoted src, or a data-src after the src, passed the check as clean. A change to the script's settings that would make the Privacy page false therefore breaks the check.

  5. Newv2026.10.09-what-holds

    When the 2026 figure changes, and when each release went public

    • 214 and EUR 4.30 hold while the September-December catering CPI mean stays at 5.30% or more. Below that the same rule gives EUR 4.25 and 216.
    • versions.json gives each release a first_published field, the first recorded publication that served it.
    Read the full entry

    /api/public/versions.json now gives each version a first_published field: the build time (UTC) of the first recorded publication on gyronomics.gr that served this version or a later one. date stays the day the version was prepared. The difference shows in the four versions from 28.9 to 5.10. They were prepared on those days, but the first recorded publication that served them is the build of 6.10.2026 at 10:15 UTC. For older versions the field stays null, because the build times of their publications were not recorded, and no guess takes their place. A new version also shows null until its publication is in the register, that is, until the next publication. We now publish in advance when the 2026 headline changes. EUR 4.30 and 214 classic gyros hold while the annual catering CPI enters the series at 6.3% or more (the rule's threshold is 6.28%). With 8 months published, that means a September-December mean of at least 5.30%. If it comes in lower, the same rule gives EUR 4.25 and 216, and 2025 stays alone at 214. At 8.7% or more it would give EUR 4.35 and 211. The sentence is on the 2026 page and the thresholds are in year.json (provisional_basis.headline_band).

  6. Newv2026.10.05-governments

    Gyros by government

    • Wage, gyro price and gyros per month by government period, with a lag from 0 to 6 months, separately for the wage and the price.
    • What happened by party, the euro era only, a map of wage lag times price lag, what survives under every version, a shareable image and sourced government dates.
    Read the full entry

    The new page shows how much the net minimum wage rose, how much the price of a classic gyro rose and how many gyros the wage buys per month, by consecutive government period and by party, from the same annual series as the Index. It is arithmetic, not evidence of cause: a government does not set the price or the wage alone, and which year belongs to which government is a choice. That is why the reader moves two settings: the way the years are assigned and a lag from 0 to 6 months, separately for the wage and for the price (the minimum wage is set by decision, the price reacts later), and whatever they choose stays in the link. The 6-month limit is a choice of the page and not a measurement: no source sets how much lag policies have in Greece. It started at 24 months and came down the same day to 9 and then to 6, on the user's instruction. The lag is not removed to get a clean conclusion. Instead the page tries both ways at every combination of wage lag and price lag, with a 7 by 7 map, and shows what survives: of the 9 comparisons 7 hold under all versions, and in gyros per month PASOK comes out above ND in all of them. That holds inside the 6-month limit only, and the page says so at the top: a conclusion that holds inside the limit does not say what holds outside it. The reader also sets a lag rectangle (wage times price) they consider plausible, and the page recomputes the verdicts inside it. For each period the page also shows how much the price rests on interpolation, and the 2012 minimum-wage cut applies from a date when a different government was in office from the one the 30 June rule gives it to. Government dates come from the Wikipedia list of prime ministers, with the raw file and its SHA-256 in the repo and a check in the build. The page also has a button to copy a link, its own sharing card and a shareable image (Greek and English, PNG and SVG), a method section and CSV/JSON downloads. The page does not give a “what would have happened”. It shows what happened (an accounting by party, an identity that does not say the party caused it), what happens inside one currency (the euro era only, with a small-sample mark for parties with few years) and the fifty-year extrapolation only as a range, stated not to be a forecast. In the euro era the ND and PASOK result in gyros is not the same as that of the whole series. The series and the calculations do not change.

  7. Newv2026.10.04-gyro-eur

    GYRO/EUR: the gyro as a currency

    • Three pairs in a ticker format: the price of a classic gyro, gyro per euro, and the wage in gyros.
    • Range, logarithmic scale, price-bounds band, statistics, a table and downloads.
    Read the full entry

    The new GYRO/EUR page shows the euro price of a classic gyro, its inverse and the wage Index, from the same annual series as the Index. Choose a pair and a range (5, 10, 25 years or the full series), a linear or logarithmic scale and, for the price, a band of the published bounds. Beside the chart are the change, the compound annual rate, the high, the low and the maximum drawdown. Points are annual, so there are no candlesticks, volume or volatility, and no forecast. The open year is drawn dashed. The page explains why the “all-time high” is nominal: part of the increase is general inflation. Selections stay in the link and across a language switch, and the table and the CSV/JSON downloads give every annual value with its bounds. The series and the calculations do not change.

  8. Improvementv2026.10.04-gyro-eur

    Platform B limit-window test and October preparation

    • The limit test ran with 150 reads, no refusal, and a window under about 3 minutes.
    • Incomplete, with no change to any price or rate. The regular measurement is proposed for 26 October.
    Read the full entry

    The test of the platform B product-detail limit window ran on 4 October, since it had not run on 1-3 October. Six of the seven blocks of 25 reads completed, with pauses up to 40 minutes: 150 requests, all HTTP 200, no rate-limit refusal and no limit header. The block after the shortest pause (2 minutes) read all 25, so the window is shorter than about 3 minutes. The test is incomplete, because the tool stopped the process at two hours before the 80-minute block, and it is not repeated, since the conclusion would not change. The exact window and whether the limit is a fixed window or a bucket were not determined. The October collection was also prepared: a new folder with no reads and a pre-check of the three readers, with the robots.txt files unchanged since 25 September. The regular measurement is proposed for 26 October. The Index, the prices and the monthly rates do not change.

  9. The economy in gyros

    • 14 official measures: GDP, debt, income, consumption, investment and public finances.
    • Year and unit selection, history, bounds, quarterly debt and downloads.
    Read the full entry

    The new Gross Domestic Pita page shows annual observations for 2000–2025 in euro and gyro equivalents, including per-resident measures. Each measure carries its definition, period and source. Household income for 2025 remains unavailable and historical price estimates retain their bounds. Separate quarterly debt uses a fixed 2025 reference price without claiming a measured quarterly gyro price. An interactive example shows why a higher gyro price reduces equivalents without debt repayment and leaves debt/GDP unchanged. Selections persist in links and language changes. JSON, CSV and the original data from six Eurostat sources are published with integrity hashes. The headline Index series is unchanged.

  10. Improvementv2026.09.28-1984-press-followup

    Year comparisons, evidence and press research

    • A clearer chart, optional lines, two-year comparison and mobile year controls.
    • Comparison links and language changes retain the unit, scenario and both years.
    • The text layers of 36 Simaia pages from September through November 1984 were screened.
    • Complete originals and visual review identified three unrelated orders on olive oil, yoghurt and books.
    • No wrap price was accepted, the series is unchanged and 21 records remain in this catalogue intersection.
    • Visual review of twelve pages from three older complete issues resolved their catalogue mismatches without a new price.
    • All 216 monthly payroll evidence cells are now public: 114 A, 102 B and 0 U, with a 30-source catalogue and strict reproduction-bundle checks.
    • Rereading Gazette B 115/1982 withdrew the unsafe May–August 1984 upgrade; evidence-only changes no longer move the graphics' numeric archive.
    • The full 1997 image identifies the 200-GRD item as a bare skewer; the retrospective 180–220-GRD 1998 pita-gyro claim is sensitivity-only and the series is unchanged.
    • 1982 has the widest remaining index band at 628–1,310; visual review of twelve pages found no new price and does not arbitrarily narrow the ±35% range.
    • A second 6 June 1981 newspaper corroborates a wholesale-price formula announcement, not the order or an absolute 1982 price; the band remains unchanged.
    • The exact 10.4 and 12.2 coefficients are attributed to Market Order 14/1989 and are not carried backwards into the unknown 1981 formula or 1982.
    • A complete visual review of 18 Patris pages dated 7–11 June 1981 found no order or price; the negative result is limited to those four issues.
    • No digitized 1981 file was identified, and the central holding found begins in 1983.
    • The archive route now targets `GRGSA-MAG ADM22.2` and `GRGSA_LAR ADM004.01`, which cover the dates and explicitly name market-order material; a request was drafted but not sent.
    • Original Messinia Order 13/1985 repeals Orders 15/1984 and 7/1985, not the sought 12/1984; a separate request to the Messinia archive was drafted but not sent.
    • Calculator loading and the final mobile chart-year label were corrected.
    Read the full entry

    The catalogue intersection for `σουβλ*` and `αγορανομ*` contained 30 unread 1984 issues. The latest nine and all 36 of their pages were screened. For the three issues containing a substantive order reference, the complete original was retrieved and page 1 was visually reviewed. Order 40/1984 concerns olive-oil inventories and four months of stable prices, Order 16/1984 amends 6/1984 and sets sheep-milk yoghurt prices of 24, 32 and 63 drachmas, and Order 56/1984 concerns book-trade profit margins. None is the target Order 12/1984 or gyro-wrap price evidence. The other matches are directory entries, dates and advertisements without an established absolute price or wrap identity. Three older complete issues with catalogue-text mismatches were also retrieved and all twelve pages were visually reviewed. One `σουβλ*` match was spit-roasted chicken rather than a wrap; the other two catalogue mentions were not found in the originals. No observation is added, the series is unchanged and 21 issues remain unread. The request to the Messinia archive remains prepared but was not sent. The Index opens with the selected series and its range. Wage or price is optional on a separate right-hand euro axis, and other paths are enabled explicitly. Two-year comparison follows the selected unit and scenario, calculates percentages before integer rounding and preserves choices in links and language changes. Mobile controls now include a year selector, previous/next and direct source links. The 1984 research test verifies the 21 genuinely open issues instead of assuming undocumented completion. Unpublished additions prepared on September 27 are recorded today, preserving the previous day's published notes. The 1981 calendar, previously recovered in separate tax research, is now included in payroll research scenarios. August–October retain grade A as continuations of the original July change; November–December remain grade B because the original ministerial decision is unrecovered. Two original gazettes establish the Christmas 1980 and Easter 1981 bonus fractions. Payment convention and OEK treatment still require a decision before changing the series. Seven deliberate errors were rejected by the checks and independent arithmetic reproduced the results. Offline October preparation verified dates, the comparison baseline, frozen reports and three raw-data backups without new collection. The tool's completion message no longer assumes the absence of a monthly rate. Setup instructions and consolidated project status were updated, preserving older notes as history. On the Index page, the heavy interactive Recharts view was removed from the initial static closure and now loads as it approaches the viewport. Headline results and the complete accessible table remain in the initial HTML, while a fixed-height bilingual status avoids layout shift. The new check failed first without the dynamic boundary and now protects the split. Later, the APIs published 216 monthly evidence cells (114 A, 102 B, 0 U), every B was mapped to an open question and the 38,521 OCR was corrected to the visually confirmed 38,251 in two INE reports. The shared catalogue maps all 30 source IDs, with 24 public HTTPS URLs and six explicit unresolved public copies. Visual rereading of Gazette B 115/1982 corrected the interpretation: article 7 rounds seniority and marriage amounts, not expressly every ATA adjustment. The May 1984 amount of 28,876 is therefore insufficient without an application table or explicit amount, and May–August return to B. The graphics' numeric archive identity now ignores this documentary overlay and is protected by a bitten test. The remaining interpolated years are now ranked from the production series: 1982 is first at 628–1,310, width 682, and 1985 second at 611–1,277, width 666. Visual review of twelve pages in three retained 1982 issues found no eligible wrapped-product price. The negative result applies only to those issues, does not narrow the ±35% band and changes no series figure. A second contemporary paper, Ipeirotikos Agon of 6 June 1981, corroborates that a wholesale-price-based souvlaki formula and a forecast 2–3 GRD rise were announced. Together with Rizospastis it dates the announcement to 1981, but it does not supply the operative order, coefficients, exact product, geography or continuity into 1982. Article 201 explicitly attributes the exact 10.4 and 12.2 coefficients to Market Order 14/1989, so they cannot be carried backwards into the unknown 1981 formula or 1982. Complete visual review of 18 pages in the available 7, 9, 10 and 11 June Patris issues found no order, formula, coefficient or price. That negative result is limited to those issues. No absolute price follows and the 628–1,310 band remains unchanged. A separate branch recovered original Messinia Order 13/1985, protocol EM 1281, on cafe items. It repeals Orders 15/1984 and 7/1985, not 12/1984, and provides no gyro-wrap product or price. The finding narrows the unsent Messinia archive request to Orders 12/1984 and 15/1984 plus the 1984 order register. The browser check found an initial JavaScript budget regression on the Calculator. Payroll URL validation was separated from the evidence catalogue without changing calculations or relaxing the budget. The clipped final chart-year label was corrected on mobile. The methodology check now follows the series’ already published payment convention instead of the old thirteen-payment assumption.

  11. Correctionv2026.09.28-1984-press-followup

    Price bounds and evidence verification

    • The 1983–1984 price-bound classification was corrected: index ranges become 701–957 and 725–972 instead of 601–1,236 and 615–1,276, with no change to the central series.
    Read the full entry

    For 1976–1993 the series used a wage from one date and a flat 12.22% deduction rate. It now uses the twelve-month mean from the frozen calendar, with each month's rate, and 14 payments as a consistent full-year income convention. For an ordinary employee without a special category, employee OEK is 1% through January 1983, zero from February 1983 through 1987 after TEAM entry, and 1% from 1 January 1988. Decree-law 2963/1954 and IKA circular 48/2011 support the rule. Laws 149/1975, 1766/1988 and 1849/1989 explicitly concern employer contributions and are recorded as negative evidence. Wages and indices change in 18 years: the period-product peak moves from 887 in 1983 to 849 in 1982, while the classic peak moves from 511 in 1983 to 505 in 1989. 2026 remains EUR 919.72 and 214. The separate tax scenario now produces positive tax in 14 years, newly including 1989 and 1992; the headline index remains before income tax and the scenario is not a complete tax audit. Grade-B cells remain identified; integration is not a legal certification of an individual payslip. The generator verifies frozen inputs and five PDFs by SHA-256 and was deliberately made to fail under five mutations before being locked. A separate price-bound correction stops applying the blanket ±35% price-control-era policy to direct free-market prices in 1983 and 1984. The existing ±15% single-source policy now applies: index ranges become 701–957 and 725–972 instead of 601–1,236 and 615–1,276. Central prices and the indices 809 and 830 remain unchanged. Product, geography and representativeness limitations remain separately disclosed, while regulated and interpolated years retain ±35%.

  12. Correctionv2026.09.27-payroll-readiness

    Monthly payroll and contributions for 1976–1993

    • A one-date wage and flat 12.22% rate were replaced by the verified twelve-month calendar and each month's contributions.
    • The series uses 14 payments in every year and an explicit employee-OEK sequence around TEAM entry.
    • The period-product peak becomes 849 in 1982 and the classic peak 505 in 1989; 2026 remains 214.
    • The separate tax scenario now produces positive tax in 14 years, including 1989 and 1992; the headline index remains before income tax.
    Read the full entry

    For 1976–1993 the series used a wage from one date and a flat 12.22% deduction rate. It now uses the twelve-month mean from the frozen calendar, with each month's rate, and 14 payments as a consistent full-year income convention. For an ordinary employee without a special category, employee OEK is 1% through January 1983, zero from February 1983 through 1987 after TEAM entry, and 1% from 1 January 1988. Decree-law 2963/1954 and IKA circular 48/2011 support the rule. Laws 149/1975, 1766/1988 and 1849/1989 explicitly concern employer contributions and are recorded as negative evidence. Wages and indices change in 18 years: the period-product peak moves from 887 in 1983 to 849 in 1982, while the classic peak moves from 511 in 1983 to 505 in 1989. 2026 remains EUR 919.72 and 214. The separate tax scenario now produces positive tax in 14 years, newly including 1989 and 1992; the headline index remains before income tax and the scenario is not a complete tax audit. Grade-B cells remain identified; integration is not a legal certification of an individual payslip. The generator verifies frozen inputs and five PDFs by SHA-256 and was deliberately made to fail under four mutations before being locked.

  13. Improvementv2026.09.27-payroll-readiness

    1981 research, documentation and October readiness

    • The 1981 payroll research was completed and two original bonus gazettes were recovered, with uncertainties retained.
    • October's baseline and September backups were verified; project instructions were updated.
    • The Index chart now loads near the viewport while the complete table and headline results stay in the initial HTML.
    • The later same-day payroll change is recorded in the separate correction entry.
    • All 216 monthly payroll evidence cells are now public: 111 A, 105 B and 0 U, with strict reproduction-bundle checks.
    • Shared press-graphic export helpers were separated from the heavy press page, keeping the article bundle within budget.
    Read the full entry

    The 1981 calendar, previously recovered in separate tax research, is now included in payroll research scenarios. Five completed months retain grade B: the two newspapers cite APE and the original ministerial decision remains unrecovered. Two original gazettes establish the Christmas 1980 and Easter 1981 bonus fractions. Payment convention and OEK treatment still require a decision before changing the series. Seven deliberate errors were rejected by the checks and independent arithmetic reproduced the results. Offline October preparation verified dates, the comparison baseline, frozen reports and three raw-data backups without new collection. The tool's completion message no longer assumes the absence of a monthly rate. Setup instructions and consolidated project status were updated, preserving older notes as history. On the Index page, the heavy interactive Recharts view was removed from the initial static closure and now loads as it approaches the viewport. Headline results and the complete accessible table remain in the initial HTML, while a fixed-height bilingual status avoids layout shift. The new check failed first without the dynamic boundary and now protects the split. Later, the APIs published 216 monthly evidence cells (111 A, 105 B, 0 U), every B was mapped to an open question and the 38,521 OCR was corrected to the visually confirmed 38,251. No series figure changed.

  14. Correctionv2026.09.26-mean-wage-source

    Unsourced 1993-2019 contributions, mean and median wages across changes of definition, and the tab's income tax

    • The mean-wage witness moves to 2010-2022; the two sources differ by 3.8 percentage points and the agreement claim is removed.
    • Contributions in 1993-2019 were not 16% in every month; with a source for each change the classic index moves in 12 years by 1 or 2 points, 2026 stays at 214.
    • The mean wage now takes the OECD series; the previous source changed compiler in 2024.
    • The 2000-2025 loss becomes 51.9% from 46.3%, against 46.6% for the minimum.
    • A hand-typed ratio (0.67) now comes from the data.
    • The median is measured 2010-2022, under one sector classification: −41.0% against −39.7% for the minimum, instead of −43.3% against −38.1%.
    • Income tax: the reference profile without the contribution subsidy; 2022-2025 close (EUR 0, 58, 116, 253) and the tab shows the audited tax; 2026 becomes EUR 340 instead of 330.
    Read the full entry

    CONTRIBUTIONS 1993-2019, SERIES CORRECTION: from 1 January 1993 to 31 May 2019 the series applied 16% employee contributions in every month, without a source. 16% was in force only from 1 January 2003 to 31 July 2011 and from 1 June 2016 to 31 May 2019. The rate of an ordinary IKA employee with auxiliary insurance, rebuilt by component with two sources for each change: 15.80% in 1993, 15.90% from 1 January 1994 (EKLA 0.10%, Law 2224/1994), 16.00% from 1 January 2003 (workers' welfare, Law 3144/2003), 16.50% from 1 August 2011 (OAED +0.50%, Law 3986/2011), 15.50% from 1 July 2014 (the 1% DLOEM contribution abolished, Law 4254/2014) and 16.00% from 1 June 2016 (auxiliary 3.50%, Law 4387/2016). Law 3144/2003 granted the increase retroactively from 29 April 2002; with the decision that a retroactive provision counts from the year it was legislated, 2002 stays at 15.90%. The OECD (Taxing Wages) is an independent witness: it agrees in all 19 years 2000-2018. The wage changes in 15 years and the classic index in 12: 2011 from 417 to 416, 2012 from 338 to 336, 2013 from 325 to 323, 2015 from 314 to 316, 2016 from 302 to 303, and one point up in 1993-1996, 1998, 1999 and 2001. The 2011-2012 fall becomes 416 to 336. 2026 stays at EUR 919.72 and 214, and the 1983 peak (511) is untouched. Three sources that had been read only in web republications are archived with SHA-256: IKA circular 110/1992, IKA 45/2014 and article 15 of Law 2224/1994. Later the same day the two pages on Law 3144/2003 were archived too (a summary of IKA circular 82/2003 and a note on IKA 56/2003 and 72/2003). They say the 2002 arrears were paid in one sum by 28 November 2003, that is within 2003, as the convention has it. As before, the employee-contribution subsidy and wage stamp duty/OGA stay out. 1976-1992 keeps the 12.22% assumption. The previous series stays in archive 3186dece of 25 September. THE WAGES PAGE AND THE FAQ, CORRECTION: the mean wage came from Eurostat's earn_nt_net. From 2024 that dataset is compiled by a different body (the Joint Research Centre instead of the OECD), flagged as a break in series, and its gross earnings sit 6.7% (2024) and 11.6% (2025) above the OECD's. The 2000-2025 comparison crossed that break. The mean is now the OECD Taxing Wages average wage for every year, from a stored file pinned by SHA-256; earn_nt_net stays as a witness. For 2000-2023 the two sources are at most EUR 0.57 a year apart and no index changes. The mean becomes 511 classic gyros in 2024 (was 546) and 467 in 2025 (was 522). The 2000-2025 loss becomes 51.9% (was 46.3%) against 46.6% for the minimum: the mean loses more than the minimum, not less. After tax 56.0% (was 51.8%). The ratio to the national-accounts mean was typed by hand (0.67 in 2024, while the data gave 0.66) and now comes from the data. The phrase that the wage roughly doubled is gone; for the mean it does not hold (+77.2%). This correction changes neither the median nor the Index. THE MEDIAN WAGE, SAME-DAY CORRECTION: the Mean and median wage page and the FAQ measured the median's change from 2006 to 2022. The 2006 point, however, uses a different sector classification (NACE Rev. 1.1) from the later waves of the Structure of Earnings Survey (NACE Rev. 2), so the comparison crossed a change of definition. It is now measured 2010-2022: the median loses −41.0% and the minimum −39.7%, instead of −43.3% and −38.1%. The distance falls from 5.1 to 1.3 points. All five points stay in the chart and tables, with 2006 marked for its classification and 2022 for its new method (survey plus administrative data). The deciles, sex and under-30 comparisons now start in 2010 (the under-30s end in 2018, since 2022 has no age breakdown), and two conclusions changed. In the spread, the ratio between the ends goes from 2.96x to 3.29x: the bottom tenth loses −43.5% and the top −37.2%, so the ends moved apart; until now the page said the distance had barely moved (3.59x to 3.29x). By sex, the gap goes from 10.4% to 9.9%, with women at −41.0% and men at −41.3%; the convergence from above (18.7% to 9.9%) depended on 2006 and is gone. The under-30s lose −40.2% against −32.0% for the overall median (2010→2018), instead of −39.6% against −34.6% (2006→2018). For the mean witness (the survey's measured mean against the OECD model), the later same-day decision makes 2010-2022 the main comparison (−37.4% against −41.2%), replacing the agreement claim based on 2006-2022. On income tax the current convention is confirmed: the series stays before tax, and after tax we show only the mean, from the same body as its line (the OECD). The mean's correction note quotes the −46.3% published in the morning, computed with the contribution rate in force then. INCOME TAX, DECISIONS AND A CORRECTION TO THE TAB: the tax reference profile (single, 40, full year at the minimum wage) now states four things explicitly. First, the employee does not receive the employee-contribution subsidy of Law 2837/2000, the same assumption as the Index and the Ministry of Labour's EUR 797 net; the subsidy stays as a separate sensitivity. Second, tax is stated in whole euro, rounded half up. Third, the Easter bonus uses the wage 15 days before Easter: for 2023 that is 1 April 2023, at EUR 780. Fourth, the ongoing year enters as a labelled projection. On this basis 2022-2025 close at EUR 0, 58, 116 and 253 (to the cent 0.00, 57.68, 116.14 and 252.91, independently recomputed); with the subsidy they would be 41, 122, 275 and 432. 2026 is a projection of EUR 340. Closed years in the audit rise from 21 to 25 of 51. In the audit, 2011-2012 become EUR 379 and 208 without the subsidy but stay open for February 2012 and the IKA ceilings; the site still shows them as a scale scenario. The After income tax tab took its tax from a simplified scenario: 14 times the monthly average, with no Easter date and no 1/24 on bonuses. So it computed less, e.g. EUR 237.67 instead of 253 in 2025; the table showed only 2026, at EUR 330 instead of 340 and disposable income of EUR 892.19 instead of 891.39. It now shows the audited tax where a year is closed, and every row says audited, projection or scenario. The 207 era gyros of the default view are unchanged; in the alternative CPI views they fall by one (590 instead of 591, 452 instead of 453). The same amounts now feed the series' after-tax fields. Tax still does not enter the headline Index, because not all 51 years are documented yet. The mean-wage witness now compares 2010-2022, under one sector classification: −37.4% for SES against −41.2% for the OECD, a 3.8 percentage-point gap. The claim that they agree, based on 2006-2022, is removed. 2006 remains an annotated observation. The test verifies the interval and each source separately, without imposing an agreement threshold. The headline series is unchanged.

  15. Newv2026.09.26-mean-wage-source

    Pita or sandwich, again: the regular measurement across 1,654 menus

    • A new article on the naming border in the regular September measurement.
    • A new short edition of the book on the corrected series: 12 years change by 1-2 gyros (2012 from 338 to 336), 2026 stays at 214, the mean wage comes from the OECD and the median runs from 2010.
    • A 61-city map and a minimum-sample rule for price comparisons.
    Read the full entry

    NEW ARTICLE: “Pita or sandwich, again: the regular measurement across 1,654 menus”. The naming border in the regular 25 September measurement: sandwich is the majority name in 13 cities (12 in the pilot), Thessaloniki has 115 of 127, without the word 311 of 1,654 would lose their price, and the map has 61 cities, the 10 new ones with coordinates from two sources. New sample rule: the two names' prices are compared only with 4 or more shops each. We state openly that the 7 September article put Ioannina at zero while it was 1 of 34 (now 3 of 49). The 7 September article stays as published, and the two link to each other. NEW SHORT EDITION OF THE BOOK: “One wage, how many gyros?” dated 26 September 2026, 32 pages per language, on the frozen 2026.09.26-mean-wage-source dataset. It includes the sourced 1993-2019 contribution rates by period. The classic index changes in 12 years by 1-2 gyros, e.g. 2011 from 417 to 416 and 2012 from 338 to 336, and the 2012 wage fall is now 18.0% instead of 17.7%. 2026 stays at 214 gyros. The mean wage now comes from the OECD (Taxing Wages), as on the site: 973 gyros in 2000 and 467 in 2025, instead of 971 and 522 with Eurostat earn_nt_net. The median keeps its five SES points: 2006 is shown as an open point (NACE Rev. 1.1) and 2022 is flagged as a new method. The change in the text and in Table 6 now runs 2010-2022, from 930 to 548 gyros, instead of 2006-2022 (966 to 548). The book computes percentage changes from the integer indices, so they can differ from the site by 0.1 point (mean −52.0% against −51.9%). A new edition note on page 2 is generated from the data. The 21 and 25 September editions remain at their addresses.

  16. Improvementv2026.09.26-mean-wage-source

    Gyros as a word of its own, before the October measurement

    • Six helper classifiers aligned, an October guard before network access, and updated browser checks.
    • The classifier no longer mistakes gyromprizolaki for a gyro pita, or SANDWICHARA for a sandwich.
    • The second platform's detail read stays off in October, after the pilot.
    • The bare word pitogyro now counts as a wrap; a test of the second platform's limit is written for early October.
    Read the full entry

    COLLECTION, BEFORE OCTOBER: the classifier on all three platforms now accepts an item as gyro only when the word gyros (its forms, and pitogyro) stands on its own, not when the letters appear inside another word. Under the old rule two Athens records, most likely the same shop on two platforms, took their price from a pork gyromprizolaki sandwich at EUR 6.80. Measured on the frozen September data: 13 of 1,654 records would have no price, no price changes, and 2 of 78 city medians move, Heraklion EUR 5.30 to 5.25 and Sitia EUR 4.90 to 4.45. September is not republished; the rule applies from October. The pilot read of the second platform's product details stopped as designed at the 31st of 50: the platform allows about 30 per time window, so the read is not enabled in October. Same-day addition, by decision: kotogyros, pansetogyros and gyropita written as one word stay out, and SANDWICH counts as a wrap word only when it stands on its own. As a substring it gave a price to the EUR 15.00 SANDWICHARA chicken gyro in Ioannina. With both rules September would have had 14 of 1,654 records without a price; the Ioannina median stays EUR 4.20. The classifier change does not touch the Index. Afternoon addition, by decision: the bare word pitogyro now also counts as a wrap, as a word of its own with the same inflections the gyro rule recognises, so words such as kotopitogyro stay out. It occurs in none of the 189,814 September raw items, so the addition changes no row. The second platform's product details stay off in October. Its limit (about 30 details per unknown window) will be measured separately in early October, outside the 25-28 window, in blocks of 25 with 2 to 80 minute pauses; the test is written but has not run, and it also keeps the response headers that were missing on 25 September. No published number changes, including the Index. Research with no change to the series: the Christmas bonus decisions of 1977, 1978 and 1979 were found in the original gazette (B 1277/1977, 1081/1978, 1094/1979: one monthly salary, with the holiday allowance excluded from the base), and the Easter bonus decisions of 1977, 1979 and 1980 in Makedonia (half a salary). So every year 1976-1981 has 1.5 salaries of bonuses documented, while the series keeps 12 payments for 1976-1980 and 13 for 1981. The series does not change yet: moving 1976-1993 to the 12-month mean will come as a release of its own, with a before/after table. The same gyro, SANDWICH and PITOGYRO word rules now apply to the six helper readers and analysts, with an independent copy in each tool. The regular October collection refuses to start with GYRONOMICS_B_DETAIL=1, before network reads or registry writes. Browser checks that expected old indices, a pilot instead of the regular collection, and differences without their positive sign were corrected. September snapshots remain unchanged.

  17. The first regular monthly measurement: gyro prices by city, September 2026

    • 1,654 shops in 78 cities, from the three platforms, on 25 September.
    • Median by city with its denominators, each platform's coverage and unread shops by name, on the Prices page.
    • The measurement does not change the Index; the first monthly rate comes in October.
    Read the full entry

    We read the three platforms on 25 September, inside the 25th-28th window set by the protocol. There are 1,654 shops with a gyro pita in 78 cities, and for each city we publish the median, how many shops support it and from which platform. Eight shops on one platform were not read: seven have closed there, one refuses its catalogue. They are listed by name and not counted as shops without gyros. The rules were written the day before, ahead of the data: this month only the level is published, and the measurement does not change the Index or its 2026 figure. The first monthly rate comes in October, each shop against itself. Against the 8 September pilot, in the 14 cities with at least 20 shops in both, the median moved by more than EUR 0.05 in two: Heraklion from EUR 4.95 to 5.30 and Rhodes from EUR 4.40 to 4.50. This is a finding, not a rate, because the pilot did not keep the fields needed to compare the same product. Every shop and the table can be downloaded.

  18. Correctionv2026.09.25-september-collection

    Contributions from the wrong year, your wage in the analytics, and pages that reloaded on their own

    • Contributions for 2019-2026 now follow sourced periods: 2020 and 2021 carried the next year's rate, and the 13.37% from 2025 was missing.
    • The calculator no longer writes your amount into the page address.
    • After each publish, open tabs reloaded and erased what you had typed into a form.
    Read the full entry

    The wage calculator wrote every amount you typed into the page address. The host's analytics script sends the full address when the page or anchor changes, so switching basis or clicking Your own gyro bill was enough for your wage to be logged in the analytics. The amount now stays on your device and goes into a link only when you press copy or share. A link someone sent you still opens with its amount. The trade-off: switching language no longer carries the amount. Separately, after each new version of the site was published, open tabs reloaded without asking and anything typed into a form was lost. A notice now says a new version is available, and the page refreshes only when you press it. Finally, contributions: the old chain, without a source, had 2020 at 14.12% and 2021 at 13.87%, the next year's rate, and lacked the 13.37% in force from 1 January 2025. Each period now has a date and a source (16% to May 2019, then 15.75%, 15.33%, 14.12%, 13.87%, 13.37%), and the check against Eurostat agrees to the cent for 2019-2025.

  19. Improvementv2026.09.25-september-collection

    The 2026 Index at 214: the year's wage and CPI from its months, a privacy page and form limits

    • The 2026 Index moves from 218 to 214. From 1994 the wage is the mean of 12 months, and 2026 food-service CPI the mean of Eurostat's months; 2026 is marked provisional.
    • New Privacy page: what each form keeps, what is public, what stays on your device and what the host's analytics send.
    • Submission limits on the contact and review forms too; the database sets the submission time.
    • An automatic check of the live site every 6 hours.
    Read the full entry

    The new Privacy page describes what exists, not intentions: each form's fields and who sees them (price reports and approved reviews are public), the two keys the site keeps in your browser, the 30-minute session-id cookie and what the host's analytics script sends, the processors (Supabase, Lovable, Cloudflare) and how to ask for access or deletion. A check fails if a form, key or external script is added without being declared there. Every form links to the page. In the database, the contact and review forms had no submission limit; they now allow 5 and 3 an hour. Limits also apply to signed-in accounts other than administrators, the sign-in page no longer offers account creation, and the database rather than the browser records the submission time, so a back-dated report cannot slip past the duplicate check. The limit counter keeps a hash of the IP address and deletes it after 24 hours. Finally, an automatic check reads the live site every 6 hours: key pages, error pages served with 200, a real 404, the service worker, the data version and scripts. The final build check failed in the publishing environment, which does not write the Cloudflare configuration file, so the publish never reached the site; it now checks the folder being published and confirms it is the output of the same build. For the first regular monthly price measurement, 25-28 September, the pre-check found all three platforms answering as the day before, and the collection now keeps the computer awake while it reads. And the methodology: until now the series kept the 1 January wage for 1994-2011 and the new wage after the change for 2012-2026, two conventions and neither the wage of the year. From 1994 the wage is now the mean of 12 months, with each month's contributions; for 2026 a mean gross of EUR 910 (January-March 880, April-December 920) and EUR 919.72 a month after contributions, with the bonuses spread over 12 months. The 2026 food-service CPI is the mean of Eurostat's months (January-August, 6.7%) instead of a 4.6% estimate, and the 2026 price moves from EUR 4.25 to 4.30. The 2026 Index moves from 218 to 214, level with 2025, the lowest of the series; 25 years change, none before 1994, and the 1983 peak (511) stays. 2026 is marked provisional until the year closes. The rules for the first monthly rate, in October, were also written ahead of the data: each shop against itself on all three platforms, only when the product keeps its id and no recorded field changed, with the stricter full-identity check beside it. Without changing any published figure, an optional read of the second platform's product details was prepared, the naming tables were rebuilt from the regular measurement (the 7 September article keeps its own data until the switch is decided), and three research files with primary sources were added: wages, bonuses and contributions 1976-1993, income tax in every year, and how to define the mean and median wage. Both books have a new 25 September edition with the new series; the 21 and 24 September editions remain available as they were.

  20. Correctionv2026.09.24-reader-corrections

    Six wrong figures in the text, and cards that spread old numbers

    • Hand-written figures in articles, FAQ and notes now come from the series.
    • Social cards with old numbers were temporarily replaced by the homepage card.
    • The newsletter now tells the truth: nothing is sent today.
    Read the full entry

    The Index and its calculations are unchanged; what changed are texts that wrote figures by hand and had drifted from the series. The tax article said thirteen years with tax, it is 12. 2002 was described as among the highest of 2002-2009, while at 390 classic gyros it is the lowest. The food-service CPI article attributed the 3.7-point premium to food service, when it belongs to the gyro; food-service CPI runs about 0.9 of a point a year above headline CPI. A chart note said the price rose about 3.4x in 1998-2019, while the series gives 2.8. The FAQ on the mean and median wage compared figures in two different units; all are now in classic gyros and match the wage page table. The naming article gave Athens 445 shops and three sandwiches instead of 452 and 5. The consistency page showed -0.48% contributions, rendering the annualisation of 14 payments as a negative deduction; it now shows 13.87% and 14 payments. The regional factor uses a decimal comma in Greek. The cards shown when a page is shared had printed figures from other days: the 2026 card read 225 gyros and EUR 4.10, the Index card read Peak 1998. Until they are generated again from the series, those pages show the homepage card, which carries no numbers. Finally, the newsletter form said the signup was complete although no bulletin is sent; it now says we keep the email for when the monthly bulletin starts.

  21. Improvementv2026.09.24-reader-corrections

    The full book in dated editions

    • Each edition of the full book has its own dated address and is never rewritten.
    • Old PDF links lead to the current edition.
    • Preparation for the first regular monthly price measurement, 25-28 September.

    The full book was tied to all of the site's code, so every change, even a footer link, required regenerating 359 pages, and the PDFs were rewritten at the same address. Now, like the short edition, each edition lives in its own dated folder and states the date and dataset version it came from. Addresses already shared lead to the current edition. The tools for the first regular monthly price measurement were also prepared: a rate limit that answered OK will no longer count as a shop without gyros, and September's publication rules were written before the data. No published figure changes.

  22. Newv2026.09.21-short-book

    Gyronomics in 32 pages

    • A short book with six chapters, charts, tables and inline sources, in both languages.
    • Choose the short or full edition from Data, the homepage or the footer.
    • A dedicated book page in navigation and search, with a cover preview, chapter links and edition sharing.
    Read the full entry

    The new short edition tells the index story from beginning to end, with nine charts, nine tables and twelve bibliography entries. Data now offers two clear choices: the short edition for a first read and the full edition for every article and the documentation. Each has PDF reading and download buttons, page count, size and date. The homepage and footer lead to the chooser. Downloads work without JavaScript. The complete short-edition source package is available as a ZIP. The book preserves the dated 2026.09.19-book series, while the full edition was regenerated from the updated content. Economic figures and index calculations are unchanged. The dedicated /book and /en/book page is now included in navigation and search. It shows the actual short-edition cover and chapter titles, linking to the corresponding PDF pages. Each edition has its own share link, preserved when switching language. Existing Data links remain usable.

  23. Newv2026.09.19-book

    New page: the pita gyro rating, CCC with a negative outlook

    • The Index Book: thematic chapters, every article, tables and sources in PDF.
    • New rating page: the Index in letters, with the boundaries printed.
    • Today CCC with a negative outlook: 218 gyros a month, three-year change -16.8%.
    • The worst band in 51 years, since 2024. Only 1983 stands at the top.
    • 16 actions since 1976, with the move in gyros beside each one.
    • With bands of 40 or 60 the letter changes, the ranking does not.
    • It is not a credit rating: no state, no debt, no forecast.
    Read the full entry

    Rating agencies give a letter and an outlook, and everyone understands immediately what it means. The new rating page does the same for the Index, with one difference that is also its reason for existing: the letters add NO information. They are the band the published number falls into, the boundaries are printed, and anyone who dislikes letters can read the number and lose nothing. No weighting, no hidden factors, no committee. Today the net minimum wage buys 218 classic pita gyros a month, which falls in band CCC, and the three years 2023 to 2026 give -16.8%, so the outlook is negative. It is the worst band in the 51 years of the series, first reached in 2024. One year alone stands at the top, 1983, with 511 gyros. The bands are round numbers in the natural unit, every 50 gyros, rather than shares of some peak: a scale anchored on the peak would rewrite history every time a record fell, and one anchored on zero would flatter the present, because zero is never approached. The page also gives the full history: 16 actions since 1976, with the move in gyros beside each one, so that events can be told apart from a boundary merely being crossed. The largest annual fall is 2012, from 414 to 322 gyros. The largest rise is 1982, with 103 more. Because the width of a band is a convention and a convention is not allowed to produce the conclusion, the page shows what happens with bands of 40 and 60 gyros: the letter changes, to C and B respectively, but under every width today stands on the worst band ever reached and 1983 stands alone at the top. And plainly, high up rather than in the small print: this is not a credit rating. It has nothing to do with the Greek state, with debt, and it forecasts nothing. One quantity is graded, how many pita gyros a wage buys. The Index Book collects the core chapters, every article, tables and sources in edited Greek and English PDF editions. It includes linked contents, bookmarks and an edition date. Downloads are available on Data and in the footer. Interactive tools remain on the website. An integrity check binds the files to the content edition. A link to the Gyronomics community on Reddit was also added to the footer.

  24. Newv2026.09.16-reproducible-views

    New page: how many litres of fuel the minimum wage buys

    • New "Fuels" page: litres per month on the same wage, 2005-2026.
    • 2005-2025: pita gyro -47.1%, heating oil -28.2%, petrol -20.1%, diesel -10.0%.
    • The gyro ran faster than every fuel. The Index is not a cost-of-living measure.
    • Heating oil on heating months only: out of season it carries the automotive excise.
    • Before 2005 there is no price and none is invented; the current year is partial.
    • New crisis page: five goods with 2011 set to 100, before the minimum wage was cut.
    • Petrol 115 and diesel 116, above 2011. The pita gyro at 52, with its trough in 2025.
    • Two crises: the fuels bottom out in austerity, electricity in 2022, the gyro now.
    • The 2012 drop is one event: the minimum wage cut by 20.8%, a common numerator.
    • Across bases 2008 to 2011 the levels move, the structure does not. The trough stays 2025.
    • Electricity is asterisked where the two official sources disagree, not chosen silently.
    • The current year enters dashed: inside 2026 the fuels fall back again.
    • In euros: the 414 gyros of 2011 would need a wage of 1,759.50 instead of 924.46.
    • Why the lines separate: wage +22.0%, petrol +5.7%, pita gyro +133.8%.
    • The 2026 mean is not the current price: petrol 109 on the mean, 98 on the last week.
    Read the full entry

    A new "Fuels" page. The same wage the Index runs, on a different good: how many litres of petrol, automotive diesel and heating oil the net minimum wage buys per month, from 2005 to today. Prices are weekly pump prices including taxes from the European Commission's oil bulletin. The finding is an uncomfortable one, which is why it is worth publishing: between 2005 and 2025 the wage lost 47.1% of its purchasing power in pita gyros, but 28.2% in heating oil, 20.1% in petrol and 10.0% in automotive diesel. The gyro ran faster than every fuel, which means the Index is not a stand-in for the cost of living and that goods are not chosen to flatter a story. Heating oil is measured on heating months only, October to April, and the reason is not cosmetic: out of season the product carries the automotive excise, and in 2005 its summer price equals the automotive price exactly. On an all-week annual mean the fall came out as 6.3% instead of 28.2%. Before 2005 this source has no price and none is invented; the current year is partial, drawn dashed, and excluded from the changes. The published Index does not change. A second page arrived with it. The crisis page sets five goods side by side on the same wage: pita gyro, petrol, automotive diesel, heating oil and electricity. The base is 2011 at 100, the last full year before the minimum wage was cut, and the reason is not a political date but that the wage is the numerator of every line. All five fell, but four found a bottom and came back: petrol now stands at 115 and automotive diesel at 116, above 2011, heating oil at 94 and electricity at 65. The lowest point for the pita gyro is 2025, which is now, and it stands at 52: the same wage buys half of what it bought in 2011. The troughs do not fall in the same year, and there it shows that this is not one crisis but two. The fuels bottom out in 2012 and 2013, during austerity. Electricity in 2022, in the energy crisis. The gyro now. The drop all five lines share in 2012 is not five price stories but one: the minimum wage was cut by 20.8% and the wage is a common numerator. The page decomposes it through an identity, quantity equals wage over price, with no remainder left: the gyro fell 22.2% with its own price moving just 1.9%, while heating oil fell 37.6% because its price rose 27.0% within one year. Because a base year is an argument, every other starting year the data allows is tried, 2008 through 2011: the levels move a great deal, petrol landing anywhere from 73 to 115, but the structure does not move at all. Under every base the trough for the gyro is 2025 and its recovery is zero, and a test pins that so the base cannot become a hidden argument. Electricity carries an asterisk on 2022 and 2023, where two official sources report different changes, 24.2% against 43.1% and 2.1% against -15.0%. The conclusion does not hang on it: electricity is one of four comparators. The chart runs to the current year with the open part drawn dashed, because otherwise it would end on the best fuel year and imply a climb that has already stopped: inside 2026 petrol drops from 115 to 109 and diesel from 116 to 103. The open year is drawn, not measured, and enters no trough, recovery or table. Heating oil does not get it at all: measured on heating months only, its open year holds the January-April leg alone, and across closed years the two legs of the season sit between -15.4% and +42.9% apart. Electricity comes from a half-yearly series whose 2026 has not been published. Every year of it downloads as CSV and JSON, and sits inside the page as well for anyone who does not download files. The finding is also given in euros, because an index of 52 hurts nobody: for the wage to buy the 414 pita gyros of 2011 at the current price it would have to be 1,759.50 euro net instead of 924.46. The same arithmetic gives 849.12 for petrol, which is less than the actual wage, and that is why all five goods are there: a page whose numbers were always frightening would deserve less trust than one whose arithmetic sometimes runs the other way. It now also says why the lines separate, through the same identity across the whole window: the wage rose 22.0% and is shared, so what distinguishes each good is its own price, from 5.7% for petrol to 133.8% for the pita gyro. Finally it says what would change the conclusion: the trough of the gyro sits one point away from the open 2026, and if that year closes where it stands, no recovery at all becomes a recovery of one point. The chart was rebuilt for the phone, where the page is read: every line ends with its name and its current value, so no legend is needed, not even in a screenshot. A reader question added something both pages were missing: the mean of an open year is NOT the current price. 2026 opened at 1.714 euro per litre of petrol and the last week in the bulletin, 14 September 2026, gives 2.158. The mean of 37 weeks puts petrol at 109, but on the last week alone it comes out at 98, already below 2011, and automotive diesel at 88 instead of 103. The lines keep the mean, because that is how every other year of them is measured, but the current price is now written beside it so the page does not appear to disagree with the sign on the forecourt. The pita gyro does not have this problem, and that is said too: its price for the open year is the price being measured now, not a mean of the months so far.

  25. Newv2026.09.16-reproducible-views

    New page: how many pita gyros the mean and median wage buy

    • New "Mean and median" page: the same index on three wages, one basis and one unit.
    • 2000-2025: the mean loses 46.5% and the minimum 45.6%. The loss is not a minimum-wage story.
    • 2006-2022: the median loses 43.2% against 36.1% for the minimum.
    • Not a wage cut: wages roughly doubled while the price of a gyro nearly quadrupled.
    • Inside the median: decile spread, sex, the under-30s, income tax, and a second-source check.
    • Gaps stay gaps: the median has five points and the next is not expected before 2028.
    • The published Index does not change: it remains the minimum wage.
    Read the full entry

    The Index measures the minimum wage, and the comment we heard most often was "fine, but I do not earn the minimum wage". The new "Mean and median" page answers it with a measurement. The same calculation runs on three wages, on one basis and in one unit: classic pita gyros per month, after employee contributions and before income tax. Between 2000 and 2025 the mean wage loses 46.5% of its purchasing power and the minimum 45.6%. Across the years with a measured median, 2006 to 2022, it loses 43.2% against 36.1% for the minimum. The loss is not a minimum-wage story. The reason shows when the index is split into its two parts: wages roughly doubled, but the price of a gyro nearly quadrupled. It is not a wage cut. The page also shows the spread between the poorest and richest tenth, what the figures say by sex and for the under-30s, how much income tax takes off, and a verification against a second independent source. Gaps stay gaps: before 2000 no such measurement exists for Greece, the median has only five points, and the next one is not expected before 2028. Nothing is interpolated or extended backwards. The published Index does not change: it remains the minimum wage.

  26. Improvementv2026.09.16-reproducible-views

    Lighter previews and a stable publication gate

    • Posters cite the archive that reproduces their figures, not today’s release.
    • Home shows thumbnails instead of the download files: 2,125 KB down to 217.
    • A new image-weight budget joins checks that measured JavaScript only.
    • The published-asset check no longer fails on a stopwatch.
    Read the full entry

    The three Home previews render at 313×208 and were downloading the 1536×1024 posters: 2,125 KB for three thumbnails. Each graphic now has two thumbnails, 384 and 768 wide, and the browser picks by screen: 217 KB at standard density, 651 at double. PNG and SVG downloads are unchanged, at full size and at the same addresses, and the collection under Numbers & stories shows the same images as before. Thumbnails carry the landscape composition's checksum in their name, so a new composition yields a new file; they are verified by SHA-256 against deployed bytes and carry their own weight budget. That budget was missing: the existing gates explicitly measured client code only, so image weight quadrupling on 16 September met no check. The published-asset check copied the whole graphics directory, 40.7 MB, while opening only the 32 catalogue files; both grew with every new composition until it passed the default timeout and failed the build at 5,343 ms against 5,000. It now copies what it reads and declares an explicit limit, with the reason written in, while the same corruptions are still rejected one by one and a corrupted thumbnail was added. Finally, environment files other than the tracked `.env` are explicitly ignored, so a local `.env.local` cannot leave with a commit. Posters printed the current daily release inside themselves and are content addressed, so every release that moved no figure rewrote all 48 of their files, 31.1 MB. They now cite the oldest immutable archive that reproduces the published series, today release 2026.09.14-historical-press, and a check recomputes every plotted point from that archive. They are rewritten only when the figures actually change, which is what the signature claims. Live share images still show the current release because they are drawn on demand. No figure, price, image or licence changes. The home page now opens with the answer in euros. The "what if the wage bought as much as before" tool already existed but sat below the cards, the history and two article blocks. The first figure on the page now says that buying as many pita gyros as in 1985 needs 2,040 EUR a month against the 924 EUR of today net minimum wage, so the wage covers 45% and would have to be 2.2 times larger. Matching 2019, only seven years ago, needs 1,309 EUR. It is not a new claim but the same index read backwards, and it states beside itself that it measures one product rather than the cost of living. The full tool with its year selector stays where it was.

  27. Improvementv2026.09.16-reproducible-views

    Lighter downloads and measured interaction response

    • Graphics follow the supplied references: bold titles, a two-colour curve and matching year annotations.
    • A scholarly 300-GRD wrap indication was verified, but without a price-collection year it cannot become a series anchor.
    • Three retrospective 1997–2000 references were logged as unsupported context and did not change the series.
    • A repeat check of a scanned 1988 issue confirmed metadata only, not readable primary content or a price.
    • Lighter Index updates reuse number formatters and draw the share image only when needed.
    • A small shared file-download helper avoids loading export logic and source text.
    • Large ZIP compression runs in a worker with integrity validation and a deadline.
    Read the full entry

    The shared Blob-download helper is isolated so images and simple JSON do not load CSV/PDF code and source text. Existing imports remain compatible, and object URLs are released even when downloading fails. ZIP compresses the large archived file in a worker after the same checksum validation. The deadline also terminates compression. Repeatable laboratory measurements cover scenario changes, PNG and ZIP, with first and repeated use. CPU/network conditions, source identity and limitations are recorded. Measurements are not presented as visitor INP or production-cache performance. Data, formulas and archived contents remain unchanged. The accessible table reuses number formatters for the same language, preserving every cell and its precision. Chart data stays stable when only year focus or event/range display changes, and refreshes normally for a different selection or visitor report. The share image draws near the viewport or on focus/download, with reserved space to prevent page movement. Exports still capture the exact requested view. Changes are informed by separate interaction measurements and diagnostic profiles, without claiming field INP. Calculations, numerical data and historical releases are unchanged. The Gyronomics in pictures collection follows the user’s reference composition: heavy serif headlines, a large figure on the right, warm paper, blue and orange area fills and a takeaway strip. The historical axis and annotated years match the reference, with values from the same series. Landscape images become 1536×1024; portrait images keep an independent composition. The gallery shows one image per row. Sources and qualifications stay visible, with the immutable dataset linked from SVG and HTML. Earlier downloads remain at their original addresses.

  28. Newv2026.09.16-reproducible-views

    Reproduce the selected export

    • Four graphics from the series, in EL/EN, landscape and portrait, with PNG/SVG downloads.
    • A companion JSON and standalone check for the selected CSV export.
    • One ZIP with all replay files, plus personal-budget and Reverse JSON and PNG downloads.
    • Restore inputs from JSON and save personal-wage and future-scenario calculations.
    • Public research-gap JSON and shared selections/version handling across API and MCP.
    Read the full entry

    Selected exports optionally include a JSON companion identifying parameters, exact archived inputs and the CSV checksum. A standalone verifier checks the calculations and exported fields without private repository access. Success does not certify historical sources. The selected view also downloads as a ZIP containing CSV, companion JSON, archived data, verifier and instructions after checksum validation. Personal budgets and Reverse gain separate reproduction JSON and PNG images of the selected calculation. A standalone verifier recalculates every result. Reference prices identify their exact archive, while personal prices are labelled as assumptions. The guide explains download and offline execution. Files contain personal inputs and are saved only on the user’s request. The legacy personal JSON remains in a disclosure, with complete download and optional-delivery checks. Local reproduction JSON import now validates and previews a saved calculation before applying its inputs. Saved results remain distinct from a new calculation using current data. Personal wages and future scenarios gain JSON, PNG images and standalone verifiers. Exact wage basis, assumptions, horizon limits and previous archives are preserved. Incompatible or changed files do not alter current selections. Earlier application findings were reviewed and completed work was separated from open issues. The new gaps.json exposes the same register as the Gaps page. MCP reads that register, preserves scenario, starting year, unit and version, and explicitly returns errors instead of different data. Public endpoints share version headers, CORS and GET/HEAD/OPTIONS. Current data rejects old versions with HTTP 409 and continuation links, while historical archive lookup and existing payroll-research links remain supported. A guide on Data explains the distinct behavior of catalogues, archives and live checks. The Gyronomics in pictures collection joins Numbers & stories: the historical journey, wage and price from a common base, then and now, and a calculation explainer. Each topic has Greek and English editions with separate landscape and portrait compositions. Images use the same calculations as the pages and retain wage basis, assumptions, daily release, licence and immutable dataset link. PNG/SVG downloads work without JavaScript; embedded fonts retain their licences. Home shows three previews, while related articles, the two comparison-year pages, the Gap and methodology reuse the same files. Fixed comparisons are distinguished from interactive selections. The build checks SVG agreement with the series, checksums and actual deployment assets. Numerical data, methodology and existing archived datasets remain unchanged.

  29. Correctionv2026.09.16-reproducible-views

    One selection throughout Reverse

    • Image verification runs directly with Bun without loading browser tooling.
    • The chart now follows live changes to the system reduced-motion preference.
    • Reverse selections survive language changes, navigation and sharing.
    • Scenarios correctly explain pledge horizons and display carried-forward wages.
    • Model coverage is distinguished from missing sources, with safe JSON-LD embedding.
    • PNG/ZIP progress and retry, retained keyboard focus and tooltips that fit mobile screens.
    Read the full entry

    Reference year, personal target and wage basis share one state. Selecting a year through stories or controls clears the previous custom target. Existing born links remain compatible. The birth-year card provides selectable text when copying fails and ties success feedback to the current selection. The historical price-correction report is verified against its original archived pair, so a newer daily release no longer requires replacing a historical file. An outdated future-scenarios note claimed wages stayed flat after a pledge expired. Existing calculations stop at the final pledged year; the copy now describes that actual behavior. In custom paths, years without a new value now display the wage carried forward by the calculation instead of a different base value. Legacy tax-model coverage is no longer presented as absence of tax sources. Price gaps concern the declared category of years without a retained anchor, not every interpolated year or every source. Grade D alone is insufficient. The Gaps page, JSON and MCP share that explanation. Structured JSON-LD escapes characters that could prematurely close its script. Unused throttling code and the inactive /ai visual target were removed. The old share image and active admin log access remain. The numerical series, taxes and archived datasets are unchanged. The share card reports PNG preparation, success or failure and supports retry without duplicate downloads. Feedback belongs to the selected view. ZIP/JSON preparation keeps keyboard focus on the button and rejects repeated activation. Tooltips stay within the viewport while retaining keyboard and Escape behavior. Section boundaries use the same optional error-reporting helper as the root page. Reporting failures cannot interrupt recovery. Context is limited to fixed fields and Response diagnostics include only status, without URL or body. Host receipt of events has not been verified. Index lines continued to enable animations when the system requested reduced motion. They now remain still in that mode and follow preference changes without a reload. Normal motion remains available. Year navigation, documented-price markers and accessible announcements are preserved. Published-image verification now runs directly with Bun. It does not create an intermediate Node program or load browser tooling. Generating new images still uses Chrome. Numerical, SVG, PNG and catalogue checks remain active, with no changes to images or data.

  30. What does a year of pita gyros cost?

    • Per-order delivery fees, independent frequency and a complete personal cost breakdown.
    • New article with monthly and annual bills, illustrative scenarios and the personal calculator.
    Read the full entry

    A new bilingual article converts steady weekly frequency into monthly and annual spending. Copy, an accessible table and share images use the current era-price reference and the existing personal-budget calculator. Examples are explicitly hypothetical, holding price fixed and using the calculator’s week/month convention, without order-level charges. A hypothetical price difference is not presented as an observed increase. Direct links lead to the personal calculator and price evidence. The article is included automatically in the blog, related articles, EL/EN metadata and sitemap. Code-generated images have figure and fingerprint checks. The historical Index, wages and model assumptions remain unchanged. Consistency checks validate spending amounts against the declared scenarios only within this article, without accepting them as wages elsewhere. The personal calculator now accepts an optional per-order fee and independent order frequency. Wraps, delivery and totals are shown separately, with the full formula and JSON v2. Orders and fees stay fixed during price comparisons. Missing or invalid inputs cannot retain stale results, and clearing resets all personal fields.

  31. Improvementv2026.09.15-historical-evidence

    Historical menus and traceable price evidence

    • Selected calculations, images with exact links and immutable dataset citations.
    • Shared price precision on screen/PDF and complete bounds in the accessible chart table.
    • Year pages: selected evidence, clearer navigation and on-demand JSON downloads.
    • System appearance, user-initiated installation, skip navigation and contrast fixes.
    • Lighter blog and history loading, with complete copy and build-time JavaScript budgets.
    • Homepage article discovery, contents, reading time and sharing across the blog.
    • Athens 2000: guide minimum and public archive-research inventory.
    • Six new Crete 2000–2001 local prices; Order 11/1985 retrieved without a gyro-wrap price.
    • Order 23/1981: kilogram and plated portion, not pita. Faster, documented archive screening.
    • Thessaloniki menus from 2009–2010 separate spread charges; the Athens 1999 travel account is verified.
    • A large parallel archive review records access failures without creating a new national anchor.
    Read the full entry

    New Pita Gyro menus at the same address appear on the 2009 and 2010 pages. Base prices and spread charges remain separate. Caption dating is distinguished from a printed year, without assuming unchanged recipes or weights. The existing Woohoo candidate was retrieved in full and appears under 1999, with serving format and exact purchase date unresolved. It is not counted as another independent source. Simaia of 1 December 1988 publishes a Messinia pricing formula with separate requirements for cooked gyro, raw-pork skewers and added pita. It gives neither an absolute price nor an observed weighing. Only the relevant complete PDF page is retained, with separate original and extracted-file fingerprints. The complete issue stays local. A public register summarises findings and original sources. Separate folders preserve reviews by period. Partial downloads and unreadable OCR are not reported as empty sources. Previous releases and immutable archives remain available. Public menu coverage is regenerated from year pages, counting each document once. Release comparison checks use the specific immutable pair of the earlier correction, without assuming that the latest two releases change numbers. New year links retain the selected language. Additional parallel screening retrieved the original Order 23/1981. Its prices are kilogram and plated-portion bases with additional charges, not pita-wrap prices. The 1981 and other price gaps remain open. The December 1980 retrieval was identified as the same already registered PDF. A new large-PDF discovery tool retains text in Form XObjects, validates HTTP ranges and explicitly discloses absence of visual review. The relevant complete page of the new order is retained with separate hashes. The source appears under 1981 and updates the 1988 targets and Gaps page. No numerical Index value changes. Added five local gyro-wrap price claims from two travel sources for Crete in 2001, preserving product, drachma amount, trip day or month, separate publication date and retrieval fingerprints. The joint Heraklion/Hersonissos price remains one claim, not two shops. The Fabbri diary’s original publication date remains unknown. The year page, JSON and Gaps explain why these local prices do not automatically replace the national proxy. Monetary conversion uses the shared exchange rate. The numerical series is unchanged. Family menus, multilingual diaries, student newspapers and specific pricing orders were also investigated. Duplicates, undated menus and prices for other products are recorded separately. The same package visually verified a 750-drachma pita-gyros price for Crete in an original Polish newspaper dated 21–22 October 2000. The issue date is not presented as an observation day and the Hersonissos photograph does not locate the price. This brings the new price claims to six from three sources. Order 11/1985 was also recovered: it changes other dishes, with no gyro-wrap price. Close reading of Article 2 corrected an initial internal interpretation before publication: it sets penalties and commencement after publication, rather than explicitly preserving other articles. Retrieval of the document is resolved; the year’s price gap remains. Order 12/1984 is still a target. Only Polish p.12 and regulatory pp.3–4 are retained in the repository, with separate fingerprints and render-equivalence verification. Years 2000, 1985 and 1988 and the public register were updated. Index figures and previous archives remain numerically unchanged. A further archive round adds an independent Athens guide price from iDNES in 2000, explicitly a minimum with a separate table-service surcharge. Publication date is not turned into an observation day. Two researchers read the publisher page; no article copy or fabricated SHA is claimed. Year 2001 discloses current Fabbri republication metadata without counting another account or certifying first publication. A public file and Gaps distinguish 83 ELIA catalogue records from 19 visually reviewed undated records. Linked images are not all inner pages. The two GAK fonds were checked through descriptions, lists and EAD without finding digital documents. Travel narratives, foreign newspaper columns and chain leaflets have separate reviews and explicit access limits. Earlier gaps and every numerical Index value remain unchanged. The original 2001 Kronika Beskidzka gives gyro in a bun or roll without explicit pita and was excluded from the series. A menu initially undated in the ELIA catalogue was dated to 1950 from its printed date, without changing the original snapshot. New guards cover price, dating, duplicate counting and the actual scope of visual inspection. A selected article card appears below the homepage Index using shared metadata without loading article bodies. All articles gain estimated reading time, keyboard and no-JavaScript contents links, canonical sharing and two or three editorially chosen related reads. Sharing falls back to clipboard or a selectable link; cancellation never triggers copying. The annual-spending article also explains optional delivery fees. History initially sends at most twelve entries in the selected language. Categories and the complete archive have real links that work without JavaScript; changing category resets the short list. The blog catalogue loads summaries only, and each article receives its own full copy, metadata, contents and related reading. Shared historical inputs are selected into a small generated file with source fingerprints and equality checks. The build now checks emitted JavaScript budgets and keeps full history and the complete article collection on the server. The public consistency page displays the same report and exports, with checks executed on the server. A technical before/after comparison records the measurement limits. Prices, wages, Index, tax and public API contracts are unchanged. Appearance offers System, Light and Dark, follows device changes when System is selected and synchronises saved preferences across tabs. Installation opens from the footer instead of a timed overlay, with EL/EN instructions and cancellation or failure handling. New installation and Apple Touch icons are generated from a vector G. The first keyboard link reaches the main content even without JavaScript. Darker orange in the light theme, readable history badges and larger footer link targets address measured contrast and target-size failures. Browser checks cover appearance, installation and accessibility. Figures and public data contracts are unchanged. Year pages receive only the selected year’s and language’s research and analysis from the server. Cross-year comparisons required to interpret a source are retained. The Index’s joint analysis receives summaries for both product choices, without the entire scenario collection. Contents keep calculations, sources and available research directly visible, with separate access to deeper analysis. The complete bilingual research download is requested from a public endpoint on demand instead of being embedded as a data URI. Its filename and data are preserved. A first download needs the network unless already saved; evidence text remains in the HTML. JavaScript budgets now cover yearly pages and the Index, with guards against full collections returning to them. Selected panel renderings were compared across every year in both languages. The numerical series, wages, methodology and existing API responses are unchanged. Price presentation now agrees across the data table, year comparison, calculation explanation, chart tooltip and keyboard readout, and selected/full PDF exports. Classic-equivalent prices and prices below one euro retain three decimal places; both range endpoints follow the central price precision. The accessible chart table, including the embedded view, now includes the selected series’ actual lower and upper index bounds in every language, unit and scenario. Its description states that only price varies, with wage and composition fixed. Numerical inputs, methodology, CSV/JSON and historical releases remain unchanged. The personal calculator preserves validated amount and wage basis in its URL, language links, reload and back/forward navigation. Typed amounts are not silently converted. Comparison, history, latest-year and since-2019 article images visibly include their specific view and immutable dataset links, including after PNG conversion. All four citation formats pin the dataset version and manifest SHA-256, with baseline JSON/CSV/manifest downloads. Live views are distinguished from the archive, which is not claimed to contain hypothetical or personal scenarios.

  32. Correctionv2026.09.15-historical-evidence

    Fagoto: verified price, uncertain dating

    • Working recovery for failed sharing and clean wage-calculation links.
    • Scenario year selection wraps on narrow screens with different fonts.
    • Actual tooltip bounds, correct PDF precision and explicit hypothetical-scenario treatment.
    • Messinia’s 1988 pricing order and public disclosure of uncertain Fagoto dating.
    Read the full entry

    The original Fagoto archive dates its menu to 2004 or 2005. The verified price and uncertain date appear under both years as one document. Existing use of 2004 in regional normalisation is disclosed. Portion grams are not assigned to a wrap. The numerical series, wages, taxation and regression remain unchanged. Denied localStorage access no longer sends the page to the error boundary through ThemeToggle. Appearance remains usable in memory when storage fails. Chrome rejected the manifest icons; square PNGs and a separate maskable icon were added. The build checks the icons in the actual publication directory against their source files. Research details reopen when the same #research link is clicked, even when the hash does not change. The portion-assumption target has scroll clearance and its contents link appears only when the analysis exists. Price-control and single-source explanations now read the year’s actual lower/upper deviations and published range basis instead of imposing blanket percentages. An input in the price-control era is not automatically described as a ceiling, and an adjusted local price is not presented as a measured national median. Matching generalizations in the table footnote and source assumptions were corrected. PDFs retain the analytical precision of small historical and classic-equivalent prices and show a dash instead of an evidence grade for hypothetical scenarios, with an explicit explanation. Base-series grades and numerical calculations are unchanged. Source explanations also open by tap or keyboard, are associated with their focused trigger for screen readers and close with Escape. A first click can no longer immediately close the tooltip. Fixed mobile wrapping for the scenario start-year control. With a different Greek fallback font, the label and selector could push the explanation beyond the viewport. The control adapts to available width without hiding content or relaxing the overflow check. Real Web Share failures fall back to copying and then to visible selectable content if copying is unavailable. User cancellation remains quiet. Copying never opens native sharing, and success feedback belongs to the copied payload rather than a later selection. Wage links discard unrelated parameters and target the calculation section instead of an incidental hash. Invalid or incomplete amounts do not share a previous result. Selected-year images no longer show only a generic page link. The calculator note now explains that amount and basis are included in the page address, replacing the old absolute claim that nothing is sent.

  33. Newv2026.09.14-historical-press

    Your own gyro bill

    • Personal cost, frequency, income share and a comparison of two prices.
    Read the full entry

    A new Calculator section accepts your own price, average weekly or monthly quantity and optional available monthly income after deductions and tax. It shows monthly and annual cost, income share and the difference at another price with frequency held fixed. Week/month conventions are explicit and annual cost is calculated before rounding its monthly equivalent. The series reference price is selected explicitly and distinguished from user input. A local JSON download includes inputs, results, income basis and price provenance. Personal spending fields are not written to the URL or database. Section links, clear validation and reset controls are included. Personal spending is separate from the historical Index; no changes to prices, wages, taxation or immutable datasets.

  34. Datav2026.09.14-historical-press

    Original regional prices and regulated schedules from Heraklion and Messinia

    • 1979–1982 price correction from four newly verified original pages.
    • Separate Messinia 1980 calendar and review of the existing model source.
    • Only relevant PDF pages are stored in the repo, with page mappings and separate fingerprints. Full originals remain local outside Git.
    • New early-period evidence distinguishes pita, bread and pork skewers.
    • A conditional annual Messinia regulated-price reconstruction on the 1979 page.
    • Order, publication and commencement dates remain separate. The national Index is retained.
    Read the full entry

    Eight original Patris, Simaia and Tharros issues add regional price reports and regulations from 1976–1980. One named-shop report leaves the bread format unspecified and retains that limitation. The orders distinguish gyro in pita from gyro in bread, cooked gyro from raw pork skewers, and pita-bread weight from the whole wrap. Requirements are not presented as actual weighings. The Messinia order sequence supports a calendar reconstruction for 1979, explicitly conditional on no uncaptured amendments. The year page shows amounts, days, calculation and original sources, shared with its JSON. This is neither a new national price nor an automatic Index change. Relevant PDF pages are retained privately in a separate folder with distinct source and extracted-file byte counts and SHA-256; public references open library-provider files. A concrete follow-up targets the pita/bread identity in the existing November 1980 source. The new December order and recovered November scan add precise evidence for 1980. The Messinia regulated-price reconstruction now covers the full leap year, with separate commencement and pita prices. The existing Index source is shown in its actual model role with an unverified serving format. A separate folder retains exact originals and hashes. Numerical series values remain unchanged. Further research identified two numerical errors. The 29 November 1980 Rizospastis issue distinguishes bread amounts from pita, while the 8 February issue explicitly identifies gyro in pita with seasoning. The old bread-price anchor is replaced by a Messinia ceiling reconstruction with three periods covering every leap-year day. It is labelled a modelled regional proxy, with explicit continuity assumptions and the existing regulation uplift. The 26 June 1979 issue establishes a later rise and disproves the full-year freeze inferred from a May rule. Years 1979–1982 are recalculated; wages, composition and other years are retained. The 7 February forecast is recorded but excluded as a realised price. Affected year pages and the API provide before/after results, the calendar and original references. New dated sensitivity reports and an immutable dataset retain all previous results. The standalone reproducer now verifies the anchor source calendar too. Only the four relevant original page images were added, with dates, printed numbering and SHA-256.

  35. Improvementv2026.09.14-historical-press

    Historical sources distinguish prices, changes and specifications

    • The 1985–1988 search now has a public register of checks and hashes, without a new Index price.
    • Prices share a city/year selection with counts, provenance and view downloads.
    • The gap follows the selected period and product, with a chart, sources and downloads.
    • Compare archived datasets by year with exact citations.
    • Shared explanation and visible range beside the selected index.
    • Recipe and source for every pinned entry, new previews and a separate Junior exception.
    • Fixed product identities, a public rehearsal and one verified ingredient-choice example.
    • Original references and classifications on the 1981, 1983 and 2004 pages.
    • Shared evidence in pages and JSON, without changing Index prices.
    Read the full entry

    Price research adds evidence with separate publication and observation dates, units and outstanding questions. An announced increase does not become an absolute price, a skewer specification does not become a cooked-gyro measurement, and an indicative leaflet is not a transaction. Sources are retained in a new folder with SHA-256. Public records and annual exports use the same entries. The efood address requirement and a protocol for the next configuration check are documented. A separate folder retains two dated Patris advertisements from 1987 and the register of targeted November 1988 screening. The gaps page links directly to the original PDFs. Neither advertisement was adopted as a gyro price. A fixed product-identity plan and public rehearsal on Prices today. Matching searches the full retained menu for the original ID and never substitutes a newly cheaper product. Missing or changed fields, ambiguous IDs and same or earlier dates cannot produce price ratios. Anonymous files reproduce from original collections with date and hash checks. A separate public Wolt pilot verifies the displayed default configuration and optional tzatziki for one item. It does not certify counter price, checkout total, weight or reference-product equivalence. Original captures, the Index series and previous immutable files are preserved. No monthly rate is published. The consolidated recipe review covers all pinned entries. Two new public Wolt previews in Naxos and Thiva match exact product IDs and complement the earlier Thessaloniki check. Named bread and ingredient choices on other platforms retain exact citations and pricing rules without a synthetic configured total. Junior is a separate size exception. The BOX attempt required an address and did not retain the pickup selection; no configured price or channel is certified. A separate folder retains manual transcripts of the new readings, registered and hashed. Bilingual per-product presentation and public downloads appear on the existing prices page. The earlier pilot, frozen plan, reports and Index are preserved. Headline cards, both comparisons on year pages and table details share one calculation presentation. It shows income after contributions and before tax, the matching price, a price-implied range, composition assumptions only in the classic view, and links to calculation anchors and year sources. The chart band moves from the price axis to the selected index axis and can be toggled. Wage and composition are explicitly fixed within that range. Card disclosures are available in the original HTML. The base series, methodology and archived datasets remain unchanged. Data releases now compare two immutable archives, including artifacts from the same day, pinned by full SHA-256 identifiers. The comparison reads stored monthly income, period/classic prices and both indices without recomputing older releases using current formulas. It separates figure revisions from other row, source and assumption changes. Explanations and sources appear as archived before/after, including interpolation anchors, without fabricated causal attribution. Filters, a comparison link preserved between languages, downloadable differences JSON and original CSV/JSON/manifests are included. Large files load only on request and their checksums are verified; failure shows no unverified result and allows retry. The series, methodology and eight existing immutable archives are preserved. The gap accepts both endpoints from all available years and switches between classic and period gyros. URL selection survives language changes, reload and browser history. Cards, narrative, chart, table and exports use one selected view. A small SVG is available in server HTML, with distinct line patterns, keyboard year reading, a cited SVG download and a complete accessible table with a sticky header. CSV and JSON retain exact inputs, base-100 levels, time conventions, sources, version and provisional CPI status. Both endpoints expose the shared Index calculation, price bounds, grades and assumptions. Links open the same period in Data and the comparison of both products. The Prices page uses one report set for the list, cities, annual summaries and hypothetical model comparison. City/year filters persist in links, language changes and browser history. CSV/JSON include the selected view, loading time, counts, limitations and provenance, without nicknames or free text. City summaries are separated by year, with counts visible on mobile. Organised collections have a distinct section and explicitly do not follow visitor filters. The 1985–1988 search now has a public register of checks and hashes, without a new Index price.

  36. Correctionv2026.09.14-historical-press

    Exact reference for the February 1983 source

    • The Gaps page uses the shared 1984 evidence review instead of dating through an exchange ratio. Its old full-year 1979 freeze claim is also withdrawn in line with the published correction.
    • Partial loads are disclosed and simulations no longer appear below the sample threshold.
    • Corrected rounding drift and categorical claims in the gap comparison.
    • Calculator rejects negative amounts and initializes the correct wage basis.
    • Smaller initial payload and SEO checks compatible with assumption disclosures.
    • Chart evidence now follows product, scenario and starting year.
    • Joint-scenario browser checks follow the current report.
    • 1979–1982 price correction from four newly verified original pages.
    • The 1980 source opens directly and discloses the pita/bread uncertainty.
    • The title and link identify the verified original.
    • Dated reports retain their original release identity when reproduced.
    • Unsupported certainty about clipping dates and absent statistical records is withdrawn.
    Read the full entry

    The generic newspaper catalogue was replaced with the exact scan. The source note separates completed visual article verification from the outstanding review of the full order. Numerical data are retained. Corrected automatic date and version changes in dated wage and robustness reports: a new daily release does not rewrite older reports. Checks still compare all computed inputs and results against the preserved files. The gaps page corrects the overconfident attribution of an undated clipping to 1988: agreement with CPI does not establish its date or independently validate model accuracy. Failure to find an ESYE price series is described as a research limit, not proof that none ever existed. English text and source notes carry the same corrections. Rereading the November 1980 source confirms its amounts but does not establish pita or bread. The claim of a demonstrated common wrap with different filling is withdrawn. Bilingual source notes and the anchor qualifier disclose the unresolved matching, and the link now opens the exact scan. The test that required the unsupported claim is rewritten around its purpose: excluding the ambiguous second price from the skewer-to-wrap ratio. Further research identified two numerical errors. The 29 November 1980 Rizospastis issue distinguishes bread amounts from pita, while the 8 February issue explicitly identifies gyro in pita with seasoning. The old bread-price anchor is replaced by a Messinia ceiling reconstruction with three periods covering every leap-year day. It is labelled a modelled regional proxy, with explicit continuity assumptions and the existing regulation uplift. The 26 June 1979 issue establishes a later rise and disproves the full-year freeze inferred from a May rule. Years 1979–1982 are recalculated; wages, composition and other years are retained. The 7 February forecast is recorded but excluded as a realised price. Affected year pages and the API provide before/after results, the calendar and original references. New dated sensitivity reports and an immutable dataset retain all previous results. The standalone reproducer now verifies the anchor source calendar too. Only the four relevant original page images were added, with dates, printed numbering and SHA-256. The initial correction CI passed build/lint and 60 browser checks, but two checks compared the new screen with the preserved 13 September report. The test now uses the canonical current-report path and also verifies the JSON/CSV links. Full value, peak and no-JavaScript page comparisons are retained. The numerical series and immutable dataset do not change. The selected-year card always read the base series, paired an era price with a classic index and ignored the hypothetical scenario start. It now receives the same selected row as the chart. The tooltip describes that row’s actual rule. Historical entries are separately labelled as base-series evidence. Hypothetical scenarios do not display base-series input grades or numerical evidence scores. Classic comparison and table prices retain the published denominator’s precision. New checks cover both languages, units and starting years, as well as mobile use and JavaScript-disabled year pages. Full CI found the Index initial JavaScript budget exceeded by 6,707 bytes and an SEO check counting assumption fields alongside the headline price and index. The detailed chart card now loads only after year selection. Main explanations remain in the original HTML. The SEO check targets the two headline figures and still rejects a missing index. The performance budget stays unchanged. All seven targeted browser checks passed, including SEO checks across 134 pages. Shared EL/EN amount parsing retains thousands and decimals but rejects negative amounts, text and malformed separators instead of stripping characters and inventing positive pay. A single-payment link without its own amount starts with the wage per payment, not its annualised equivalent. Switching basis still preserves the user’s entered amount. Gap percentage changes now precede integer index rounding, matching the year comparison. Missing or invalid annual CPI is rejected instead of silently becoming zero inflation. The introduction, results, FAQ and search descriptions no longer assume the same result in every period or general living-standard effects. Income is explicitly calculated after contributions and before tax, not read directly from a Gazette. A fixed CPI premium is no longer presented as a measured sector difference; the old single 1999-2018 formula is replaced by each year’s actual rule. Stored annual-average CPI changes are distinguished from December changes, and the full-year 2026 assumption is marked provisional. Numerical series, taxation and earlier dataset archives are unchanged. How it works now uses the shared after-contributions/before-tax income description and the series amount with cents. Blanket identical-product and national counter-median claims were replaced by the reference definition, model assumptions and actual channel/geographical limitations. Reference grams come from the model constant. A link opens the selected income/CPI comparison. HowTo JSON-LD uses the same corrected steps. Report reads use ordered pages and database counts so a lower server cap cannot silently appear to be the complete set. The 5,000-row ceiling and changing sets are disclosed as partial views. A failed intermediate request rejects the refresh. Blending no longer computes a result below the declared sample threshold; small city groups show insufficient samples while individual prices remain available. Loading, errors and zero matches remain distinct. Submission dates are not presented as purchase dates. Downloads are live reports, not Index releases. The numerical series, taxation, historical archives and database schema are unchanged. The Gaps page uses the shared 1984 evidence review instead of dating through an exchange ratio. Its old full-year 1979 freeze claim is also withdrawn in line with the published correction.

  37. Correctionv2026.09.13-payroll-assumptions

    Correcting evidence and public citations

    • Exactly the same evidence ZIP on Windows and Linux, preserving already archived bytes.
    • Mini wraps and offer constituents are excluded from standard-wrap selection, while original readings are preserved.
    • The full-export check waits for page readiness before opening its disclosure.
    • The new evidence JSON also loads correctly in the browser test runner’s Node environment.
    • Original 1983–1984 pages confirm prices and dating; product identity and 1982 wage-indexation arithmetic are shown separately.
    • Public Minimum Wage evidence replaces private-repository 404s, with exact copies and download checks.
    • The original 1991 Gazette corrects the previous CPI-continuation assumption.
    • The annual 1983 price now explicitly identifies its timing assumption.
    • Evidence navigation checks follow the visible source link.
    Read the full entry

    Corrects the earlier research assumption that the CPI rule continued into the 1994 ceiling. Original Gazette Law 1976/1991, article 13(2), replaced the relevant first sentence with pension-increase linkage. The dated earlier note is retained alongside an explicit correction. This provision is not used to invent a numerical ceiling or change the Index. Repairs Minimum Wage citations that required access to the private repository. Selected worksheets, calculators and original Gazettes are hosted on Gyronomics with a file catalogue, original revision and SHA-256 verification. EL/EN pages, payments, sources and exports use public addresses. The build also verifies the actual deployment files, while a browser test checks anonymous access and exact content. The research API becomes payroll-before-tax-v7 for the citation contract change. The repository remains private, amounts and approval status are preserved, and historical tax research is not integrated into the Index. Corrects the active 1983 price description: annual weighting is an estimate with an assumed duration at the new price. Publication date does not establish the price-change date, an annual mean or a national sample. Series prices stay unchanged. Older immutable datasets are retained and a new artifact of the same daily release records corrected documentation. The public-evidence browser check now follows the visible source-card link when the same URL also appears inside a collapsed explanation. Anonymous access, SHA-256, content and private-link checks remain intact. Visually checked the original Rizospastis page dated 14 August 1983, with a direct link to actual printed page9. Verified Grivetti’s purchase date of 26 June 1984, Athens location and expense row. The narrative and ledger describe one purchase, not two observations. Corrects earlier certainty about product identity and use of edition year or exchange-rate compatibility to establish purchase dating. Year1983 and1984 pages distinguish verified price/date/place from uncertain composition, with a public SHA-256 record and original citations. Minimum Wage shows sequential1982 ATA arithmetic, the primary rounding provision and unresolved typeset-table disagreement. Index and research-worksheet figures remain unchanged. A new immutable artifact under the same daily release preserves corrected evidence and all earlier artifacts. CI exposed a missing JSON import attribute in the Node loader. Explicit JSON import typing was added without changing data, assertions or timeouts. Full browser-test discovery fails before the fix and discovers all 55 tests afterwards. CI exposed a timing race between initial scroll restoration and the export test’s first click. Its trace showed two failed report responses but a closed export disclosure. The check now waits for the existing export-readiness signal and asserts the disclosure opened before verifying the alert and CSV/PDF downloads. Timeouts are unchanged and content assertions are retained. The new pilot identified a mini wrap selected as a standard wrap and offer constituents creating ambiguous identities. All three independent classifiers exclude MINI/ΜΙΝΙ, while reader B retains offers/tiers as evidence without selecting them as standalone products. Empty lists accompanied by deferred-configuration flags and original prices below displayed prices are marked as insufficient evidence. Separate replay shows captured and reviewed selections. These are not shop price increases and the Index is unchanged. CI exposed a different creator-OS identifier in the ZIP on Windows and Linux. The creator value is now explicit so the archive reproduces with identical bytes and SHA-256. A regression check simulates the Unix envelope, fails before the fix and passes afterwards. The already recorded ZIP, raw inputs and all amounts remain unchanged. The next Linux check showed that an explicit ZIP creator OS did not guarantee identical recompression. The initial archive now stays frozen with its pinned SHA-256 and first-recorded revision. Checks verify its fingerprint, absence of extra or duplicate members, and exact decompressed bytes of every original input. The full report reproduces without replacing the ZIP or relaxing data checks. The page also clarifies that reader A filters items mentioning gyro: empty extractions are not proven parser errors.

  38. Improvementv2026.09.13-payroll-assumptions

    Assumption checks and reproducibility

    • Follow-up of catalogue gaps and actual product options on Prices.
    • A new dated three-platform pilot on Prices provides public raw files and actual metadata coverage.
    • Richer product records and a public catalogue comparison on Prices, with evidence and exclusion reasons.
    • Local measurement review on Classic, checking evidence and weights with a hypothetical preview that leaves the series unchanged.
    • Joint wage, price and composition analysis on the Index and year pages, with computed findings and public reproduction.
    • Public historical-price exclusion with CSV/JSON and standalone reproduction; fonts load from Gyronomics.
    • Common-assumption comparison across all years, with exact payment replay.
    • Easter, leave timing and transitional days are visible on Minimum Wage and in downloads.
    • Ceiling checks by year and first-insurance cohort, with separate salary and bonus evidence.
    • Historical years with sourced lower bounds, exact missing intervals and inspectable calculations.
    • Wage-basis impact on both gyro measures, peak comparison and a readable review decision with primary citations.
    • Wage-difference breakdown, combined peak tests and original 1977 product evidence.
    Read the full entry

    New collections retain available product IDs, original descriptions, declared sizes, option structures and prices from the same response without additional network requests. Evidence links to the independent classifier winner; distinct products tied at the minimum price remain ambiguous. Changed and missing fields are distinguished from legacy name-only checks and matching additional recorded fields. Richer diagnostics use a separate denominator and do not certify physical equivalence or final configured prices. Prices displays a review of the existing pilot snapshots separately from visitor reports, with per-platform counts, detailed JSON, exact public input copies, SHA-256 hashes and source line references. The two differently framed pilots do not publish a monthly rate. No new prices or weighings were collected, coefficients and the series remain unchanged, and the user is not required to weigh products. Reconciles 766 payments in 51 years using the worksheets’ explicit rates and rounding. Checking the Easter wage-reference date changes no amounts. Adds separate leave-timing and transitional-month weighting tests, with exact original-currency differences, parameters, sources and SHA-256. The comparison discloses the selected leave window, fixed holiday uplift and unresolved insurance limits. Archived the Bank of Greece report confirming abolition of employee stamp deductions from 2002. The research API is now payroll-before-tax-v4. A daily release and new immutable bundle retain all prior files and unchanged Index values. No tax or subsidy is inserted and full legal approval is not claimed. The report reproduces with one command. Adds a separate contribution-ceiling assessment with 23 dated rules and ten sources. For new-insured employees, ordinary salary is documented as unaffected in 1993–2026 and bonuses/leave in 1993–2016. Available old-insured periods are tested separately, without transferring the 25-day monthly multiplier to bonuses. Age is not treated as proof of first insurance. Status, ceilings, headroom and sources appear on Minimum Wage, in JSON/CSV and in a reproducible report. The research API becomes payroll-before-tax-v5. All Index values, the income-tax pause and explicit outstanding bonus/affiliation rules are retained. Extends primary support for historical ceilings while distinguishing exact ceilings from conservative lower bounds. Ordinary-salary non-capping evidence now covers 1979–1981 and 1983–1989, plus 2004–2005 for old-insured employees. Unsourced intervals and insufficient bounds are exposed separately on the page, in JSON and in the reproducible report. January–February 1982 remains unresolved. The research API becomes payroll-before-tax-v6 with payroll-insurance-v2, without changing payroll amounts or approving bonuses and a common profile. Minimum Wage now shows the existing payroll reconstruction’s effect on period gyros and classic equivalents for each year, holding prices fixed, before tax and without subsidy. Extends the all-year table, percentage differences and CSV/JSON exports. Peak comparison excludes projections and describes two specific wage bases, not a probability or an exhaustive robustness study. Adds a concise decision to retain the published basis, distinguishing evidence, quantified assumptions and unquantified effects. Original Gazette Law 4476/1965 is recorded with SHA-256 and visual inspection. Alongside Law 825/1978 it documents specific outstanding bonus-allocation and earlier imputed-insurance-basis questions. No new insurance year is declared closed. The decision and comparison table reproduce with one command and are checked during build. The research API becomes payroll-before-tax-v8, without changing Index values or original worksheets. Adds an ordered accounting bridge for all 51 wage-basis differences: rounding, wages and periods, bonuses/leave, contributions and other deductions. Page and CSV/JSON share the calculation, without calling it causal attribution or uncertainty shares. Crosses two wage bases with twelve price tests, propagating anchor changes into dependent years. The peak table exposes classic-index sensitivity without interpreting case counts as probabilities. Rechecks 1979–1980 and 1982–1983 wage evidence. Captures original Regulation72/1977 with precise product, sale-channel and generic weight-limit references. Classic explains why these are not cooked-meat measurements inside a pita. Research API becomes payroll-before-tax-v9. Wages, prices, classic equivalents and original worksheets stay unchanged; no new insurance year is approved and tax remains outside the Index. Classic presents the published baseline and exclusion of the 1983 price, the 1984 price or both, recalculating every dependent year. Both measures are ranked across completed years with fixed wages and product factors. Recalculated years are distinguished from actual rounded-price changes. Cases are not probabilities, uncertainty bounds or broad robustness against wage and portion assumptions. Year pages and Whitepaper link to the analysis. Public CSV/JSON include inputs, dependencies and results; a standalone Node program reproduces prices, indices and peaks without packages, network or private-repository access. The build checks the report and deployment files. The analysis is separately versioned and does not change the series or its immutable archives. Existing DM Sans and Space Grotesk are self-hosted with original WOFF2 files, licenses, SHA-256 and unchanged weights/character ranges, removing the external Google Fonts stylesheet dependency. Greek system fallback remains unchanged. Crosses the two existing wage bases, four historical-price choices and seven composition specifications. Period gyros have eight distinct combinations and classic equivalents fifty-six, without repeating identical raw cases for each portion assumption. The Index follows the selected unit and does not apply base-series findings to hypothetical CPI scenarios. Each year shows its ranks, selected-case extrema and comparison with the first year. Projections are excluded from rankings and findings. Ties are retained and ranks precede displayed-count rounding. Exact peak identity is sensitive to combined assumptions; agreement and disagreement language is generated from results. Separate test families and concrete example combinations explain each peak. Whitepaper and Classic link to the new section. Full JSON, CSV, a compact frontend summary and standalone Node verifier are public. Arithmetic reproduces without private-repository access. Shared composition parameters also serve the older script, preserving previous results. Build checks the files and actual deployment assets. Counts and scenario extrema are not probabilities or uncertainty intervals; payroll reconstruction stays under review, and published values and older immutable archives remain unchanged. The existing blank measurement template and a new bilingual guide are publicly downloadable without private links. The Classic-page tool reads JSON only in the browser and exports a local report with original records, review cutoff, SHA-256 fingerprint and calculation version. The same read-only engine runs as a local command. Checks cover types, required fields, valid ordered timestamps, future records, mass reconciliation, duplicate records and repeated weighings. Collections outside the measurement window must be pilots. A business group cannot enter both calibration and independent validation within one input. Menu declarations, missing evidence and unseparated remainder withhold numerical previews. Readiness for human review neither authenticates evidence nor approves calibration. For a complete in-scope record the preview substitutes only meat grams in the measurement year, holding annual price, purchasing income and other assumptions fixed. A shop price is not treated as a national price and the reference unit is not fitted to a small sample. Previous values and immutable archives remain unchanged. No new weighings were collected and no coefficients were approved. Completed a limited new pilot in its own collection folder, with fresh candidate frames, actual timestamps and fingerprint checks before freezing the snapshot. Prices shows selected entries by platform, entries without a qualifying extracted wrap and entries with no extracted items. Extraction failure is not presented as proof of an empty catalogue. Detailed JSON connects captured and reviewed selections to original fields and source lines; a public ZIP contains exact raw files and manifests. The report reproduces offline and is checked in CI. Actual missing descriptions and deferred configuration are explicit. No national price or monthly rate is calculated, the historical series stays unchanged and user weighings are not required. Completed a separate, dated follow-up of catalogue gaps and selected products. The new full A responses contain menu items without an explicit gyro name: an empty gyro selection did not mean an empty catalogue. The reader now retains an independent full-menu check tied to the exact shop, and collection preserves those diagnostics. In B, actual codes from fresh menus link the same products to option groups and ingredient descriptions. Product ID, code and shop are verified separately. Prices presents the follow-up, differences in “with everything” declarations and public JSON with source fields and fingerprints. The zero base field is not presented as a free product, a “from” price is not a final order price and no basket is automatically selected. Original responses, times, codes and denominators remain in a new folder; previous snapshots, Index prices and parameters stay unchanged. User weighings are not required.

  39. Newv2026.09.12-payroll-review

    Immutable datasets and independent reproduction

    • Complete baseline archive with SHA-256, sources, assumptions, CSV/JSON and a standalone verifier.
    • Minimum Wage: year selection, research payments, sources and a before-tax comparison.
    Read the full entry

    Added bilingual reproduction pages, links from Open Data, the whitepaper and annual pages, and a public catalogue of exact dataset artifacts. The bundle preserves original wage units, registered records separately from estimates, adjustments, composition parameters and calculation provenance. Each state has a SHA-256; same-day changes add immutable artifacts within the same daily release. The standalone program checks integrity, CSV/JSON agreement, the published wage convention and both indices. The period price remains an input: complete reconstruction from originals, verified historical payroll and uncertainty probabilities are not claimed. Archival coverage begins with this delivery, without invented historical snapshots. The build requires archive/canonical-series agreement. Tests cover corrupted data, version selection, downloads and running the downloaded program. Index values and tax scope are unchanged. Added a bilingual Minimum Wage page with one calculation adapter for pages and JSON/CSV exports. The reconstruction shows gross earnings, contributions, other deductions, ordinary earnings and bonuses beside its difference from the current baseline. Subsidy is kept separate and no income tax is subtracted. All 631 recorded payments reconcile exactly; complete breakdowns permit comparison for 46 of 51 years. Missing fields for 1976–1979 and 1981 are not turned into zeroes. Unrecorded payment months/types remain unknown and 2026 is marked as a projection. Sources and row pointers link to a pinned worksheet revision, distinguished from primary evidence. Links added from annual pages, navigation, reproduction, sitemap and the llms guide. Totals, currencies, dates, provenance and export agreement have automatic checks. The published Index is unchanged and a complete validated statutory calendar is not claimed.

  40. Correctionv2026.09.12-payroll-review

    Consistent Index presentation and comparison corrections

    • Matching API/CSV scenarios, actual price provenance and bounds.
    • Comparisons isolate tax on the same payroll and show conditional subsidy separately.
    • Consistent unit and scenario across the Index page.
    • Temporary server errors protected from caching and search snippets.
    • Date, completeness and integrity checks before monthly snapshots.
    • Real 404s for missing years/articles and more complete structured data.
    • Complete nested Dataset metadata following a real Google Live Test.
    • Retry failed history loads and complete Releases metadata.
    • Shared assumption explanations, complete formulas and a correction to the portion article.
    • Accurate description of wage rounding during annualisation.
    • Payroll fingerprints verified consistently on Windows and Linux.
    • The loading check distinguishes the small FAQ loader from question content.
    Read the full entry

    Corrected the local research comparison: the previous difference from the index combined calendar/deduction changes, contribution subsidy and income tax. It now shows the same payroll before and after tax, followed by each effect separately. Subsidy remains conditional; tax cannot increase income or the index on the same basis. Checks were tested with deliberate errors. The headline index is unchanged. Product unit, CPI scenario and start year now agree across cards, chart, summary, accessible table, calculation, layers and sharing. Bounds follow the selected price, peak prose follows the actual year rule and the sources link reaches the correct page. Corrected the displayed price-control period and classic-conversion formula. Base wages and prices are unchanged. JSON/CSV exports and the year API now apply the Index scenario, unit and start year, with matching metadata and links. The 1976 price is identified as a backcast from 1977, grade D, retaining its separate source as unused. Existing start=1976 links remain valid. Inputs for 2011/2015 retain their estimate flags. Calculations record the actual branch, distinguish input rates from realized changes and show separate lower and upper percentages from existing price bounds. Stat cards contain real values on first load and without JavaScript. Corrected article language switching, the English changelog link, embed/widget document language and year-page period metadata. The data table and its CSV use the same index bounds without double rounding; explanations show actual annual wage payments and each year’s method. Central prices, wages and price bounds remain unchanged. The export check now follows the renamed general-inflation scenario. The server error fallback retains HTTP 500, prevents caching and excludes its message from indexing and search snippets. Language and the home link follow EL/EN. These safeguards do not replace a rendered-page check in Search Console. Monthly snapshots now require a named collection and reject undated, wrong-month or mixed-run reads, changed files and incomplete platforms. Regular readings enforce weekdays 25–28 in Europe/Athens. Published snapshots are preserved and the overwrite escape was removed. Missing year and article pages now return real HTTP 404 responses with bilingual recovery, noindex and no canonical for nonexistent content. Year validation follows published data and rejects alternate numeric spellings that produced duplicate URLs. Year and article structured data now identify their matching image; year pages also specify language, author and page identity. Removed legacy article error metadata that duplicated robots after browser hydration. The shared 404 now owns both phases. Bilingual checks require one hydrated robots tag and verify the complete breadcrumb path after language switching. A real Google Live Test of a year page identified an incomplete nested Dataset. All year pages now include its description, creator, license and dataset URL in both languages. Server-HTML checks cover this reference too. The correction requires Publish and another Live Test. If older releases fail to load, existing entries stay available and the reader can retry. Added description and creator to the Releases Dataset. The local test environment now preserves the response headers needed to decode server-function results. Size measurements wait for initial downloads to settle instead of undercounting large modules still in flight. The glossary uses shared model-input categories and distinguishes sources, estimates, bounds and composition assumptions. The regulation factor is displayed at the correct precision and Calculations includes wage annualisation, the meat cap and successive rounding. Shared wage notes and stories disclose the outstanding historical review. Visitor reports are described as an independent comparison. The wrap-and-portion article has a corrected headline and interpretation: price ratios do not establish meat weight. The correction is visible and the existing URL is preserved. Index figures are unchanged. The page-recovery check opens detailed evidence through the visible link before verifying the calculation, following the new layout. Corrected the wage-rounding description: drachma conversion and the intermediate amount after deductions retain full precision. The monthly equivalent is rounded at the end; the separately displayed rounded payment is not an intermediate input. The calculation is unchanged. Final download checks identified and corrected missing CSV and MJS support in the local built-worker preview. The new pages are explicitly included in HTML/SEO checks. CI detected four stored SHA-256 fingerprints of CRLF workstation files while Git stores the same sources with LF. The exact pinned-commit hashes for all 29 inputs are now recorded separately from original capture hashes. Tests allow only the demonstrated checkout line-ending conversion and continue rejecting content changes. The research API now identifies payroll-before-tax-v2; amounts and original research files remain unchanged. CI found that the initial-loading check mistook the shared faq-loader for the full question content. The built loader was inspected and confirmed to contain a dynamic import. The filter now distinguishes the loader and additionally requires a real content request after search opens. The prohibition on eager question content remains enforced; application behaviour is unchanged.

  41. Improvementv2026.09.12-payroll-review

    Index sharing and historical evidence

    • The Index and comparisons come first on the main pages.
    • Targeted ceiling and OGA research without a new strict annual closure.
    • Links, images and embeds preserve the same selections.
    • Crawler checks on real server HTML and a more accurate bilingual llms.txt guide.
    • A directory per collection, safe resumption and fast offline checks.
    • SEO checks across all years/articles, parent navigation and sitemap dates.
    • Data period selection, matching CSV/PDF, shareable views and selected-year evidence.
    • Separate page loading and history on demand, preserving legacy references.
    • Year pages lead with the Index and comparison controls appear earlier in Numbers & stories.
    • Payroll: 51-year breakdowns, 766 calculated payments and visible recovery assumptions.
    Read the full entry

    Targeted research located historical judicial evidence of separate bonus and leave contributions and archived an original insurance law. Numeric ceilings and proportional days remain unresolved. OGA continuity remains open; an omission of ratified ministerial decisions in a reprint was recorded. No additional strict approval or change to production wages, prices or indices. Index selections persist in the URL, language switch, shared image, embedded chart and mini card. Separate analytical lenses identify their units. Income-tax integration research is paused at the user’s request. The home page shows a compact Index history with links to individual years. The Index opens with the current value, a short calculation and the chart; additional comparisons expand when needed and release history follows. Numbers & stories puts comparisons before publication assets. Year pages explain the wage basis and price provenance alongside the figures, with direct links to evidence. The Whitepaper adds a short reading path. Source, limitation and FAQ descriptions now agree in Greek and English. Added server-HTML SEO checks for the homepage and Index in EL/EN, without JavaScript, with multiple crawler user agents plus robots, sitemap, llms and real 404 checks. They also run in CI. The llms.txt guide now links to sources, methodology, exports and key assumptions in Greek and English. Lint and formatting now exclude local research files and generated previews, avoiding unrelated temporary artifacts. Each new collection owns its directory, discovery frame, timestamped attempts and independent-classifier inputs. Resume retries only unread shops. Pre-freeze validation reports coverage and named gaps, while monthly comparisons record exact input files. Added a bilingual runbook and separate offline Python checks in GitHub without requiring Python in the Lovable build. No new live collection was performed and Index prices are unchanged. SEO checks now cover every published year and article, server-rendered body content, canonical/hreflang, structured data, internal links and invalid URLs. Year and article pages gain visible navigation to their parent catalogs; the sitemap uses dataset/article modification dates. Added a browser check that recovery from 404 restores an indexable page. The homepage title and Index figures are preserved. The Data page shares period, gyro unit, scenario and ordering across its table and selected-view CSV/PDF with the corresponding sources. URL state survives reload, sharing and language changes. Selection evidence groups years by price derivation without treating model categories as source verification. Complete all-years exports remain separately available. Index figures are unchanged. Analytical pages now load their own code separately. Table provenance notes are isolated from the full audit engine so they cannot import the archive indirectly. The Index summary no longer imports the complete release archive. Data receives only the current daily entry; Releases initially receives the eight latest days in the page language. Complete history is fetched on request or when opening a legacy link, and remains accessible without JavaScript. Initial server rendering retains real content and sources; Index figures and public exports are preserved. Year pages start with the Index and monthly wage equivalent, with compact year navigation and distinct period and classic-product prices. Detailed evidence and calculation are grouped beneath figure provenance. Content remains in the initial HTML and links reveal the appropriate section, including repeated use of the same link. Numbers & stories shows a compact update date with expandable full coverage and collection dates, bringing mobile comparison controls higher. Sources, selected years and exports remain available in Greek and English. Recovered research payroll detail from existing code: contribution and stamp splits for 1976–1979 and 1981, individual payments also for 1984–1987, and month/type for 1982, 1983, 1990 and 1992. The public comparison now covers 51 years and 766 calculated payments. All previously recorded annual totals are preserved. Versioned parameters, pinned sources and exact per-payment replay document the recovery. The page and JSON/CSV distinguish recovered records from observations and expose bonus, leave and rounding assumptions. Some wage-change months remain midpoint scenarios rather than day-weighted calculations. Index numbers, separately shown subsidy and the income-tax pause are unchanged. The research API is now payroll-before-tax-v3; unavailable earlier contracts return 409. Arithmetic completeness does not certify a common historical statutory calendar.

  42. Correctionv2026.09.11-tax-audit

    Final income-tax schedules for 1997, 1999 and 2002

    • The unified review identified tax-measure, historical household/insurance and payroll-basis differences before integration.
    • Complete numerical coverage: 21 strict audits, 29 conditional calculations and one projection; 30 strict approvals remain open.
    • Corrected additional-tax scenarios and final retroactive schedules for 1997, 1999 and 2002.
    • Reopened 2022 due to the contribution subsidy; revalidated 2019–2021 and 2001.
    • Updated derived year counts and the article image; planned shared presentation of wages, contributions, tax and sources.
    Read the full entry

    The 1984 follow-up located an assessment-year-1985 income deduction for OGA corresponding to assessment-year-1984 tax; it establishes neither a zero charge nor the prior-year amount. A separate 1988 housing finding for the original profile relies on law and contemporary ministerial interpretation available as a reprint. Retroactivity is not attributed solely to the general commencement provision. No additional strict tax approval. The unified assumptions review separated annual liability from retained PAYE in 1976–1979, identified historical rent-imputation inputs and open insurance/subsidy conditions, and revisited the OGA exemption boundary/base and 1984 transition. Research payroll uses a different annual basis from the current series, so gross pay, deductions and tax require one calculation. The register now identifies each row's measure, with focused source and integration-boundary checks. A Minimum Wage page and links to year pages, methodology, sources and exports were planned. No additional strict annual approval or headline tax integration. The following descriptions record successive stages of the same day. Completed numerical coverage for1976–2026:21 strict audits,29 conditional annual scenarios and one projection. The last1976/1977/1983 gaps now have results, with1976 limited to whole-EUR precision under explicit assumptions. Retracted an agricultural-exemption provision misread as a salary exemption. With a separate original-law10% levy scenario, revised1979 from5 to6EUR,1981 from5 to6 and1982 from24 to26. Strict approval remains open for30 years; headline integration remains disabled. Added five annual scenarios for 1978–1982. Only 1976, 1977 and 1983 lack a completed annual scenario. Coverage separates 21 strict audits, 26 conditional scenarios and one projection. Corrected the 1980 wage-base date, sourced the November1981 increase and 1982 ATA calendar, and clarified 1978–1979 withholding and TEAM commencement. No headline tax integration was approved. The new round added annual scenarios for 1990 and 1992 and separate pre-settlement calculations for 1976–1979. The consolidated register distinguishes 21 strict audits, 21 annual scenarios, one projection and four preliminary calculations. Final annual calculation remains incomplete for 1976–1983. Reviewed 1997–1998 contribution caps and zero-tax sensitivity for 1988, 1991 and 1994, without headline tax integration. Corrected the retroactive1997 tax schedule from the original gazette. The parallel round added fifteen numerical scenarios and a separate2026 projection, without upgrading them to strict tax audits. The original gazette of Law 2753/1999 replaces the earlier 1999 PAYE schedule with the final retroactive income-tax rule. The employee zero band was 1,900,000 GRD, not 1,355,000. For 2002, the Law 2992/2002 salary uplift raises the zero band from 7,400 to 8,400 euros and reduces the next band accordingly. Independent regression examples failed against the previous calculation and pass after correction. Sources and methodology now derive their year count from the scenario and distinguish this result from a completed annual tax audit. The sharing image was regenerated. Tax remains a separate scenario and is not deducted from the headline index. Withdrew the 2022 closure after identifying an unreviewed employee-contribution subsidy. Revalidated 2019–2021 without deducting main pension. Positive-tax amounts remain conditional and coverage was corrected. Documented qualifying subsidy tax treatment from own-year AADE guides, compared the two holiday-bonus bases and revalidated 2001 with delayed support. No additional annual approval. Completed a separate qualifying-subsidy scenario for 2022–2025 with 60 payments, explicit assumptions and independent arithmetic reconstruction; no additional closure or index change. Targeted bonus-base research recorded a 2026 professional example and a precise verification question without backcasting its treatment. Added conditional qualifying2011 taxes and isolated transitional February2012 sensitivity, without further annual approval. Archived IKA71/2012 confirming the package employee contribution rate. Completed2022–2025 separately as numerical model estimates within one euro in the stated scenario, not fully verified final tax liabilities.

  43. Improvementv2026.09.11-tax-audit

    Unified payroll and tax evidence

    • Consistent subsidy comparison across 28 years and separate payroll/tax impact on the index.
    • 17 new conditional net-payroll worksheets; 631 payments in the unified ledger.
    • User-selected wage-income tax benchmark without imputed-income uplift.
    • Separate readiness checks: completed arithmetic does not automatically enable index integration.
    Read the full entry

    Unified the two research subsidy-base conventions across 28 years, 1999–2026, using the same choice throughout instead of differing interpretations by cohort. Original worksheets and special reference dates are preserved, with amounts checked against source results. Added a local index-impact comparison separating payroll-basis changes from income tax. For 1988, 1991 and 1994, calculated conservative zero-tax bounds without stamp deductions and specific sufficient ceilings per separate payment; historical application remains to be confirmed. The renewed source review did not establish OGA levy continuity. No additional strict approval or headline index change. Added 17 conditional annual net-payroll worksheets for 1980, 1999–2010, 2013–2016, with 256 payments. The unified ledger now contains 51 years and 631 payments, 46 conditional past-year net scenarios, one projection and three separate settlement scenarios. Numerical net income remains unspecified for 1976. Calculations preserve native currency, alternative subsidy bases and rounding conventions. Integration readiness is checked separately from completed arithmetic; strict tax approvals have not increased. Defined a new minimum-wage income-tax benchmark excluding imputed-income uplift, explicitly selected by the user while preserving the original profile. Historical rent inputs are no longer an index prerequisite. The unified payroll ledger contains 51 years and 375 payments, including 75 new payments for 2017–2021 linked to their original proved zero-tax ceilings. It holds 29 conditional past-year net scenarios, one projection and three separate settlement scenarios. A numerical net scenario is still missing for 1976, 1980, 1999–2010 and 2013–2016. These remain research amounts with separate tax and payroll approval. Added a unified research annual-payroll ledger for every year, with JSON/CSV exports, separate tax and payroll evidence status, native units, exact worksheet pointers and payment details. Proof ceilings never become actual gross or net amounts. Annual liability remains separate from settlement, and unknowns from zero. Added unit, subsidy, annual/monthly basis and premature-integration checks. The public series is unchanged. The following descriptions record earlier stages of the same day. Completed fifteen additional numerical scenarios with explicit assumptions and a separate2026 projection. Coverage distinguishes21 strict audits,19 numerical scenarios and one projection. Local tax research now includes original historical schedules and relief provisions, continuity worksheets and a pinned reference profile. Zero-liability proofs include bonuses, leave pay, imputed income and the deductions or conditions relevant to each period. For 2000–2007, even a conservative bound on complete gross income suffices, avoiding irrelevant deduction-cent reconstruction. Original OMED agreements and tables, gazettes and an explicitly labelled reprinted ministry guide were archived with hashes and exact reviewed pages. Calculations check regime changes, commencement and additional income levies. Inventory and report tables follow the research results and are protected by deliberate mutation checks. The 2023–2025 payroll and settlement worksheets remain diagnostics. A closed zero-tax audit does not approve exact net wages. Headline integration awaits all-year coverage. The 1999 audit also closed using two taxable-income bounds, old- and new-insured contribution rules and the same-year assessment-cap circular. Independent arithmetic and a one-euro taxable-income sensitivity check were completed for 2023–2025. Indicative amounts are kept separate from approved settlement; these three years remain open. Archived annual income-tax guides for 2011–2012 and added an independent conditional 2011 payment calculation, without claiming an additional annual audit closure.

  44. Correctionv2026.09.10-wage-evidence

    Matching wages to their effective years

    • Seven historical wage source records now link original gazettes and distinguish their effective dates.
    • The 1976 amount was verified; the incorrect description of the 1979 value as an annual mean was withdrawn.
    • Corrected the 1992–1993 top tax bracket against original gazettes.

    Corrected the 1976–1982 wage source records in Greek and English. The December 1979 award applies to January 1980; the December 1980 award contains 1981 rules. The July 1976 amount is now verified in the original. Calculations and the whitepaper distinguish dated wages from annual means. Numerical series inputs and unresolved amount discrepancies remain under review. The original gazettes establish the 45% top band for income from 1994. The tax scenario had incorrectly backcast it into 1992–1993, whose top rate is 40%. Corrected the calculation and the test that reproduced the same copying error. The change affects high incomes above the wages in the headline series.

  45. Improvementv2026.09.10-wage-evidence

    A complete inventory of wage evidence

    • An inventory for every year, fourteen archived PDFs and two reproducible ordinary annual-salary calculations.
    • ATA estimates, the conflicting 1983 table and the 1992 corrective clauses are recorded separately.
    • Five additional sources, 1992 correction sensitivities and partial 1991/1993 payroll cases; final net pay remains open.
    • Dated social contributions by fund and payroll scenarios with bonuses and leave; final net pay remains under review.
    • Eight sources and a 1993 annual worksheet separating deductions, stamp/OGA, scale tax and withholding.
    • Original 1994 agreement and a specific legal link for deduction of employee charges.
    Read the full entry

    Archived eleven gazettes, two signed agreements and one typeset republication with hashes and visual review. The inventory covers every year from 1976 to 2026 with specific next checks. Recorded the arithmetic conflict in the 1983 republication and the need to apply the 1992 corrective clause. The 1991 and 1993 agreements support research calculations of twelve ordinary salaries, separate from bonuses, contributions and tax. Checks protect provenance, coverage and exclusion of unverified amounts. The headline series and full-coverage requirement for tax integration remain unchanged. The same-day review adds three original gazettes, a contemporary December-to-December CPI report and a later INE table. The 1992 clause is tested with three rounding policies; arithmetic agreement is not legal verification. ATA-table discrepancies and invalid dates are preserved. Partial 1991/1993 payroll cases apply monthly main-pension rates, separate 1993 health and bonus salary components. Bonus holiday uplift, remaining deductions, final gross, net pay and tax remain open. Registered inputs and tests make the diagnostics reproducible. Added two original IKA circulars and a Stamp Code consolidation with distinct evidence classification. The social-contribution reconstruction preserves each fund’s effective dates, excludes employer and heavy-work additions and reconciles separately printed totals. Main pension is distinguished from all employee contributions. Monthly social deductions are calculated on verified salaries, alongside two conditional 1993 cases with bonus holiday uplift. Historical uplift application, assessment caps, rounding, stamp/OGA and tax remain open. Tables are reproducible and checked through deliberate mutations. Numerical series and the full-coverage requirement for headline tax integration remain unchanged. Added four original gazettes, three Ministry circular republications and an institutional worked example. The research worksheet connects two leave assumptions with employee social contributions, stamp duty, OGA and annual scale tax. It distinguishes zero reference PAYE coefficients from positive scale tax. The OGA-on-duty enactment and the precise cap/rounding enabling provision were verified. Implementing decisions, historical leave allocation and the full original stamp/deductibility chain remain open. Independent arithmetic and checks protect the worksheet. Raw HTML is exempt from Git and Prettier transformations to preserve source hashes. Final net pay remains unverified; headline tax integration still requires evidence for every year. Added the signed agreement to the wage inventory and a reproducible annual ordinary-salary calculation. Archived the original income-tax code and verified its official mapping of net employment income to the predecessor provision. Complete net pay remains unverified pending contribution implementing decisions and historical bonus/stamp details.

  46. Correctionv2026.09.09-price-provenance

    Regulation and market price

    • Drachma wages now use the original input, avoiding precision loss from reverse conversion of rounded euros.
    • Withdrew the incorrect bonus-introduction and historical-deduction rationale. Calculations and whitepaper disclose that the old assumptions remain under review.
    • Corrected the 1990 tax-scale documentation using article 46 of law 1914/1990. Amounts and results remain unchanged.
    • Fixed provenance fingerprints for consistent verification on Windows and Linux without changing the data.
    • Corrected duplicate weight entries and withdrew the unsupported conclusion about portions in more expensive cities.
    • Whitepaper and shared methodology corrections: price provenance, annual payments, ranges and limits of validation.
    • Stabilised the historical-evidence export test by selecting its download link directly. All content assertions and the existing timeout remain unchanged.
    • A failed chart stays within its section. Recovery reloads the page, and page errors now use the current language with a link to the corresponding home page.
    • Switching language on a year page now preserves the year instead of returning to the data page. Corrected the page URL in breadcrumb structured data.
    • Monthly rates now exclude changed or unidentified products, reject duplicate identities and report exclusions separately.
    • Corrected regional claims inferring weight and size from price ratios, and the assumption of equal platform markups across cities.
    • Recovered Aristotelous 2012 and 2016 menus, filled the missing 2008 lagana value and checked ratios. Archived Express 2012 separately with comparability limitations.
    • Recovered Aristotelous menus for 2006–2010 and checked base prices and spread charges. Corrected the English source description and bread-price ratio interpretation. Series unchanged.
    • Unified menu-image inventory and temporal-pair review. Withdrew the claim that unverified Aristotelous menus validate the model. Series figures remain unchanged.
    • The portion article now clarifies that price ratios do not measure grams. Content rescaling is conditional, and the original headline is explained in the text.
    • Audited weight and composition assumptions across the series with separate stress tests. The regional explanation now states that price ratios do not prove weight. Production figures remain unchanged.
    • Corrected the iefimerida citation date and removed the unverified ANA-MPA attribution from its source label.
    • A–D labels now describe model-input categories without certifying primary observations. Shared page/export legend, API interpretation and heuristic-score clarification. Numerical values are unchanged.
    • Rechecked euro-transition sources. The campaign card now identifies its repost and unverified broadcast date, with a specific citation. Numerical inputs are unchanged.
    • Each observation now exposes normalization operations, factors and limitations. Corrected certainty claims and added four adjustment scenarios. Prices are unchanged.
    • Withdrew the unsupported 2018 input. Central prices are unchanged; its ranges and evidence status were corrected. Year pages and JSON now separate dates and edition references.
    • Reviewed 2018–2025 sources: corrected before-price dating and the Pricefox citation. Added six source-omission scenarios without changing the series.
    • Audited regulation assumptions and corrected 1989 descriptions that presented a price-level indication as gyro deregulation and a national measurement. Numbers are unchanged.
    • Areas are separated from shops. Corrected sample and range-midpoint descriptions, with a complete input inventory. Prices and the index are unchanged.
    Read the full entry

    Stabilised the historical-evidence export test by selecting its download link directly. All content assertions and the existing timeout remain unchanged. A failed chart stays within its section. Recovery reloads the page, and page errors now use the current language with a link to the corresponding home page. Switching language on a year page now preserves the year instead of returning to the data page. Corrected the page URL in breadcrumb structured data. Monthly rates now exclude changed or unidentified products, reject duplicate identities and report exclusions separately. Corrected regional claims inferring weight and size from price ratios, and the assumption of equal platform markups across cities. Recovered Aristotelous 2012 and 2016 menus, filled the missing 2008 lagana value and checked ratios. Archived Express 2012 separately with comparability limitations. Recovered Aristotelous menus for 2006–2010 and checked base prices and spread charges. Corrected the English source description and bread-price ratio interpretation. Series unchanged. Unified menu-image inventory and temporal-pair review. Withdrew the claim that unverified Aristotelous menus validate the model. Series figures remain unchanged. The portion article now clarifies that price ratios do not measure grams. Content rescaling is conditional, and the original headline is explained in the text. Audited weight and composition assumptions across the series with separate stress tests. The regional explanation now states that price ratios do not prove weight. Production figures remain unchanged. Corrected the iefimerida citation date and removed the unverified ANA-MPA attribution from its source label. Removed the obsolete claim that the whole 1978–1988 interval lacks sources and revised its test with a deliberate failure. Zero-entry coverage is no longer described as one source. A–D labels now describe model-input categories without certifying primary observations. Shared page/export legend, API interpretation and heuristic-score clarification. Numerical values are unchanged. Rechecked euro-transition sources. The campaign card now identifies its repost and unverified broadcast date, with a specific citation. Numerical inputs are unchanged. Retrieved the 8 January 2002 report. Logged diary exclusions for serving basis or missing price and consolidated wrap and skewer dependency diagnostics as separate metrics. No original guide page was obtained. Audited regulation assumptions and corrected 1989 descriptions that presented a price-level indication as gyro deregulation and a national measurement. Numbers are unchanged. Corrected evidence coverage: areas are not counted as shops and sums across years are not presented as unique shops. Updated sample and range-midpoint descriptions, with inventories of all observations and anchors. Prices and the index are unchanged. Reviewed 2018–2025 sources: corrected before-price dating and the Pricefox citation. Added six source-omission scenarios without changing the series. Withdrew the unsupported 2018 input. Central prices are unchanged; its ranges and evidence status were corrected. Year pages and JSON now separate dates and edition references. Each observation now exposes normalization operations, factors and limitations. Corrected certainty claims and added four adjustment scenarios. Prices are unchanged. Corrected the whitepaper's peak provenance, wage payments, crisis decade and claims about ranges and validation. Descriptions now follow actual inputs and operations, together with the shared calculation and PDF explanations. Corrected the weight evidence: exact catalogue repeats are grouped while retaining every source line. Public reporting counts distinct descriptions rather than repeated rows and withdraws the claim that more expensive cities do not have larger portions. Catalogue declarations are not presented as cooked-meat weighings, and unreproducible historical full-menu totals no longer support the text. CI exposed and we fixed provenance fingerprint differences between the older Windows checkout and Linux: SHA-256 verification now normalizes only CRLF to LF and declares its encoding. Identical data yields identical fingerprints across operating systems while actual content changes still fail verification. Raw files and counts are preserved. Corrected the documentation of the 1990 tax scale: article 46 of law 1914/1990 applies these amounts to that year's income. The scale and results remain unchanged. Original gazettes showed that holiday allowance and bonus rules predated the years stated in the former explanation. Index Calculations and the whitepaper now share an evidence notice linking original instruments. Corrected the reverse comparison, payment-count descriptions and historical-deduction rationale. Wage sources distinguish verified January salaries from incomplete annual earnings. Numerical assumptions remain under review and are not claimed to be corrected. Also corrected original drachma wages in calculation tables, the index explanation and the public computation object. Reversing rounded euros could alter displayed drachma amounts; the original series input is now used where available. An additional regression test was deliberately broken and restored. Euro wages, prices and indices are unchanged.

  47. Improvementv2026.09.09-price-provenance

    Evidence in exports

    • Archived eight original wage, bonus and contribution gazettes, with an isolated 1987 annual wage-base and tax diagnostic.
    • Archived original 1984–1987 tax gazettes and added an isolated 1987 research worksheet. Annual wage evidence remains open and the headline index is unchanged.
    • Price, quantity and tax research with a yearly review inventory and measurement template. Headline tax integration requires evidence for every year.
    • New classic-product evidence section, a complete JSON denominator and specific requirements for parameter calibration.
    • Whitepaper with per-year calculations, an assumption register and downloadable precision review. The published series is preserved.
    • The first main-menu link is labelled “The Index”, making the site’s central destination clear and directly accessible on mobile and desktop.
    • Navigation prioritises changes, year comparisons and sources. Search supports unaccented Greek and keyboard navigation. Offline installation initially stores only essential files.
    • Article bodies load when an article opens, and search questions when search opens. Article metadata and question links are preserved. Added before-and-after measurements.
    • Year pages open comparisons with a selected second year. Added year swapping and CSV with period and classic gyro prices, wage, purchasing power, sources and version.
    • Added year selection on the home and year pages, direct links to calculations and sources, and links from summary cards to each year’s detail page.
    • Added integrated monthly audit JSON. Rechecked full menus and item details; starting prices are not treated as final prices with selected extras.
    • Collapsed detailed year-page research. Added an offline product-identity preflight for monthly comparisons and documented priorities from existing sensitivity scenarios.
    • Added geographical coverage of public menus with deduplication. Recovered an Athens menu with different cover and caption years, without assigning an unsupported model year.
    • Recovered Stelios menus for 2012 and 2023. Added a base-price, spread and portion comparison with photographs and JSON, without annualization. The ambiguous 2019 menu is excluded.
    • Recovered and read eight candidate-menu images from Polichni, Pefka and Stavroupoli. Year pages and JSON now show exclusions and effective-price uncertainty.
    • The regional index now shows Thessaloniki evidence by year, historical input status, hypothetical source removals and a JSON download.
    • Reviewed unidentified regional inputs, archived two candidate menus and added removal scenarios. Identities remain unresolved. The series is unchanged.
    • Added Athens reports from 2007/2012 and a shop-level regional input inventory. Removal tests retain other shops in mixed years and use production endpoints. Series unchanged.
    • Recovered three additional shops for 2008 and a second menu for 2010. Added public evidence and regional sensitivity checks without changing the series.
    • Year pages and JSON now show recovered historical menus with prices, photograph links, dating limitations and a separate label for existing regional model use.
    • Recovered Express 2023 and 2025 menus. Unified histories for three shops/chains, separating spread charges and distinguishing caption observations from annual model prices.
    • OMED supports the February 14, 2012 reduction. Added a calendar-day comparison with WSI timing, without production changes. No new historical menu was verified.
    • The 2011 input and its dependent interpolation weights were removed together in diagnostics. Added annual price/index comparisons and wage cross-checks. GSEE confirms the July 2011 pay increase.
    • Wage timing review now covers 1994–2024 and crosses price-source scenarios. Findings apply to this window; production figures remain unchanged.
    • Reviewed peak and decline sources. January versus year-end wages change decline timing. Added 1983–1984 anchor-removal tests and a public explanation of the composition scenarios’ limits.
    • The composition explorer compares peak years, largest annual declines and complete decades across scenarios. It retains ties, excludes partial decades and offers matching JSON downloads.
    • The classic page now offers year selection and composition scenarios. Year pages link to the corresponding year, with separate classic prices, purchasing power and differences.
    • Researched same-business menus and recovered older Devido catalogues. Wraps and portions are compared separately; unknown recipes and different weights cannot certify a matched price increase.
    • The 2021 menus appear on year pages, in the API and JSON download. Added Devido and Nikiti, with separate geography, unknown extras and a matched-sample spread comparison.
    • Retrieved photographed 2021 menus, separating base prices and extras. Added a weighting experiment that deduplicates repeated witnesses and verifies image integrity. Production prices are unchanged.
    • Recorded new 2020–2024 evidence, separating ranges, bounds and forecasts. Added conditional inclusion and weighting trials. Production prices are unchanged.
    • Rechecked modern sources and extended combined omission diagnostics. Results identify retained sources and years without direct observations. Production prices are unchanged.
    • Added modern-input provenance with producers, editions and republications. Linked it to the score audit, explicitly recording unverified attributions and unknown sample independence.
    • Audited scores across all years, separately testing source counting and agreement credit. Added comparison tables and date/product review details. Production scoring was not replaced.
    • Euro-transition evidence separates existing model transcriptions from new findings, with edition and assignment dates, a two-item amount and the preceding-anchor dependency. The series is unchanged.
    • New year-page research section shows source amounts, products and outstanding questions. API and JSON download share one structure and distinguish findings from model inputs.
    • Reviewed a photographed historical table illustrating a skewer and recorded exclusions and shared article provenance. Added a separate skewer-model comparison without a new anchor.
    • Checked guide catalogue records and recorded access restrictions. Added diagnostics of skewer-estimate dependence on unverified pairs without changing prices.
    • Read the original archive scans and clarified their dating. Added conditional recalculation for both product definitions without adopting the price.
    • Extended historical research with an archive candidate of uncertain date and exclusions for product-unit mismatch or missing price. The series is unchanged.
    • Applied a same-declared-recipe experiment to available pairs. Different fillings and incomplete options are rejected with reasons. Factors and the index are unchanged.
    • Verified platform-reported addresses and retrieved item options. Rate-limit errors returned with HTTP 200 are separated from valid responses. Base and configured prices are not equated.
    • Audited pilot-menu duplicates, defaults and geographic clues. Excluded burger variants and corrected C item identifiers. Adjustment factors are unchanged.
    • Extended the pilot to a second platform. Item review separates availability, burger type and base from configured prices. Candidate pairs are not yet adjustment factors.
    • Added full-menu capture and completed a small three-city pilot. Raw files and candidate classifications are preserved for review. The index is unchanged.
    • Audited saved menus for basket calibration. They contain selected gyro minima, not a complete product basket. Added a reproducible coverage audit and measurement protocol.
    • Shared price provenance on year pages, in the API and in JSON downloads, with version, sources, original amounts and explicit missing values. Prices are unchanged.
    • Added historical input omission diagnostics and review of new source leads. Hypothetical examples and unidentified products are not added to the series.
    Read the full entry

    The first main-menu link is labelled “The Index”, making the site’s central destination clear and directly accessible on mobile and desktop. Navigation prioritises changes, year comparisons and sources. Search supports unaccented Greek and keyboard navigation. Offline installation initially stores only essential files. Mobile menus use the same groups. Search contains keyboard focus and restores it on close. Arrow-key selection scrolls the active result into view. Other files are cached when used, with an offline fallback page. Added real-browser checks for keyboard use, loading failures, recovery and offline operation, plus a build limit on initial precache size. Article bodies load when an article opens, and search questions when search opens. Article metadata and question links are preserved. Added before-and-after measurements. Year pages open comparisons with a selected second year. Added year swapping and CSV with period and classic gyro prices, wage, purchasing power, sources and version. Added year selection on the home and year pages, direct links to calculations and sources, and links from summary cards to each year’s detail page. Added integrated monthly audit JSON. Rechecked full menus and item details; starting prices are not treated as final prices with selected extras. Collapsed detailed year-page research. Added an offline product-identity preflight for monthly comparisons and documented priorities from existing sensitivity scenarios. Added geographical coverage of public menus with deduplication. Recovered an Athens menu with different cover and caption years, without assigning an unsupported model year. Recovered Stelios menus for 2012 and 2023. Added a base-price, spread and portion comparison with photographs and JSON, without annualization. The ambiguous 2019 menu is excluded. Recovered and read eight candidate-menu images from Polichni, Pefka and Stavroupoli. Year pages and JSON now show exclusions and effective-price uncertainty. The regional index now shows Thessaloniki evidence by year, historical input status, hypothetical source removals and a JSON download. Reviewed unidentified regional inputs, archived two candidate menus and added removal scenarios. Identities remain unresolved. The series is unchanged. Recorded possible dependence between 2006/2007 reports, without adding a price observation. Added Athens reports from 2007/2012 and a shop-level regional input inventory. Removal tests retain other shops in mixed years and use production endpoints. Series unchanged. Recovered three additional shops for 2008 and a second menu for 2010. Added public evidence and regional sensitivity checks without changing the series. Year pages and JSON now show recovered historical menus with prices, photograph links, dating limitations and a separate label for existing regional model use. Recovered Express 2023 and 2025 menus. Unified histories for three shops/chains, separating spread charges and distinguishing caption observations from annual model prices. OMED supports the February 14, 2012 reduction. Added a calendar-day comparison with WSI timing, without production changes. No new historical menu was verified. The 2011 input and its dependent interpolation weights were removed together in diagnostics. Added annual price/index comparisons and wage cross-checks. GSEE confirms the July 2011 pay increase. Wage timing review now covers 1994–2024 and crosses price-source scenarios. Findings apply to this window; production figures remain unchanged. Reviewed peak and decline sources. January versus year-end wages change decline timing. Added 1983–1984 anchor-removal tests and a public explanation of the composition scenarios’ limits. The composition explorer compares peak years, largest annual declines and complete decades across scenarios. It retains ties, excludes partial decades and offers matching JSON downloads. The classic page now offers year selection and composition scenarios. Year pages link to the corresponding year, with separate classic prices, purchasing power and differences. Researched same-business menus and recovered older Devido catalogues. Wraps and portions are compared separately; unknown recipes and different weights cannot certify a matched price increase. The 2021 menus appear on year pages, in the API and JSON download. Added Devido and Nikiti, with separate geography, unknown extras and a matched-sample spread comparison. Retrieved photographed 2021 menus, separating base prices and extras. Added a weighting experiment that deduplicates repeated witnesses and verifies image integrity. Production prices are unchanged. Recorded new 2020–2024 evidence, separating ranges, bounds and forecasts. Added conditional inclusion and weighting trials. Production prices are unchanged. Rechecked modern sources and extended combined omission diagnostics. Results identify retained sources and years without direct observations. Production prices are unchanged. Added modern-input provenance with producers, editions and republications. Linked it to the score audit, explicitly recording unverified attributions and unknown sample independence. Audited scores across all years, separately testing source counting and agreement credit. Added comparison tables and date/product review details. Production scoring was not replaced. Euro-transition year pages separate guide transcriptions already used by the model from new findings. Edition, observation and assignment dates remain distinct, alongside a two-item caption amount and the estimate’s dependency on the preceding anchor, in the page and JSON. The series is unchanged. New year-page research section shows source amounts, products and outstanding questions. API and JSON download share one structure and distinguish findings from model inputs. Reviewed a photographed historical table illustrating a skewer and recorded exclusions and shared article provenance. Added a separate skewer-model comparison without a new anchor. Checked guide catalogue records and recorded access restrictions. Added diagnostics of skewer-estimate dependence on unverified pairs without changing prices. Read the original archive scans and clarified their dating. Added conditional recalculation for both product definitions without adopting the price. Extended historical research with an archive candidate of uncertain date and exclusions for product-unit mismatch or missing price. The series is unchanged. Applied a same-declared-recipe experiment to available pairs. Different fillings and incomplete options are rejected with reasons. Factors and the index are unchanged. Verified platform-reported addresses and retrieved item options. Rate-limit errors returned with HTTP 200 are separated from valid responses. Base and configured prices are not equated. Audited pilot-menu duplicates, defaults and geographic clues. Excluded burger variants and corrected C item identifiers. Adjustment factors are unchanged. Extended the pilot to a second platform. Item review separates availability, burger type and base from configured prices. Candidate pairs are not yet adjustment factors. Shared price provenance on year pages, in the API and in JSON downloads, with version, sources, original amounts and explicit missing values. Prices are unchanged. Added historical input omission diagnostics and review of new source leads. Hypothetical examples and unidentified products are not added to the series. Audited saved menus for basket calibration. They contain selected gyro minima, not a complete product basket. Added a reproducible coverage audit and measurement protocol. Added full-menu capture and completed a small three-city pilot. Raw files and candidate classifications are preserved for review. The index is unchanged. The whitepaper now offers a year selector with actual calculation steps, product and coverage definitions, a parameter register and composition-test findings. The index and sensitivity variants share one classic-conversion chain. A complete intermediate-rounding review covers every year, CPI mode and wage basis, with a JSON download and a decision to retain published arithmetic. Public data now explicitly describes conversion precision and stages. Existing numerical rows are preserved. The classic-product page now has an accessible weight and composition evidence section linked to the whitepaper and limitations. It includes every wrap weight declaration, separate counts of experimental pairs and shop groups, calibration requirements for each parameter and a downloadable full JSON audit with its denominator. The audit is generated from immutable pilots and verified in the build. Two new historical quantity sources were recorded as leads pending visual verification. Index coefficients and the numerical series are unchanged. Recorded sources for prices, cooked weight and income tax, a year-by-year tax review inventory and a physical-measurement template. Tax may enter the headline index only after all years are adequately documented. Figures remain unchanged. Retrieved complete gazettes for laws 1473/1984, 1563/1985, 1591/1986 and 1731/1987, with relevant pages visually checked and file fingerprints recorded. Transcribed the 1987 employee schedule and added an isolated worksheet checked against statutory cumulative totals and two contemporary examples. Recorded the April announcement’s conflicting credits, rounding conventions and the distinction between withholding and tax. The 1987 wage remains an estimate requiring verification. A new reported 2001 chicken-wrap price is retained as a repost lead without the original. This research changes neither the headline index, public tax coverage nor prices. Archived eight original gazettes with hashes and visually reviewed pages: 1984–1987 wage instruments, bonuses, holiday allowance and selected pension components. A provisional 1987 wage table is checked for complete monthly coverage and compared with the old estimate in an isolated tax diagnostic. An unresolved INE table conflict for the preceding year is recorded. Four new tests failed on deliberate mutations and passed after restoration. This adds no verified payroll, public tax coverage, new gyro-price observation or cooked-meat weighing.

  48. Newv2026.09-o-krikos-pou-elipe

    New features

    • New evidence section on year pages: price, date, geography and composition, with explicit review status, a chart link and matching API data.
    • Article comparing 2019 with today, with a chart and sources.
    • Numbers & stories with year comparisons and historical trends.
    • Quotable text and image exports with sources and version information.
    Read the full entry

    New evidence section on year pages: price, date, geography and composition, with explicit review status, a chart link and matching API data. Numbers & stories: then and now The resource page now offers two-year comparisons of price, wages and purchasing power, a historical chart distinguishing evidence grades, and short analyses. Text and PNG/SVG images follow the dataset and retain attribution, version and methodological context. A page for journalists Quotable text from the current series, a PNG/SVG image with source, date and version, data links and explicit limitations. The wage basis and units accompany each export. Available in Greek and English. Comparison links: selected years are saved in the URL, with link copying and access to the same comparison in both languages. New article comparing wages, comparable prices and purchasing power since 2019, with a PNG/SVG chart, sources and an explanation of product rescaling. Figures come from the series, with sharing images in both languages.

  49. Correctionv2026.09-o-krikos-pou-elipe

    Local data protection and accurate calculation descriptions

    • Clarified historical regulation limits: skewers versus gyro, minimum versus average weight, ceilings versus transaction prices. The model is unchanged.
    • Inventoried all anchors and repeated source IDs. Clarified that exchange ratios and edition years do not prove observation dates. Prices unchanged.
    • Transition-source review removes circular rejection of a lower price and unverified guide independence, and corrects the interpolation description. No numerical changes.
    • Clarified the 1998 range and the Athens adjustment in the 2000 guide evidence, retaining all numerical values and confidence grades.
    • Historical anchor audit: inventory of inputs and final prices, corrected stale 1998 source wording and explicit uncertainty over the 2001 date. Numerical values are retained.
    • Fixed lint errors in the latest Lovable preview-authentication update, preserving its behavior.
    • Bounded test workers for hosted builds and explicit time limits for deployment-check subprocesses. All checks remain enabled.
    • Weight and composition assumptions clarified in pages, JSON and CSV, with no numerical changes.
    • Consistent wage basis in tools and shared results, with reliable form retries.
    • Consistent exports, readable PDFs, explicit report availability and more reliable browser checks.
    • Data cache protection and accurate calculation descriptions.
    • Fixes for builds, image downloads and report loading errors.
    • Integrated Lovable preview authentication updates.
    Read the full entry

    Clarified historical regulation limits: skewers versus gyro, minimum versus average weight, ceilings versus transaction prices. The model is unchanged. Inventoried all anchors and repeated source IDs. Clarified that exchange ratios and edition years do not prove observation dates. Prices unchanged. Transition-source review removes circular rejection of a lower price and unverified guide independence, and corrects the interpolation description. No numerical changes. Clarified the 1998 range and the Athens adjustment in the 2000 guide evidence, retaining all numerical values and confidence grades. Historical anchor audit: inventory of inputs and final prices, corrected stale 1998 source wording and explicit uncertainty over the 2001 date. Numerical values are retained. Fixed lint errors in the latest Lovable preview-authentication update, preserving its behavior. Bounded test workers for hosted builds and explicit time limits for deployment-check subprocesses. All checks remain enabled. Historical meat weights, peak portion size and shrinkage are labelled as model assumptions rather than measurements. Numerical results are unchanged. JSON and CSV expose portion evidence separately from price confidence. Consistent wage descriptions and submission failures Reverse, stories, copied results, the calculator and Gyro Day clarify the basis after contributions and before income tax. Visible explanations and structured data share the classic-gyro definition. Reviews distinguish failed loading from no reviews and offer retries. Review and contact forms preserve fields after failed submissions and show understandable messages instead of database details. Prices and calculations are unchanged. Full CSV/PDF exports follow the selected scenario. Loading, empty samples and failed reports are distinguished across the chart, comparisons, year pages and downloads. Exports state when reports were unavailable. The PDF table now fits a landscape page with repeated headers, explicit units and separate era/classic indices. Wage basis is annual income after contributions / 12, before income tax. Also incorporated Lovable updates to the preview authentication timer declaration and generated Supabase types. Fixed the index image download. Failed report loads now show an error and a retry action instead of appearing as missing data. Database responses are no longer stored for offline use, and the update removes their old cache. Public pages retain offline support. Each price calculation description now follows the operation actually performed, distinguishing interpolation, soft anchors and counterfactual scenarios. No change to the price or wage series. Lint now passes on Windows with consistent line endings and corrected type and component declarations. Lovable builds use a different output layout from the local default. Nitro and service worker paths now share the dist layout, and the final check reads the active deployment configuration. It verifies that the application assets are included in the precache. Chart downloads become enabled when the app is ready, so an early click is not lost.

  50. Improvementv2026.09-o-krikos-pou-elipe

    The missing link, the rehearsal, and the portion with three witnesses

    • Year pages separate the recorded original amount, model input and final series price, explaining estimates and anchors that constrain ranges.
    • Comparison images and quotes include period and classic metrics, assumptions and sources. Export spacing was corrected so five metrics do not overlap the notes.
    • Two-year comparisons show period and classic prices and purchasing power, with a shared portion-change check where both years are covered.
    • Year pages for 1990–2010 show portion stress tests: changes in classic price and purchasing power, with period prices fixed and explicit interpretation limits.
    • Year pages compare prices and purchasing power for period and classic gyros side by side, with composition rescaling explained and meat-weight assumptions audited.
    • Historical archive review: excluded a price for another product and recorded pending issues, distinguishing indexed excerpts from full-page review. The series is unchanged.
    • Interpolated years now explain their anchors and additional dependencies, with a distinct calculation-review label and source links.
    • Combined model research across price, date, geography and composition scenarios; a new photo-caption lead and verification priorities.
    • Euro-transition research: primary campaign context, a new candidate price table and five reproducible 1998–2002 scenarios. No production series change.
    • Added a research registry for 1995–2001 historical evidence, with sources, units, uncertainties and inclusion decisions. The published series is unchanged.
    • Automatic build, data and browser checks on GitHub.
    • The home chart loads near the viewport.
    • A concise wage table and sources in the historical article.
    • Complete collection pipeline and checks of the shop discovery frame.
    • Clearer homepage, organized data and concise daily history with full details.
    • Separate coverage, collection and update dates.
    • Deployment identity and browser checks for core flows.
    Read the full entry

    Year pages separate the recorded original amount, model input and final series price, explaining estimates and anchors that constrain ranges. Comparison images and quotes include period and classic metrics, assumptions and sources. Export spacing was corrected so five metrics do not overlap the notes. Two-year comparisons show period and classic prices and purchasing power, with a shared portion-change check where both years are covered. Year pages for 1990–2010 show portion stress tests: changes in classic price and purchasing power, with period prices fixed and explicit interpretation limits. Year pages compare prices and purchasing power for period and classic gyros side by side, with composition rescaling explained and meat-weight assumptions audited. Historical archive review: excluded a price for another product and recorded pending issues, distinguishing indexed excerpts from full-page review. The series is unchanged. Interpolated years now explain their anchors and additional dependencies, with a distinct calculation-review label and source links. Combined model research across price, date, geography and composition scenarios; a new photo-caption lead and verification priorities. Euro-transition research: primary campaign context, a new candidate price table and five reproducible 1998–2002 scenarios. No production series change. Added a research registry for 1995–2001 historical evidence, with sources, units, uncertainties and inclusion decisions. The published series is unchanged. GitHub now runs checks on each main push and pull request: locked dependency installation, build, data consistency and type checks, tests, lint and browser tests against the built app. Failure reports and browser traces are retained. Lovable publishing remains separate. The home chart loads as it approaches the viewport, reserving its height to keep the layout stable. The answer, controls and detailed table remain available. Repeatable lab performance measurements cover home, index and data pages. The historical minimum-wage article now includes a short answer, selected years from the series, wage sources and per-year evidence, plus a purchasing-power comparison link. Nominal amounts are distinguished from purchasing power and the calculation basis is explicit. Homepage and default social cards now use bilingual Gyronomics branding, without outdated figures or the Reverse name. The Data page now uses expandable sections. Changelog and releases show summaries with full history, preserving daily grouping and old links. Date labels distinguish series coverage, sample collection and documentation updates. Added a build identity and deployment check, plus browser checks for downloads and recovery from failed loads. The step that produces 518 of the measurement's 1,287 rows, and every portion price yesterday's finding rests on, did not exist. The first platform's script knew how to read prices from a shop address, but not how to find shops. Nothing gave it away: the command was written in the instructions, the file existed, the data was there. We would have learned about it on the 25th, during the first regular reading. It was written, and it took two routes. The platform's own map filtered on the name recovers 76% of the shops we already have, because it misses anyone whose name does not say what they sell. The per-city category listing recovers 71%, because it misses anyone the platform has not filed there. Together they recover 517 out of 518. Along the way something turned up that would have gone unnoticed: three cities returned zero shops and looked like they had none at all, when they had simply been rate-limited. Asked again, they handed over their shops. The same mistake sat in the menu reading: a blocked shop passed for a shop with no wrap. Both now retry, and whatever goes unread is printed by name. The candidate pool is now four times larger, so the next reading will carry more shops on this platform. City medians will move from the sample's composition rather than from prices, which is why published city factors stay on today's sample until a full reading exists on the new frame. Once is an accident, so the other two faced the same question. The third had the same fault in a sneakier form: the code was there, but it read a file that is neither in the repo nor on disk. It was a copy of the listing saved by hand at some point and lost since, so another 355 rows did not reproduce. It now reads for itself, 16,957 shops across 236 areas. The second was the only one with its whole chain intact from the start. One thing is worth saying plainly. Those two platforms recover 100% of their shops, but that does not mean they find them all: September's reading came out of that very same name filter, so it has no way to disagree. How much the filter misses we know from the first platform, where a second way of finding shops exists and the name alone catches three quarters. Whether it bends the price we also know, from an earlier random-sample check: it does not. And after all that, a rehearsal. The chain was rewritten end to end in two days and the next reading window is four days long: the 25th must not be the first time the new code runs. A command went in that runs the whole route with forty shops per platform, writing outside the data folder. It caught a fault on the first try. The largest platform stopped before reading a single shop, because one city out of seventy-eight hit a rate limit and the error blew up the entire reading. On the 25th that would have been 40% of the sample. The fix is not to ignore the error, because that returns us to blocked city equals empty city: a city that was not read is now recorded separately, and if more than one in ten are, the reading stops. Half a sample is worse than none, because it looks like a sample. The second rehearsal went all the way through and produced 62 measurements across 27 cities. A missing protection also went in: the merge step always wrote over the month's file without asking, so a half-finished harvest could have replaced the month feeding the published price with forty rows. And one last thing, which is not plumbing but a finding. Yesterday's Thessaloniki article rests on one ratio: how much of a portion the shop puts inside the pita. All its portion prices came from one platform, because it was the only one giving them. It was not the only one that could: the other two simply were not looking. The very same rule went in and 400 shops were re-read. 384 gave both prices, and the finding holds. The strong part is not the overall trend but the city-by-city comparison: across the ten cities present in both readings the ratios nearly coincide. Athens 0.376 against 0.381. Thessaloniki 0.511 against 0.527. Different platforms, different shops, same ratio. The check also found a hole in itself. It had been written to fire if the shops in the two readings were the same ones, because then the agreement would mean nothing, and it fired at once: 57 of the 384 are the same business on a second platform. The answer was not to loosen the test but to re-measure the finding without them. It holds, and slightly better. The check's raw data went into the repo, because otherwise the article would cite a file that does not exist. The article's chart now shows both readings. Filled circle for the first platform, hollow diamond for the other two, and where a city appears in both, a thin line joins them. The length of that line is the disagreement, and in most cities there is no visible line at all. The one long line is Heraklion, and it stays visible. And a question that deserved an answer in numbers: do we account for how many grams a portion is? No, and now we know exactly why we cannot. Across 220 shops and 29,233 items, reading descriptions as well, only 34 of 564 portions state a weight, and just 6 of 1,392 wraps. The wrap essentially never says what it weighs, and it is not for lack of room: 62% of items carry a description. Where they do say, 300 grams dominates, but the range runs 200 to 500. And the most important part is negative: those 34 weights sit in five cities only, so they are not enough to test whether the portion grows where it gets dearer. A new entry went onto the limitations page, with the numbers rather than an adjective. And three things found as the next reading was starting. The frame's own test wrote over the real saved frame, leaving its eighteen fabricated shops there: the reading would have started with eighteen candidates instead of two thousand two hundred, and would have looked fine. I caught it by looking at the file, not because anything fired, and now something fires. Second, the third platform does not write absence the usual way: for a shop that has closed it answers with a code we took for a temporary fault, so we asked again and again for two and a half minutes and then recorded it as unread. Six shops. Each platform now declares for itself how it says it does not exist. Third, useful for what comes next: the second platform serves item descriptions, the third none at all. So the grams question can be asked on two channels instead of one, and never on the third. The route I had proposed, the shops own websites, does not hold: across 353 shops six gave a price, and none gave grams. And the grams question was asked again on a second platform, so it now carries a test. Across 520 shops and nearly seventy-four thousand items, 75 portions of 1,329 state a weight, in ten cities. Wraps, six of 3,252, and on the second platform none at all, even though 95% of its items carry a description. Six cities have both a stated weight and a published portion price, and five of them state exactly 300 grams while their prices spread by 44%: Athens 10.90, Thessaloniki 9.50, Larisa 7.55. Dear cities do not sell a bigger portion, they sell a dearer one, which is exactly what the finding predicts. Six cities are not enough, though, and only from shops that bothered to state a weight: grams still do not enter the calculation. The raw data went into the repo together with its denominator, the items that do NOT state a weight, because otherwise the percentage would be a claim. And a fault in the published snapshot itself, found while preparing the new reading. One platform's city names did not pass through the map the other two passed through, so Kallithea, Megara and Eleusina stayed separate cities instead of joining Athens, and two places were counted under two names each. Four of the eighty cities were phantoms. Prices did not change, and I verified it row by row: the Athens median stays 4.20 euro, the factors for Thessaloniki, Patras and Chania are untouched, the national median identical. What changed is the city count, from 80 to 76, and with it five tables that read it. The snapshot was not re-read: the corrected map was applied to the names, with a check that halts if a single price moves. And a second reading was taken, one day after the first, to answer with a number something I had been answering with words. Three times I wrote that city medians would move once the sample grew. With time nearly held constant, what differs between the two readings is precisely that: the sample. The new snapshot has 1,660 rows instead of 1,287, and 1,564 portion prices instead of 489, now from three channels rather than one. The national median stayed 4.20 euro, and across the 1,283 shops common to both the price did not move at all: 99.7% unchanged in a day. The larger sample did not change the published figure. The city figures did move, and that is the interesting part. Where a city already had fifty shops or more, none changed. Where it had twenty, two of eight changed. Where it had three, like Drama, the median fell from 5.50 to 4.20 euro as soon as its shops became nine. Prices did not fall: the sample was far too small to say anything. And the moves go symmetrically up and down, so they are noise rather than a shift. Along the way a claim of mine fell, to the very test I wrote. Looking at eight large cities I had said only two moved. The test scans them all and found twenty-four of seventy-six: the eight I picked were the most populous, hence the most stable. And after all that, a decision. The city price tables came from the reading of the 7th; they now come from the one of the 8th, which is a superset of it, from the same day, and measured without bias. The alternative was publishing factors we know come from half a sample. The city table goes from 1,287 to 1,660 shops, and the portion table from 17 cities to 51, from 472 pairs to 1,518, and from one platform to three. The underlying relationship survived the tripling almost unchanged. The published price and index did not move at all: 4.25 euro and 218. The second-witness check was not dropped, it got better. Before it compared two different readings across ten shared cities. Now it compares one platform against the other two inside the same file from the same day, across thirty-one cities, and the two sides agree. Two cities disagree noticeably, on six and ten shops in one case and seven and four in the other, and they stay written down. Along the way it emerged that the merge step was throwing away the item name, which the raw files have carried from the start. The new snapshot had come out with no names at all, so the pita-or-sandwich analysis could not be recomputed from it. Now one hundred percent of rows carry a name, against eighty-six percent before. Published figures are unchanged: price 4.25 euro and index 218. The home page explains the index and wage basis, shows the latest year's figure and leads to the index, comparisons and data. The changelog groups changes into one entry per day and kind. Releases appear once per day, retaining legacy identifiers and notes. The home page now uses simply Gyronomics as its visible heading, browser title and sharing title in both languages. The index description remains below it.

  51. Datav2026.09-pita-i-santouits

    Data updates

    • Pita or sandwich, a protocol we were not following, and three whitepaper errors
    • A fourth witness off the platforms: 5% cheaper, and yet it agrees
    • Pita or bread: the word sandwich looked like a bug and was Thessaloniki
    • A third platform, 1,288 shops, and the agreement held
    • From September the price is measured every month, and the area map had left 92 readings out
    • 2026 goes from 3 shops to 816, and its price did not move
    • A second platform, 755 shops, and the two readings came out the same
    • 2026 hung on one source, and the other reports were the same report
    Read the full entry

    Pita or sandwich, a protocol we were not following, and three whitepaper errors Three things in this update, and all three started from the same place: checking whether I actually do what I say. First, item names. The harvester was keeping the price but not the name of the item that gave it, and that had already cost me: to establish that one 8.90 reading was a folia spitaki and not a pita wrap, I had to re-read 406 catalogues. So I re-read all 1,287 shops, across all three channels. 1,113 now carry a name. And as soon as the names were in, something turned up that I was not looking for. In twelve cities the wrap is not called a pita, it is called a sandwich. Serres and Giannitsa at 100%, Thessaloniki 93, Veria 91, Katerini 83, and below them Halkidiki, Kastoria, Larisa, Florina, Alexandroupoli, Kavala, Xanthi. At the other end, in thirty cities with four shops or more not one shop uses it, not once. Athens sits at one per cent, three shops out of 445. You do not need a map to see what the twelve have in common: they are all in the north. The question that matters is not the word but the product, and price answers it. Where the word dominates and both names appear, the median ratio between them is essentially one. In Katerini it is four euros for both, exactly. In the south the opposite happens: where the word is rare, the few sandwiches really are a different and dearer product. Athens 6.80 against 4.20, Lefkada 7.00 against 4.80. I wrote an article about it. At the same time I corrected a figure of my own: I had written that removing the word would take Thessaloniki from 1.19 to 2.12. That came from a single platform. On the whole sample the factor goes to 1.24, but the city is left with seven shops out of ninety-eight and nationally nineteen per cent of the sample disappears. Second, the monthly reading. The first regular one falls on 25th-28th September, so I got ready what that day will need. The first thing I found was an inconsistency of our own. The protocol says a 25th-28th window. September's snapshot was read on the 7th, because the window was defined later. And since the filename gives only the month and not the day, the inconsistency was entirely invisible. The reading of the 7th stays and is declared a pilot, the first regular one happens inside the window. A register of readings went in carrying each one's date, and the test does not trust the declaration: it works it out from the date and fires if anyone writes inside for a reading taken on the 7th. I also wrote the engine that computes the monthly rate, now, before a second month exists. A tool you write at the moment you need it has never been tested. I exercised it with a synthetic October over real data, where 143 shops raise prices by 20 cents while the composition also changes. The level moved 2.38 per cent while the real increase was half a point, and the tool printed a warning. The dry run also showed something I had not considered: the median of the ratios read zero, while 143 shops had genuinely raised their price. As long as fewer than half of them move, the median stays pinned at zero, and that is precisely the normal state for a pita gyros. I would have published zero change for months on end. So two rates get published: the median, robust against outliers, and the geometric mean, which catches diffuse small moves. Third, I read chapters nine to fourteen of the whitepaper with the code open beside them, and found three claims that do not hold. The chapter on user reports said they capture geographic premiums, giving the islands as an example, and delivery premiums. Neither: the form has no field at all for whether the price is over the counter or for delivery, and the regions are three, Athens, Thessaloniki, rest of Greece. The islands fall into the third. The limitations chapter said five points on the meat cost share move the 1976 index by about seven per cent, while the sensitivity chapter three screens above said under three. The right answer is 2.2. Both now read the same computed value. And the reproducibility chapter promises the index comes out of the public data.json with three quantities, but said net monthly wage while the dataset carries two wages. With one the index comes out in fifty-one years of fifty-one, with the other it fails in forty-six. So anyone sitting down to check our work had even odds of concluding the numbers do not add up. The chapter now names the fields, and a test went in that takes the public dataset and recomputes the index for every year, the way an outsider would. I verified what does hold, which was most of it: all five public endpoints answer, the licence matches the one the dataset declares, and visitor reports really do not affect the calculation. Last, I looked at the scenarios page and found a trap I had built myself. The two pledges end in different years, one in 2028 and the other in 2027, and the page explained that correctly. Except that anyone pressing the two buttons in turn saw 202 and 209, and concluded the second pledge gives seven more wraps. It does not. In the same year the gap is three wraps; the other four are simply the one year of price rises separating the two horizons. So the comparison in the last year both of them speak for now appears, with a test requiring the naive gap to be genuinely larger: if it ever stops being, the warning is redundant and should go. I carried on to the limitations page, which is where an inaccurate claim costs most, because that is the page where we are supposed to say what we do NOT know. Two of the ten entries claimed less than we know. The first said documented prices exist for a handful of years, then listed them: twenty-two of fifty-one. We were understating our own documentation, which is the opposite of the usual error and just as inaccurate. The same entry also said the years in between are derived from official inflation. They are derived from the catering index, a different measure, and our own pages explain elsewhere why the distinction matters. And it ignored that the crisis decade is not interpolated at all, but follows an asymmetric pass-through rule. The second said that at a meat share of sixty or eighty per cent the older index values shift noticeably, when the number is known: the 1976 index goes from 274 to 286 or to 259, about five per cent. On a limitations page, an adjective where a measurement exists is a step backwards. The correction tripped one of our own tests, and it was right to: it read every four-digit number in the paragraph and demanded it be a documented year, so the new and correct reference to the crisis decade set it off. I did not loosen it. It now scans only the list inside the parentheses, leaving the rest of the paragraph free to mention years without being taken to claim them. I also looked at the gaps page, and it held: every year on it is derived from the confidence grades, the ranges form themselves, and an apparent mismatch in the tax gap resolves correctly, since the 1989 law applies retroactively from 1 January 1988. Finally, the map the naming article was missing went in. Fifty-one cities in their real positions, sized by sample, filled by how often the wrap is called a sandwich. The claim was geographic, so it had to be checked geographically, and that is exactly what the map did: it corrected my own text. I had written that the twelve cities are all in the north. True. The converse is not, and the map shows it at once: Ioannina, Igoumenitsa, Arta and Corfu are just as northern and sit at zero. The border is not the north, it is Macedonia, Thrace and Thessaly. It stops at the Pindus range rather than spreading down from the frontier, and the text now says so. I did not write the coordinates from memory, and just as well. I pulled them from Wikidata and five were wrong. English-name matching put Veria in the Peloponnese and Xanthi in the Aegean, because homonymous villages of twenty-six and thirty people exist, while Chania, Sparti and Argos landed somewhere else entirely. Had I not checked them one by one, the map would have put two of the twelve northern cities in the south and destroyed the very finding it is supposed to show. They were re-fetched by Greek name with a population criterion, and a test went in requiring every city where the word dominates to sit above thirty-nine degrees. I bit it with the real error and it fired. Last, the prices page, where I found the page contradicting itself. The reports table says explicitly in its caption that prices are medians, not averages. But the first sentence a visitor reads said browse averages by city and year, and so did the home page and the description that shows up in search. Six places in all, across both languages. This is not a matter of style. Median and average are different measures, and on a sample with outliers they differ noticeably. The visitor sample is exactly that kind, with reports running from one and a half euros to six eighty for the same year. The page promised one thing and showed another. A test went in that scans all four surfaces, and that writes the difference between the two measures as a number rather than an argument. The rest of the page held up, and well: the three-report threshold is the same in the table and the city map, below it only the count is published rather than a price, and the blend simulator says in capitals that it is a simulation and that in practice reports never enter the published series. Then I asked the data something we had never asked it, and the answer was better than I expected. This project's neatest argument is that Thessaloniki is not expensive, its wrap is simply bigger. The wrap-to-portion ratio inside one menu shows it, stripping out rents, wages and the city's price level. But it was also the weakest evidenced: eighteen pairs, collected one by one from photographed menus across two decades. One of the three platforms also gives a portion price, in the same shop on the same day. The test was already sitting in our own data, four hundred and seventy-two times, and nobody had asked it. The result confirms and widens the gap: Athens 0.381 on 137 shops, Thessaloniki 0.527 on 50. A ratio of 1.38, where the menus gave 1.24. And the best part: the 2014 test replicates. The page cited as its cleanest case two menus from that year, Thessaloniki against Ioannina, with the portion almost identical and the wrap twenty-nine per cent dearer. On sixty-five shops in those same two cities today: portions two per cent apart, wrap nineteen per cent dearer. Twelve years later, by a completely different method, the same shape. Divide the two and the premium turns around. The Thessaloniki wrap costs nineteen per cent more and holds thirty-eight per cent more of a portion. Per unit of content it comes out fourteen per cent cheaper. That assumes the portion is a comparable product in both cities, and I write it down beside it: the within-shop ratio does not need that, the between-city comparison does. It enters no observation. Something I was not looking for turned up too. Across seventeen cities, the correlation between the price of a portion and the wrap's share of it is minus 0.81. The islands sit at a 12.10 portion and a 0.384 share; the northern mainland at 8.68 and 0.469. The reading is that the wrap's price is anchored near a national norm while the portion follows local costs. Where costs rise the wrap does not get dearer: it gets smaller. It fits something else in the same data: within Athens, the spread of the wrap price between the twenty-fifth and seventy-fifth percentiles is only seven per cent. And I wrote it up, because the finding deserves an audience beyond people who read indices: Thessaloniki is not expensive, it is generous. It carries a scatter plot of the seventeen cities, portion price across and the share the wrap holds up. The cloud falls from left to right, so nobody has to believe the correlation: they can see it. I did not draw a trend line, deliberately. With seventeen points it would lend the eye a precision the sample does not have, and the bare number underneath is more honest. Writing it tripped three of our own tests, and all three were right. One forbids toFixed inside articles, because it prints 0.381 with a full stop inside Greek text. The other two saw the portion prices, from 7.55 to 14.50, as invented wrap amounts. I did not exempt the article: I taught the checker that a portion is a different product with its own table. Anything in neither table still fires. Last, I went to close a small mismatch and found something bigger. The harvest README said six per cent of items were on offer. I was measuring three and a half in the snapshot, so I went to see which held. Neither, and worse: the six per cent reproduced from nowhere. It had come from the platforms' raw files, which the repo does not retain. The snapshot holds one row per shop, not per item. In a README that insists on reproducibility, there was a figure with nowhere to come from. I re-measured it on seventy shops per platform, and what came out was worse than a wrong percentage. One platform gives 4.3% across 10,704 items, with a median discount of twenty-four per cent. The other gives zero across 9,761. And it is not that it runs no offers: the original-price field exists, we read it on every item, and it never differs from the current one. It is a copy. We were keeping it believing it protected us from offers, and the text told readers so too. In practice it means the protection exists on one platform out of three. If a shop on the other two runs an offer, we record the discounted price as the regular one, and the monthly rate sees a fake drop then a fake rise. I wrote it into the README, into the rate engine where it will bite, and into four tests. The first test I wrote was wrong, and showed it itself: it demanded the old phrase appear nowhere, and fired at once, because the README quotes it in order to explain what it used to say and why it was off. The quotation is exactly the point. The test now looks at the conclusion rather than the string. None of this changed a published figure: the price stays at 4.25 and the index at 218. A fourth witness off the platforms: 5% cheaper, and yet it agrees The three platforms I read agree with one another, and until now I treated that as strong evidence. There is a hole in the argument, though: they resemble each other closely. Same model, same commissions, largely the same shops. If the price level were an artefact of that way of selling, three agreeing platforms would never show it. I needed a different kind of witness, and found one in a small independent guide to grill houses that runs its own ordering system. I set a rule before looking at any numbers: keep only shops that accept live orders, not those with a plain listing. The reason is the same one that rejected an archived Attica panel earlier. A page that takes orders at a wrong price costs the owner money, so it gets updated. A plain listing can sit there for years. And plain listings are the overwhelming majority: of the guide's 2,153 shops, only 142 carry a menu. Of those, 118 give a price for a pork gyros in pita, and 115 are in Attica. Their median comes out at four euros, five per cent below the platforms' Athens median. The easy conclusion here would be that platforms mark the wrap up. They do not, and I checked two ways before writing it down. First by area: across eleven Attica areas where both are present, the median ratio is 0.988, a gap of about one and a half per cent rather than five. Second by shop, which is the cleaner test: across six shops present on both channels the ratio is exactly one, with half giving the identical price to the cent. The explanation appeared as soon as I looked at which areas these were: Perama, Drapetsona, Kaminia, Porto Rafti. The guide leans heavily to outer Attica, not the centre. The gap was geography, not channel. Along the way I had to fix my own matching. The first version produced fourteen same-shop pairs, which sounds better, but GYROVOLIES is a chain with four branches and prices from 3.50 to 5.00. I was comparing one neighbourhood with another and calling it the same shop. Requiring the area to agree leaves six real pairs. Fewer, and right. Those 115 shops do not enter the index, and I want it clear that this is a decision rather than an omission. Adding them to Athens would pull down the median of the city that is the base of every area factor, and would move every other city in the country for a reason that is sample composition rather than price. The temptation to merge all the data because it exists is exactly what must not happen without weighting, so I wrote it into a test as well, so it does not happen later. The guide did confirm something else found shortly before: that the word sandwich means different things in different cities. Being almost entirely Attica, only three of its 118 shops price from a sandwich item, and those sit at 6.70 to 6.80, which is gyros in bread. In Thessaloniki the same word gives five euros and is the ordinary wrap. None of this changed the published figures. Pita or bread: the word sandwich looked like a bug and was Thessaloniki I started by asking whether the filter I use to pick shops biases the price, because it is exactly the kind of assumption that stays invisible until it is measured. One platform lists 16,418 shops and the harvester keeps the 620 whose name says so, the ones called gyradiko or souvlatzidiko. I read 2,732 random shops from the rest. Four per cent of them sell an explicit pork gyros in pita, meaning the filter does not throw away gyros shops, it throws away pizzerias and cafes. And their median comes out at 4.20, exactly the same as the sample I use. Across twelve cities with enough shops in both groups, the median difference is zero. In Athens 4.20 against 4.20, on thirty-six shops. Two things had to come out of the sample: supermarkets, which also carry a pita gyros at 4.90, and one test shop. They separate cleanly, because a gyros shop has sixty to three hundred items and a supermarket over ten thousand. In the middle of that I ran into something that looked like an obvious bug and turned out to be the most interesting finding of the day. The list of words meaning wrap contains sandwich alongside pita. Gyros in bread is a different, dearer product, so my first instinct was to remove it. I measured before removing, and it was just as well. In Thessaloniki ninety-one of the ninety-eight shops with a named item price from a sandwich, because that is what the wrap is called there. Had I removed the word, Thessaloniki would have dropped from ninety-eight shops to seven, its factor from 1.19 to 1.24, and nationally 209 of 1,113 shops would have lost their price, nineteen per cent of the sample. I would have manufactured a whole finding out of a local name. The word stayed, with the reason written into the code and pinned by a test, so nobody tidies it away later. There was a real trap, just elsewhere: pita also matches inside spitaki. An 8.90 item reading FOLIA SPITAKI GYROS CHOIRINO was passing as a pita wrap, same family as the gyromprizolaki caught earlier. Measured impact: one shop in 1,250, no city median changed. The row came out and the reading goes from 1,288 to 1,287 shops. Finding out that those 8.90 were a spitaki took re-reading 406 catalogues, because I was keeping the price but not the item name. Now the name is kept too. The same pass turned up three errors in our own text. The first is the worst: our own source entry said 813 shops, 59 cities for three releases, while the reading had gone to 933 and then past 1,200. The scanner that catches stale numbers deliberately skips the source files, and rightly so: an August report says what it said in August. For our own reading, remeasured every month, that exemption worked backwards and kept the old number alive. A targeted test went in, in both languages, tied to the measurement file. The second is in the whitepaper. It said each year gets a confidence grade of A, B or C. There are four grades: seven years of the 1980s carry D, and their badge shows normally in the year table. So the most methodological page was not defining a badge the reader could see two clicks away. The census is now computed from the series and says how many years each grade holds. The third came out of the second: the D label read projection outside the documented range. Grade D covers two different things, interpolations inside the price-control era and projections outside the documented ends. All seven years carrying it are the first, not the second. The reader was being told projection about years that project nothing. The label now says both cases. None of this moved the published figures: Athens 1.00, Thessaloniki 1.19, Patras 0.95, Chania 1.13, middle city 4.20, price 4.25 and index 218. A third platform, 1,288 shops, and the agreement held A third platform joined the measurement, and the logic is simple: two channels that agree is good evidence, three closes the question of whether the platform is doing it. The third was found the same way as the second, by looking at what the shop page itself calls when it loads its menu. It also has a different geography from the other two, far heavier in Patras and Heraklion, so it adds more than volume. September's reading goes from 933 to 1,288 shops, and the city table to 52 cities with 1,229 shops. Most cities are now measured on three independent channels. The agreement held. In thirty-four cities there are at least three shops on at least two platforms, fourteen come out identical to the cent, and the median spread between them is ten cents. Ioannina gives 4.20 on all three channels, Katerini 4.00 on all three. The big figures did not move at all, which is the point: Athens 1.00, now on 496 shops, Thessaloniki 1.19 on 119, Patras 0.95 on 30, middle city 4.20, the 2026 price 4.25 and the index 218. Two things shifted, both in the right direction. Chania goes from 1.143 to 1.131, with its sample rising from seventeen to twenty shops. And Heraklion, which the first two channels put at 4.65 and 5.50, settles at 5.00 on seventeen shops. So that disagreement was a small sample rather than a real difference, as I suspected but could not show. The area map grew by sixty-one new names, mostly Thessaloniki suburbs such as Kalamaria, Evosmos, Pylaia and Stavroupoli, and Attica neighbourhoods in a third transliteration. Two are left out on purpose: rest-of-greece, a catch-all that matches no city, and Analipsi, which exists both in Heraklion and in Volos. I preferred to lose nine readings than to put them in the wrong city. In the same pass a contradiction in the whitepaper was fixed, which is the most methodological page and therefore the most awkward place to have one. It said the peak is 511 in 1983 and then in brackets that the highest documented is 511 in 1983, the same number twice. And further down that 1983 is interpolated, so measured between documented years the drop runs from 1983. The text was written for a time when the two years differed. Now, when they coincide, it says it once and plainly: 1983 has no price of its own, it is interpolated, and there is no higher year with a direct price to put in its place. From September the price is measured every month, and the area map had left 92 readings out From today the gyro price will be measured every month rather than once a year. The capability is only a day old: harvesting the public listings of two ordering platforms yields hundreds of shops in a single day, automatically. Before that there was no way to do this short of walking into a thousand shops. It cannot be done retrospectively, and I checked before saying so. There is not a single archived platform menu page in the Wayback Machine. The one archived directory that carried text menus produced an Attica panel from 2011 to today, and I rejected it: forty per cent of consecutive pairs showed exactly the same price, with some years reaching ninety-two. You cannot tell a price that did not change from a page that was not updated, so the chain understates. Monthly measurement does not have that problem, and that is the main reason it is worth doing: when we read the page today, we know the price holds today. So a no-change is real data. It even becomes a useful figure of its own: how many shops change price each month. Two decisions were written down plainly, because they are the first to be forgotten. The monthly rate will be chained within the same shop, keeping those present in both months, rather than taken from the median of whoever we catch. Shops join and leave platforms, and a change of composition would look like a change of price when it is not. And the year will close as the mean of twelve months, provisional during the year and final in January, because a single month, even December, would decide the whole year. 2026 does not change: it only has September onwards. The tools and the raw data went into the repo, side by side. A number in an observation without the data behind it cannot be checked by anyone, including us in six months. There is a test tying the two: the observation's count must equal the number of rows in the file. Along the way a serious fault of mine turned up. The map matching platform areas to cities was silently leaving ninety-two readings out. Nearly all of them were Attica written in a different transliteration, Acharnes, Pagrati, Vyronas, Glyfada, Palaio Faliro, along with thirteen cities missing entirely. It is fixed, and the reading goes from 813 to 933 shops and from 72 to 79 cities, with none now unmapped. The best part is that not one factor moved: Athens 1.00, Thessaloniki 1.19, Chania 1.14, Patras 0.95, middle city 4.20, the 2026 price 4.25 and the index 218. More data, the same conclusions. One thing did get worse and that is written down too: the median gap between the two platforms went from zero to seven cents. The reason is that three more cities entered the comparison, among them tourist ones, where the two channels genuinely disagree. The cities identical to the cent are still thirteen. 2026 goes from 3 shops to 816, and its price did not move Yesterday this log said 2026 rests on three shops, while we hold 813 readings of our own that were going unused. The reason was specific: those readings come from ordering platforms, and we did not know whether a platform price is a counter price or something dearer. It has now been measured, two independent ways, and the number is 1.02. The first way is same-shop pairs. The Thessaloniki grill house O Giannis has a printed August 2026 price list reading all sandwiches, with or without spread, only four ninety, and the same shop appears on the two platforms at five euros and five ten. Two more shops with their own websites at four ninety also show five and five ten. The second way is same-city medians. Four printed 2026 Thessaloniki price lists were read and give a median of four ninety-five, while the two platforms across eighty-nine shops give five euros. The two ways give 3.1 per cent and 1 per cent. We take 2 per cent, between them, and the spread passes into the observation's uncertainty rather than being hidden. The price lists read are photographs of real menus: Giannis at four ninety, Stelios at five, Gyradiko at five, Express at four twenty, all in Thessaloniki, and Dokos in Euboea at three euros from a wall price list. A sixth was rejected because it is not a counter price: the Prassas leaflet is a delivery menu with a six euro minimum order. So our reading entered 2026 and the year goes from three shops to 816. The most important part, though, is what did NOT change: the year's price stays at four twenty-five and the index at 218. I write that with emphasis deliberately. When you add 800 readings to a year that had three, the normal outcome is that the number moves. It did not, because our reading agrees with the two journalistic sources: four twenty as a median per shop, four twelve after the channel adjustment, four twenty-eight if weighted by population. The year gained evidence rather than a new number, which is the best possible outcome. Two things are stated plainly, because 816 is easy to misread. First, the reading enters as ONE observation with its own weight, not as 813 independent sources. Second, its weight is not proportional to the count: it is a convenience sample of shops that happen to be listed on a platform, and those lean urban and newer. It carries a weight slightly above the two other sources, not ten times theirs, and a test holds it there. Finally, one test was reversed on purpose. Until yesterday it guarded that platform readings are not national evidence, which was right while the factor was unknown. It now guards the next thing that could go wrong, namely counting them as 800 sources. The reversal is written inside the test so it does not look silent. A second platform, 755 shops, and the two readings came out the same Yesterday a table of thirty-one cities went onto the regional page, measured from the listings of one ordering platform. The obvious question was whether the platform makes the geography by itself: each one has its own mix of shops in each city, and if it happens to carry the expensive ones somewhere and the cheap ones elsewhere, a difference appears that does not exist on the street. The only way to answer that is a second, independent reading. The second platform does not carry the menu inside the page; it loads it separately, so I had to find where from. Together with fixing a flaw in how shops were chosen, the table goes from thirty-one cities and 191 shops to forty-five cities and 755 shops, with Athens now resting on 237 and Thessaloniki on 89. The cross-check is the main finding, and it turned out better than I expected. In twenty-five cities there were at least three shops on both platforms. The median absolute difference between the two readings is zero, and thirteen of the twenty-five come out identical to the cent. Thessaloniki gives 5.00 on both, Chania 4.80 on both, Ioannina 4.20, Patras 4.00, Corfu 4.50, Kalamata 3.50. Two independent listings do not land on those numbers by chance, so the geography the page shows is real rather than an artefact of the method. The most useful part for me is that Chania was confirmed rather than changed. The factor I moved earlier, from 1.02 to 1.14, rested on five shops and it bothered me. It now rests on sixteen, from two channels, and produces exactly the same number. The country's middle city also stays at 4.20, so the index did not move at all: 4.25 for the price and 218 wraps. There is one area where the two channels disagree, and I write it beside the table rather than hide it: the tourist destinations. Mykonos comes out at 6.50 on one and 5.25 on the other, Rhodes at 4.80 and 4.45, Heraklion at 4.65 and 5.50. The explanation is simple: in a tourist town the shop on the square and the shop in the neighbourhood sit side by side with a huge gap between them, so a small sample gives a different answer each time. In ordinary cities that does not happen. With twice the data, the country's range grew at the top. Mykonos enters at 6.00 across nine shops, nearly one and a half times the middle city, and at the bottom sit Kalamata and Ptolemaida at 3.50. The very same thing costs almost twice as much between the two ends. Something I had not noticed in the first harvest was fixed too. I was choosing shops by keywords in their name, which caught the ones called gyros shops and missed the ones named after their owner. The list now comes from each city's souvlaki category page, that is from the platform's own classification. In Kefalonia the name filter gave four shops; the category gives nine. Finally, two smaller things. A fourth trap joins the recorded list: Neo Irakleio is in Attica, not Crete, and the first version of the analysis counted it on the island because the word matched, pulling Crete's median down. And the second platform gives both a current and a regular price, because six per cent of items were on offer. I keep the price the customer pays, and write down the percentage so the size of the issue is known. 2026 hung on one source, and the other reports were the same report The 2026 index said 215 wraps and from today it says 218. The interesting part is not the three wraps, it is why. The whole year rested on a single survey, the one broadcast in August. Looking for a second one turned up plenty of articles, but reading them one by one, they all reproduce exactly the same figures from the same survey. That is not a second opinion, it is one opinion under four headlines. A year hanging on a single reading has to declare wide uncertainty, and 2026 carried a plus or minus fifteen per cent band, the widest of the decade. The second source did exist; it just was not a survey. It is the president of the Attica grill owners, who on 2 May 2026 gives dated prices: a pork or chicken pita sells take-away between 3.70 and 4.20 euros, where before 28 February it was 3.50. The plain skewer went from 2.30 to 2.50. The take-away figure enters at a 3.95 midpoint, weighted below the broadcast survey because it covers only Attica and because these are averages a person states rather than menus somebody recorded. So the year's price moves from 4.30 to 4.25 euros and the index from 215 to 218. The more useful part is that the band narrows to plus or minus ten per cent, which means the 2026 index no longer ranges from 187 to 253 but from 198 to 242. The same source settled something that had been hanging for a while. The model carries a factor for how much dearer the same wrap is when you do not take it from the counter. It was eight per cent and it was our own number, justified as a typical difference. The same man, on the same day, for the same product, gives the second price too: by delivery, 4.00 to 4.50 euros. The ratio of the two midpoints comes to 7.6 per cent. The assumption was nearly right, but it has stopped being an assumption. And one detail changes what the factor means: the source says explicitly that it costs the same to sit and eat it in the shop. So the factor is not a platform commission; it is the gap between taking it in your hand and anything else, the table included. Two stale spots turned up along the way. The box explaining the last revision had a heading from one revision and figures from another, claiming the index went from 225 to 215 while showing 4.81 and 192 underneath. And the example on the limitations page had 4.30 euros typed into it by hand. Both are fixed, and the second is now computed from the series so it cannot go stale again. Finally, the same article forecasts a five to six per cent rise during May or June. It is used nowhere, because it is a forecast and not a measurement.

  52. Correctionv2026.09-perasma-dedomenon

    Corrections

    • The bars had collapsed: 936 shops made every other year invisible
    • The latest update bar was advertising an old change, and the headline figures showed zero in a hidden tab
    • The Chania factor rested on nothing, and now rests on 191 shops
    • We were charging the pledges with years they never promised
    Read the full entry

    The bars had collapsed: 936 shops made every other year invisible The page-by-page read-through continued with the data page, and found something I did not expect: yesterday's improvement broke an earlier one. The section showing how many shops back each year went in exactly to show how thin the old years are, that 2023 rests on one shop and 2020 on one. It had bars, and the bars were linear. The moment our own reading of hundreds of shops entered, 2026 went to 936 and every other year became an invisible sliver. 2023, with its single shop, took less than one hundredth of the width. The section had stopped saying the thing it existed to say. The bars are now logarithmic and it says so underneath. One shop takes six per cent, fifteen take twenty-five, 936 take sixty-two. Every year is visible, the ordering holds, and the figures beside them stay raw: the scale applies only to the length of the bar. In the same place there was a sentence that read wrong. It said in total 977 shops across 12 years, which sounds as if they are spread across the series, while 936 belong to a single year. It now says it plainly: the series is far better documented at its end than in its middle. That is the truth and there is no point rounding it off. The latest update bar was advertising an old change, and the headline figures showed zero in a hidden tab The page-by-page read-through has begun, by eye rather than by test, starting with the main page. Three faults turned up. The first was the most annoying, because it was the first thing a visitor read. The bar titled latest data update said the pre-2002 series now rests on four market orders. That was true when it was written, several releases ago, but the bar promises in its own title that it states the latest. It was a hand-written sentence that had to be updated by hand, and it was not. It now reads the title of the latest release, which is written every time, so the problem cannot recur. The second matters more. The page explained that 2026 is a forecast using the catering price index. That used to be true. Today the year has three measured sources: the nationwide survey, the statement by the president of the Attica grill owners, and our own reading across hundreds of shops. Calling it a forecast undersold our own work and gave a wrong impression of how solid the latest figure is. Fixed in both languages. In the same spirit, the box explaining the latest revision said the calculation blends the mean of the two sources, while the sources became three. It was rewritten without a count. The third I found by accident and it is the most interesting. The three large figures at the top count up from zero to their value, with an animation. The animation uses requestAnimationFrame, which the browser does not call at all while the tab is not visible. That means anyone opening the page in a background tab, by middle click or session restore, saw three zeros until they focused it. So did every service that takes a screenshot or prerenders the page. All of it while the screen reader read two hundred and eighteen correctly. Now, when no animation can run, the final value is written straight away. The same branch already covered people who asked their system for less motion. The Chania factor rested on nothing, and now rests on 191 shops The Chania factor was 1.02 and it rested on nothing. I found this while looking for something else: not one price observation in the database is from Chania, so the number had been typed in at some point under the heading of visitor reports and stayed there. Much the same was true of all the regional factors. This time they rest on measurement. The public directory of an ordering platform yielded 787 candidate gyros shops across 68 cities. Of those, 235 shops in 59 cities list an explicit pork gyros in pita, and 31 cities have at least three shops each. Every price was read on the same day through the same channel, which is what makes the comparison hold: whatever the platform adds is common to every city, so it cancels when one city is set against another. That is why the table is used only for city-to-city ratios, never as an absolute price, and does not touch the national index at all. Chania measures 4.80 and so does Crete as a whole, across fourteen shops. This is not only our reading: the 2025 Pricefox survey puts Heraklion at 5.30 when Athens is at 4.00, and the August survey speaks of Crete reaching 6.50. Three sources, one conclusion: 1.02 was far too low. The factor moves to 1.14 and Crete on the regional page goes from 213 to 190 wraps a month. Thessaloniki, corrected a few days ago from photographed price lists, has now been checked by a completely different route. Nineteen shops on the platform give 5.00 euros when the country's middle city sits at 4.20. That is 1.19, against the 1.22 the model uses. Three points apart between two methods with nothing in common, and the old 1.00 lower anchor is ruled out by both. Patras did not change, and that is a decision rather than an omission. The measurement gives 0.95 across thirteen shops, but Pricefox puts it level with Athens. Two sources that disagree do not justify moving three points. The same goes for Heraklion, 4.65 here and 5.30 there: it enters the table, it does not become a factor. What came through clearly is how wide the country's spread is. From 3.50 in Kalamata, Agrinio and Salamina to 5.00 in Thessaloniki and Skiathos. Tourist islands sit 14 per cent above the middle city and provincial towns 5 per cent below. The full 31-city table is now on the regional page, with the shop count beside every figure so you can see how much each one carries. The failures are worth writing down, because every one of them produced numbers that looked right. The first version of the extractor only caught items without options, which meant soft drinks and desserts, and found a wrap in nine shops out of eighty. The second tripped over accents, because an accented capital does not match the same letter unaccented. The third, and the dangerous one, paired an item name with the first price it found nearby and grabbed the neighbouring object's price: a pita gyro at 1.50 in one shop and 8.80 in another. The fix reads the object itself and separates real menu items from add-ons, and it was verified by opening the page and looking: it shows 4.30, and so does the parser. Finally, a finding withdrawn before it ever shipped. I built a panel of 732 observations from archived Attica price lists, 2011 to today, and it showed a rise of 86 per cent where the series says 112. That would be real news if it held. It does not. Forty per cent of consecutive pairs show exactly the same price, with some years at 92, while shops that did change moved by six to twenty-two per cent. A price that did not change cannot be told apart from a page that was not updated, so the chain understates. The panel stays a lower bound on the level rather than a rate, and the index is not touched by it. We were charging the pledges with years they never promised The scenarios page shipped yesterday and it carried a mistake that was ours, not the data's. One leader spoke of 1,000 euros by January 2028. The other of 1,000 euros during 2027. Neither said a word about 2029 or 2030. We wrote 1,000 into those years anyway, so the lines would reach the edge of the chart, and kept scoring them. Because a frozen wage loses ground every year, our own extension made them look worse than they are: we were charging them with years they never promised. Each line now stops where the person who said it stopped, and the page says why underneath. A figure we had stated with confidence goes with it. We said both pledges were worth 9.3% to 2030 and sat less than half a point apart. That was a product of the extension, not a measurement. Each in his own year, the first is worth 9.3% to 2028 and the second 4.3% to 2027. The gap is not disagreement, both say 1,000. It is the month the step lands, which is why the promised level is now recorded separately from the year's average. That left a hole. If the pledges stop in 2027 and 2028, what happens after? Three paths now sit beside them: frozen, rising with the decade's inflation at 2.3% a year, and rising at the pace the minimum wage actually managed over the past decade, 4.6%. None is typed in; all three come from the data. By 2030 the index lands on 155 wraps frozen, 170 with inflation and 185 at the historical pace, from today's 215. So that a «to 2028» can be compared with a «to 2030», every scenario is now placed beside a freeze in that same year. What is left is what the promise adds and nothing else: 17 wraps in 2028 for the first, 9 in 2027 for the second, 30 in 2030 for the historical path. One more thing is fixed for anyone typing their own figures. You entered 1,100 for a year and the following years dropped back to today's 920 on their own, as if we were forecasting a cut nobody asked for. Wages do not go backwards. What is not set carries on. And a small detail that shows how easily something slips through: on the frozen path the verdict read «the raise evaporates» when there was no raise at all. It now says what actually happens, that the price does the whole job by itself.

  53. Improvementv2026.09-sarotis-arithmon

    Improvements

    • A scanner for numbers that go stale, not just for euros
    • The AI assistant is withdrawn, along with its two endpoints
    Read the full entry

    A scanner for numbers that go stale, not just for euros Within one day three spots on the site were found stating a stale number, and no test had caught any of them. The box explaining the latest revision had a heading from one change and figures from another. The example on the limitations page had the gyro price typed in by hand. And the label under the chart stated how many shops our own reading covers, also by hand. What they share is that someone copied a number that is computed elsewhere. A scanner for this already existed, but only for euro amounts: every wage appearing in copy is checked against the series. It was written after a sentence was found claiming the 2026 wage is 1,078 euros when it is 924. Counts and factors were not covered, and that is exactly where today's three appeared. The new scanner keeps a table of computed figures and scans reader-facing text. If it finds their value typed as a constant it fires, naming the file, the value, and where it should be read from. It scans only distinctive values, three digits and up or decimals with three significant figures. A bare forty-five appears in every other sentence, and chasing it would make the check noise rather than a guard. Three things are excluded on purpose. Code comments, which are documentation and often quote the wrong number deliberately to explain a fix. Release notes and the changelog, which describe the past and are allowed to state figures that no longer hold. And source citations, which describe one dated measurement. The single real finding was fixed: the chart label now reads the count from the observation itself. The AI assistant is withdrawn, along with its two endpoints The AI assistant page has been withdrawn. It was not only the menu link that went; the whole feature went: the page, its English version, the component that drew it, the server module and the two public endpoints that fed it. One took the question and forwarded it, the other recorded whether the answer helped. Removing the endpoints too was a deliberate choice. A public endpoint that spends credits and accepts free text from anyone, with no page using it, is not neutral: it is something you pay for that nobody sees. The same applies to the one that wrote to the database. The index, the prices and the data were not touched at all. No series and no number changed because of this. The site map is clean too: ai is out of the sitemap and out of the menu, so nothing points at a page that is gone. Anyone holding an old link will see a 404, which is correct for a withdrawn page rather than something to paper over with a redirect. Thirty-two tests went with it, the entire file that guarded the feature. That is right: tests with no code left to check guard nothing; they only inflate the count.

  54. Newv2026.09-poses-metriseis

    How many shops back each year, and why 2026 has only three

    Read the full entry

    The chart draws fifty-one years with the same line and the same confidence, and that is not honest. 2025 rests on fifteen measured shops. 2023 rests on one. A visitor had no way of seeing it, because the two years are drawn exactly alike. So a new section went onto the data page showing the raw count per year: how many shops explicitly back the national price, and from how many independent sources. It is not a confidence grade and not a judgement of ours; it is a plain number. The total is forty-four shops across twelve years. The other thirty-nine years have no reading of their own: their price is computed from the official catering price index between the years that do. That was always written in the methodology, but a sentence on a methodology page is not the same as a number beside the year. Where a source gives a price without saying how many shops it asked, the page says count not given rather than inventing one. That covers 1989, 2011 and 2015. The most uncomfortable line in the section is the last one, which is why it is written in full. 2026 rests on three shops, the number reported by the survey we use. Over the past days a table of forty-five cities and 755 shops, measured by us, went onto the regional page. It is reasonable to assume the 2026 index comes from there. It does not, and the page now says so plainly. Those readings are platform prices and they are used only for the regional factors. The reason they do not yet enter the national price is specific: we do not know how far a platform price sits from a counter price. We have three same-shop pairs and they give two to four per cent. The cleanest is a Thessaloniki gyros shop whose printed August 2026 price list reads all sandwiches four ninety, while the two platforms show five euros and five ten. Two more shops with their own websites at four ninety appear on the platform at five and five ten. Three pairs in one city are not a factor; they are an indication. It is worth saying what would change if they did enter, because it is not what I feared. The 813 readings give a median of four twenty and four twenty-eight weighted by population. The published price is four twenty-five. They agree. That is why there is no rush: bringing them in would add evidence rather than a correction, and I would rather do it once the channel factor rests on more than three shops.

  55. Newv2026.09-senaria

    New features

    • Scenarios: what the index does if the minimum wage reaches EUR 1,000
    • The gap: the wage beat inflation, and still buys half as much
    Read the full entry

    Scenarios: what the index does if the minimum wage reaches EUR 1,000 Both party leaders promise a minimum wage of a thousand euros. Mitsotakis says above nine hundred and fifty from April 2027, a thousand by January 2028, and half a point off employee contributions from April 2027. Tsipras says a thousand within 2027. The new page takes both pledges and runs them through the same arithmetic that builds the index, to see how many wraps come out the other end. It forecasts nothing and says so in capitals: you set assumptions, you see arithmetic, and every assumption is on screen. The first thing that had to be solved was a trap you cannot see. Politicians speak in gross, times fourteen payments. The index works with net after contributions, annual income divided by twelve. The two happen to be almost equal, because nine hundred and twenty gross gives nine hundred and twenty-four of ours, so if anyone confused them nobody would ever notice. The conversion now uses the exact formula that builds the series, not a copy of it, and there is a check that keeps it that way. Then a price scenario was needed, because a page that only raises the wage tells half the story. There are three and none is typed in: they are computed from the index's own data when the page loads, so they can never go stale. The first has the wrap follow inflation, that is two point three per cent a year. The second, which is the default, uses the pace the wrap actually ran over the decade, eight point five. The third uses the five-year pace, thirteen point two. It is worth saying plainly that 'like inflation' is not the neutral scenario, it is the optimistic end: the wrap has not followed inflation for a single decade. The result is cleaner than we expected. Both pledges are worth nine point three per cent by 2030, and they sit less than half a point apart. Break-even, meaning how much the price can rise before the raise disappears, is two point three per cent a year. At the decade's pace the index goes from two hundred and fifteen wraps to one hundred and sixty-nine. At the five-year pace, to one hundred and forty-three. And in the most optimistic scenario, where the wrap suddenly starts behaving like the price index, the index lands on exactly two hundred and fifteen, which is where it started. We did not write that conclusion; the page computes it and it changes if the numbers change. You can also enter your own figures, year by year, from 2027 to 2030, and see what it would actually take. There is also a switch for something we have documented: a wage rise pushes the price. On the eighteenth of April 2019 the trade announced a three euro wrap and the reason that circulated was the February minimum wage increase. The switch passes half the rise into the price, is off by default, and is declared explicitly as an assumption rather than a measurement, because the 2019 episode calibrates nothing. The gap: the wage beat inflation, and still buys half as much There is a sentence you hear every time the minimum wage comes up: do not worry, if prices rise the wage rises automatically, you never lose purchasing power. We took it seriously and checked it with official figures only, none of our own. And it comes out true. The net minimum wage outran the official price index in every period we looked at. Since 1976 it multiplied by sixty-seven and a half while inflation multiplied by forty-five. Since 2008 by one thirty-nine, while inflation went one thirty-two. So on paper, a worker on the minimum wage buys more today than in 2008. Everyone knows that is not true. The new page adds the third column missing from this argument: the price of the thing itself. The gyro wrap, from 2008 to today, multiplied by two seventy-seven. The same wage buys two hundred and fifteen wraps a month instead of four hundred and thirty. Half. The same comes out whichever year you start from, and you can try them all. It never reverses, and there is a check in the code that will fire if it ever does. Now the hard part, written on the page rather than hidden here. One good is not the basket. We do not say the price index is rigged, because we do not know that and cannot prove it. We say something narrower and easier to check: that one everyday good, documented year by year from newspapers, price-control orders and printed menus, outran both the index and the wage. Second, part of that gap is already official. The catering sub-index runs above the headline one, and the difference in our series is three point seven points a year. It is not hidden, it is measured and published. Third, and the one that stings for us. For the years 1999 to 2018 the wrap price is not measured every year. It comes from the headline index plus that constant spread, tied to the documented ends. At the ends of each comparison, where there is paper, it is a measurement. In the middle it is a model. Better we say it first. And one last choice worth explaining. 1985 stays in the list of starting years even though that year's price is grade D, a projection with no document behind it. Plenty of people use that year, so rather than hide it we show it with its badge beside it. Every starting year carries the documentation grade of its price.

  56. Correctionv2026.09-megethos

    Corrections

    • Thessaloniki is not dearer. Its wrap is bigger.
    • Thessaloniki is not steadily dearer, and our number said otherwise
    Read the full entry

    Thessaloniki is not dearer. Its wrap is bigger. Yesterday we corrected the Thessaloniki factor and said it now held. It did not, and we found out by reading price lists. The model's lower anchor was a 2019 reading that put Thessaloniki exactly on the national average. Two Thessaloniki menus from that same year, one in Polichni and one on Synidka street, give three euros and two eighty. That reading was not describing a gyros shop price list. In its place went twenty-two measurements, from fourteen shops and eleven neighbourhoods, across sixteen years from 2004 to 2025. Always pork gyros in the cheapest column of each menu, never lagana or Cypriot pita. There are three sources and none of them knows the others: photographed price lists uploaded by users, archived shop websites from the Wayback Machine, and one dated forum post. The mean ratio comes out at one point three four and never comes near one. So the factor is not a ramp starting from one; it is a line drifting gently down, from one forty-six in 2004 to one twenty-two in 2025. For the older years the difference is large: Thessaloniki in 2010 now shows three hundred and eleven wraps instead of four hundred and thirty-three. For 2026 the move is small, from one hundred and seventy-eight to one hundred and seventy-six. The interesting part is not the number, though, it is the explanation, because the previous one was the wrong story. Every gyros shop sells the same meat two ways, wrapped and as a portion. Compare the two inside one menu and rents, wages and city price levels all drop out. What is left is how much of a portion the shop puts inside the pita. In Thessaloniki the wrap is forty-one per cent of a portion. In Athens, thirty-three. And portions cost almost the same in both cities. The cleanest example is two menus from the same year. Thessaloniki 2014: wrap two seventy, portion six ninety at three hundred grams. Ioannina 2014: wrap two ten, portion six fifty. The portion costs almost the same. The wrap costs twenty-nine per cent more. So Thessaloniki is not a dearer city for gyros. Its wrap is simply more food. And there is a shop in Heraklion that spells this out on a single page. Its gyros pita comes in four sizes, and the eighteen-centimetre column is split in two: capital-city style at three twenty and regular at four fifty. Same diameter, forty-one per cent apart, and the shopkeeper printed the word himself. One of our own sentences fell in the same round. We wrote that lagana and Cypriot pita do not exist at all as an option in Athens. We read six Athens menus and one of them prices a Cypriot pita in its own column. The right word is rare, and that is what it says now. Finally, the regulated-price era gained a source with names and a date. Two MPs tabled the same petition nine days apart in April 1978, from the Athens Association of Grill Owners and Souvlaki Makers, asking for the price of souvlaki to be freed. Until now the era rested only on the regulatory texts themselves. The national series did not change by a single cent: no price observation comes from Thessaloniki. Thessaloniki is not steadily dearer, and our number said otherwise Our index is a national median, but the data page also carries a regional reading: the same wage, the same national price, and a level factor per region. The Thessaloniki factor had been pinned at 1.05 from the start, with no source behind it. What stings is that we had already found and fixed the same problem for Athens. There the factor moves from 1.08 to 1.00 between 2022 and 2025, because the surveys showed the Athens premium had vanished. Thessaloniki was left constant with no reason given. We looked at what our own multi-city surveys say, the ones already in the database, and three readings came out. In 2019 the six-region survey puts Thessaloniki at two sixty, while that same survey's national mean is two sixty-one: Thessaloniki was exactly on the average. In 2022 local reporting has it cheaper than Athens. And in 2025 Pricefox has it at four ninety, when the national figure the series adopts is four oh five. So the fixed one point oh five was wrong in both directions: too high for the decade that passed, too low for now. The factor is now time-varying, flat through 2022 and rising to 2025. Before 2019 there is no multi-city survey at all, so it holds the first documented value rather than inventing a number. The change does not touch the series by a single cent, because no price observation comes from Thessaloniki. Only the regional reading changes, where Thessaloniki in 2026 now shows five twenty and one hundred and seventy-eight wraps instead of two hundred and five. An explanation that was missing went in alongside it. Part of what gets recorded as dearness in Thessaloniki is not price, it is size. The same filling is sold in three breads, priced separately on the same menu: pita, lagana, Cypriot. The lagana is about seventeen per cent above and the Cypriot about twenty-six, and that ratio comes out stable across four catalogues over a decade. Neither exists as an option in Athens. And there is a second, linguistic trap. In Thessaloniki a souvlaki means the skewer, and the wrap is called a sandwich. In Athens it is the other way round. So every national survey asking what a souvlaki costs measures a different product in the two cities. In the same round the gap page, built yesterday and reachable only through a dropdown, came to the surface. A link now sits on the index right under the three big numbers, where the question arises, and there is an entry in the FAQ. Finally, one of our own checks turned out to be loose. It banned the text four point eight nine from the FAQ, because that was a retired figure. As soon as cumulative inflation since 1976 went into the text, which is forty-four point eight nine, the check fired over a number with no connection to it. It now asks for the whole number and verifies for itself that it still catches a real reintroduction.

  57. Improvementv2026.09-katalogoi

    Improvements

    • 1980 got its own price-control order
    • The documentation grade now sits beside the number itself
    Read the full entry

    1980 got its own price-control order The four-year run from 1979 to 1982 has been broken. Rizospastis of Friday 28 November 1980, front page, under the headline “Souvlaki gets dearer”: “By price-control order souvlaki gets two drachmas dearer from tomorrow. From 12 GRD the souvlaki made of ‘gyro’ or beef patty becomes 14 GRD, and the pork souvlaki goes from 15 to 17 GRD.” The first figure is ours, because the “gyro souvlaki” is exactly the wrap the index measures. The second line is a trap worth naming: the “pork souvlaki” is not the bare skewer, it is the same wrap with a different filling. Taking it for a skewer would say the skewer cost more than the wrap, while in 1976 the opposite held. The rise covered one month out of twelve, so the year was weighted rather than pinned to either number. And because it is a ceiling rather than a free price, it took the same factor 1977 and 1978 already carry. Working out how to add it turned up something that had been hiding for a long time. 1978 had its own document all along, the 10 drachma ceiling, but the series did not stand on it: the single arc from 1977 to 1983 ran straight over and produced 10.9 drachmas instead of 11.1. Close by accident. It is pinned now, and something nice comes with it. With both 1978 and 1980 tied down, the 1979 freeze stops being an approximation: the 1979 price comes out exactly equal to 1978, as the May order of that year says. Five years moved, 1978 through 1982, and nothing else. 1978 and 1979 rise slightly, 1980 falls a little under five per cent, 1981 and 1982 fall less. There is a second report, from June 1981, deliberately not used as an anchor. It says the souvlaki price is being freed onto a whole mathematical cost formula and that, as the deputy minister admitted, it will rise by two to three drachmas. A minister's forecast is not a measurement. It went in as a source, because it opens a question one newspaper page cannot close: we say the cost formula arrived in 1989, the paper says eight years earlier. The same round also checked the euro decade, the years 2003 to 2010 that come out of arithmetic rather than a document. Two independent guide series say the level holds, so nothing moved there. And something about Thessaloniki, which a tester asked for. Seven photographed price lists from the same gyro shop, 2006 to 2016, price the same filling in three bread formats: pita, lagana, Cypriot. The lagana is seventeen per cent above and the Cypriot twenty-six, stable across a decade. Neither exists in Athens. So any survey measuring “the gyro wrap” without saying which bread can read Thessaloniki up to a quarter higher with no real price difference at all. There is a second, linguistic trap too: in Thessaloniki “souvlaki” means the skewer and the wrap is called a “sandwich”, while in Athens it is the other way round. Finally a fix a tester reported: the menu did not work on desktop. The button opened normally but nothing showed, because the horizontal scroll added to stop the navigation overflowing was clipping the dropdown. Three of the seven nav items are groups, so half the menu was dead on every desktop. The documentation grade now sits beside the number itself A small change, but the kind that changes how a page reads. The three big numbers at the top of the index read like measurements, while they are not equally solid. Some come from a documented price that exists in a newspaper or a price-control order, some from interpolation between two documented points, and some from projection beyond the documented range. The confidence grade was already computed for every year and showed in the data table, several scrolls below the numbers most people actually look at. It now sits beside the number itself, as a small badge in the grade's colour, with the full wording appearing on hover. Along the way a stale figure turned up in the index's metadata: it advertised forty-two years of purchasing power, while the series runs fifty-one. And one thing that was tried and not kept, because that is worth saying too. Testers suggested making the Pita-Gyro Index the homepage, arguing that the reverse question needs a lot of explaining for a first-time visitor. We tried it and rolled it back the same day. The homepage stays Reverse Gyronomics and the index stays at its own address, as before. No price, wage or index changed.

  58. Correctionv2026.09-diorthoseis

    Ten fixes from testers, and two things that turned out not to be wrong

    Read the full entry

    A group of users tried the site and sent sixteen observations. We checked each one against the code and against the live pages. Ten were real defects and are fixed, two were misreadings, and the reason is worth writing down too. Start with the cheapest and most annoying. Search always landed in the same place. Every FAQ question has its own identifier, made explicit so that links people share do not break, but search did not use them: it sent everyone to the top of the page. Whatever you looked for, it seemed to open the wrong section. It was five characters. Then the calculator, with two separate problems. The first is arithmetic: twelve hundred euros produced 1,399.99 instead of 1,400. The factor was computed as the ratio of two amounts that are already rounded to the cent, so it was not exactly fourteen twelfths. Now it is, by definition. The second is more irritating: switching wage basis rewrote the field. You typed twelve hundred and it became 1,028.58. The conversion was right, but it happened silently on top of what you had typed, so it looked like data loss. Your amount now stays where you put it and the conversion is shown underneath, on both bases. The chart mixed units. When you chose classic wraps, the readout line showed the classic index but the period price. For 1983 it said price eight cents and index five hundred and eleven, while fifty-six divided by eight cents is six hundred and sixty-five. Three numbers in the same sentence that did not reconcile. The most serious one, though, was sharing, because it leaves the site and lives on its own. The text said how many gyros the wage buys without saying which unit, without saying which scenario, and with the year written into the sentence. If you had selected a hypothetical scenario, it produced six hundred and twelve gyros as fact. Someone shares that and nobody ever learns it was a what-if. It now carries the unit, the documentation grade, and an explicit prefix saying it is a hypothetical scenario. And the years are no longer typed by hand anywhere, not on the card and not in the image's alt text, because with 2027 they would have become lies without anyone noticing. In the reverse tool, if you set your own target, the copy kept saying the reference year's coverage was one hundred percent by construction. But there is no reference year once you set your own target, and coverage is computed rather than defined. The price form offered years up to 2030. You could report a price you saw with your own eyes in a year that has not arrived. The range was shared with the corrections form, where 2030 makes sense because it concerns future data. The two ranges are now separate. The quiz said try again while locking the answer and offering only the next year. The wording changed, not the behaviour, because the score has already counted the attempt. And the birth-year card explained the wage basis as if it offered a switch, when it has none. It now says which basis it uses and where the switch lives. The header fell on itself. The navigation appeared from seven hundred and sixty-eight pixels but only fits from about one thousand and thirty, so in between its last item covered the buttons on the right. We measured it at eight hundred and sixty and at one thousand and twenty-four. It was not only on narrow screens, it was on a small laptop too. The burger menu now covers the whole range where the navigation does not fit, and where it does fit, it scrolls instead of overflowing. Two observations were not defects. The first said the site's figures were out of date. They are not: the numbers the testers quoted were exactly the correct numbers of the current series, and the internal consistency check passes with no warnings at all. What was out of date was the promotional post, not the site. The second asked that the 1983 peak not be presented as definitive, because it is grade D. It is not any more: it was documented two releases ago from a newspaper of the time and is grade B. The substance still stands, though, because that year's uncertainty range is still wide. And one more that looked like a contradiction and was not, or rather was somewhere else. The testers saw the site say in one place that visitor reports never enter the index and in another that they do after thirty submissions. We checked the chain: they do not, anywhere, ever. The FAQ and the limitations page say it correctly. What said it wrongly was a panel that is a simulation, written in the present tense as if it were policy. There was no contradictory policy, there was one badly worded sentence. No price, wage or index changed in this update.

  59. Datav2026.09-odigoi

    Data updates

    • 1984 turned up in an expense ledger, and 1979 turned out not to have risen at all
    • A 1983 price turned up, and 2002 turned out never to have been measured
    Read the full entry

    1984 turned up in an expense ledger, and 1979 turned out not to have risen at all The best find this time was neither a newspaper nor an order, it was a diary. A man called Louis Grivetti cycled across Greece in the summer of 1984 and wrote down what he spent every day, in drachmas and in dollars. In the list, between the newspaper and lunch, sits the line: souvlaki sandwich, thirty-five drachmas, thirty-two cents. Not an estimate, not a ceiling, a price actually paid. And the nice part is that the line carries its own check. Thirty-five drachmas at thirty-two cents means one hundred and nine drachmas to the dollar, which is exactly the 1984 rate. We needed that: the same line appeared in the index also attributed to a travel guide from 1979, where the rate was thirty-seven and the figure simply impossible. The arithmetic showed which attribution was right, without having to trust the catalogue. A second source says the same: the Let's Go guide of the 1985 edition writes that souvlaki, on a skewer or wrapped in pita, is a bargain at thirty to thirty-five drachmas. We did not make 1985 an anchor, and it is worth saying why: guides report a survey from the previous year, so the 1985 edition speaks about 1984 prices. Entering it as a 1985 price would have manufactured a decline that never happened. With 1984 documented, the long gap has been cut a third time. Two four-year runs remain, 1979 to 1982 and 1985 to 1988. Two releases ago it was eleven consecutive years with no source at all. The second find is of a different kind and perhaps matters more. Searching not for the word souvlaki but for the price orders themselves turned up the front page of Makedonia of 30 December 1979. It says the selling price for souvlaki made from pork will rise by thirteen percent, and that the relevant order is expected. Put it beside the order of May that same year, which raised soups and pasta by forty percent while stating that souvlaki prices remain unchanged, and the year is documented end to end. Within 1979 the price of souvlaki did not move, and the first increase falls at the turn into 1980. Until now we gave 1979 headline inflation, nineteen percent. That was not a bad assumption, but it was an assumption, and two pieces of paper undo it. The year's weight was set to zero. The 1979 index rises from six hundred and one to six hundred and ninety-four wraps, the largest figure this update moved. The third part concerns 2000. Four travel guides, naming shops and streets, give a wrap at three hundred and fifty to four hundred and fifty drachmas in central Athens. Thanasis in Monastiraki at three hundred and fifty, Pitta Pan at four hundred and twenty-five. These are central prices, so they are rescaled to the national median exactly as we do for the Athens sources of recent years. 2000 has stopped being an interpolation. The same guides also gave something that had been missing for a long time: a third documented point for the skewer-to-wrap ratio. We had two, from 1976 and 1978, and then a pinned figure for 1998 that was pure assumption. The 2000 measurement contradicted it, so the assumption went. And with it went a standing disagreement: the undated 1988 clipping gave a ratio of seventy-eight percent while our model gave fifty-eight. The model now gives seventy-four, and the clipping was not used at all to get there. We also searched two official routes that gave nothing, and we write that down so nobody searches them again. The Hellenic Parliament digital repository has character recognition and twenty-two items containing the word souvlaki, in sittings from 1975 to 1995. We pulled the text of eleven sittings. No price, all rhetorical. And in the government gazette, full-text search does not reach before 1992, so the price-control orders of 1984 to 1988 cannot be found by word. Finally, something about the checks. Seventeen new ones were written, and three of them did not bite. We found that by deliberately breaking the code to see whether they would fire. Their shared mistake was looking at the output instead of the source: if someone typed the thirty-five by hand instead of reading it from the constant, the result came out the same and the check passed. They were fixed, and ten of ten deliberate defects now fire. A 1983 price turned up, and 2002 turned out never to have been measured Three documents, all three from newspapers of the day. The first is Rizospastis of Sunday 14 August 1983. In a short column about cigarettes that had suddenly gone up, it also says this: the kebab-type souvlaki sells for two drachmas more, that is thirty drachmas. The verb is sells, so it is a market price rather than a ceiling, and it is the first free price we have found inside the big gap. The same sentence gives the previous level too, twenty-eight drachmas, so we know both of the year's figures. The annual price is their weighted mean, because the rise came in mid-August and covers four and a half of the twelve months. The project's longest gap was cut in two and fell from ten years to five. And something happened that did not have to. The interpolation between 1977 and 1989 already gave a price for 1983, without ever having seen the report: twenty-eight point six. The document says twenty-eight point seven five. So the documentation did not correct the series, it confirmed it. The peak of the whole classic series, which is 1983, stopped resting on a calculation and now rests on paper. The second document is Makedonia of 18 May 1979, front page. Two price-control orders raise soups and pasta by forty percent, pulses by up to fifty, café items by up to twenty-five. And about our item they say the opposite: prices remain unchanged. We did not make it an anchor, because it gives no price level, only a change. It did go into the limitations, because it says something that needed saying: the official catering index measures a whole basket, and the basket and the item can part ways. The third is Rizospastis of 8 January 2002, with its own market survey. On souvlaki, it writes, increases of up to forty-six percent were observed, from three hundred and fifty drachmas to one and a half euro. The source's arithmetic checks out on its own. That forced us to look at what we had been saying about 2002, and it was not right. 2002 carried exactly the same price as 2001 and was declared documented, so the series was saying the euro changeover changed nothing. Except that one euro seventeen was not a 2002 measurement: it was the conversion of the dual-pricing campaign's three hundred and ninety-nine drachmas, a 2001 price written in euros. Now 2002 is an estimate with a range, from one euro seventeen to one and a half. The lower end means no change, the upper is the largest increase the paper recorded. Up to forbids taking the upper end as the central value, so the centre comes from 2001 on the official 2002 sector index and nothing else. The 2002 index falls from four hundred and ten to three hundred and eighty-seven wraps, and the years to 2010 follow with smaller steps. 2026 did not move. Along the way a citation turned up pointing at an article that does not exist: the identifier was 1234567, a sample rather than a real one. The actual report was located and a check now scans every source for such patterns. A fake identifier in a citation is worse than no citation, because it looks like documentation. Finally, how they were found. Last time meant reading scans by eye and stopping at the easy ones. This time six hundred and eighty-nine articles were collected and scored straight from the character recognition, without opening a single scan. The key was the negative weights: for sale next to grill house is a classified ad for selling a shop, and confiscated is a price-control raid, which never prints a price. The scoring was tested on known answers first: the two finds we had already confirmed came out first and third of six hundred and eighty-nine. Without the negative weights, one of the two fell to fifty-eighth.

  60. Newv2026.09-dyo-arthra

    Two articles: how the prices were found, and why a third did not go in

    Read the full entry

    Two new articles, both about the same work seen from its two sides. The first is how the 1976 and 1978 prices were found. It is effectively a set of instructions: the National Library digital newspaper archive is free, needs no account, has full-text character recognition, and holds Makedonia, Rizospastis, Eleftheria, Embros and Tachydromos. The word souvlaki, restricted to the years where we had no source at all, returns two hundred and sixteen articles. The first two we opened both carried a price. The article also covers what those two documents corrected: the factor that turns a regulated ceiling into a market price went from one measurement to two, and the skewer-to-wrap ratio went from assumption to documentation. And the unexpected part: with the new factor, the 1977 Chania order carried forward to 1989 on headline inflation alone lands half a percent from the documented price, where before it missed by three and a half. Nothing was tuned, it came from an independent document. The second article is about something that did not ship. An undated newspaper clipping gave a souvlaki price inside our largest gap. The year was found with a calendar: 7 November falls on a Monday only four times in the whole drachma period, and three of those are ruled out by the two price-control orders we already hold. Our model landed inside the clipping's range, which means we had a finding that confirmed us exactly where we had nothing. And it still stayed out, because the paper carries no newspaper, date or page. The year is our inference, not a statement by the document. No figure in either article is written by hand. The gap length, the documented years, the two uplift measurements and the two skewer ratios are read from the data, so if someone finds a price for 1980 the articles say so on their own. Along the way I caught a guard that did not bite. The first check looked for the figure anywhere in the article text, so it passed even when the figure was typed by hand, because the same digits appeared in another paragraph. I found it by deliberately breaking the code to see whether the check would fire, and it did not. The check now reads the source rather than the output. No price and no index changed.

  61. Datav2026.09-arxeio

    Prices for 1976 and 1978 turned up, in the newspapers of the time

    Read the full entry

    We had been looking for prices in the years with no source at all. The route that worked was the National Library digital newspaper archive: free, no account, full-text search, and it holds Makedonia, Rizospastis, Eleftheria, Embros and Tachydromos. The word "souvlaki" returns two hundred and sixteen articles inside our gaps. The first two we opened both carried a price. In Makedonia of 24 October 1976, a ministry of commerce order sets the gyro wrap at seven and a half drachmas with pita, and the same text records that the price already formed in the shops was eight drachmas. In Rizospastis of 17 June 1978, a price-control order sets the doner wrap with pita at ten drachmas. The second one matters most: it is the first documented wrap price inside the eleven consecutive years that had no source. The project's largest gap falls to ten, and documented years go from sixteen to eighteen. The same documents also corrected two constants that had been assumptions. The first is the factor that turns a regulated ceiling into a market price. We had measured it once, from a 1989 report, at the moment price control was lifted and prices typically overshoot. The 1976 text measures it a second time, inside the price-control era and in Athens, and comes out lower. We take the mean of the two. And here something unexpected happened: with the new factor, the 1977 Chania order carried forward to 1989 on headline inflation alone lands half a percent from the documented price, where before it missed by three and a half. We tuned nothing, it came from an independent document. The second constant is the skewer-to-wrap ratio. It was pinned at sixty percent with no source. Both documents print the two prices side by side and say ninety-three and eighty-five. That makes sense: back then the wrap was nearly the same thing plus the pita, while today it carries fries, tzatziki and three times the portion. A third document turned up, from 1983, which gives no price but two rules: that the 37 to 40 gram portion held in the middle of the period as well, and that the price of souvlaki was tied to fresh pork. The figures: prices from 1976 to 1987 fall by one to four percent, so the index for those years rises a little. The peak stays in 1983 and goes from 500 to 511 classic wraps. 2026 stays at 215. The remaining two hundred and thirteen articles were not mined. Reading is scan by scan, by eye, and 1977, 1979, 1980 and 1981 hold dozens of hits each.

  62. Improvementv2026.09-apokomma

    Improvements

    • A price turned up inside the gap, and we did not make it data
    • The chart drew three lines where there is one measurement
    • The chart stops showing 1985 as confidently as 2025
    Read the full entry

    A price turned up inside the gap, and we did not make it data A reader sent in a period newspaper clipping. It says souvlaki, kokoretsi and the oil-based dishes served in restaurants get more expensive from Monday 7 November, and that souvlaki in a pita goes from 65-70 drachmas to 75-80. It is the first wrap price ever to turn up inside the eleven years for which we have no source at all. The clipping has no date, so the year had to be worked out first. In the drachma period 7 November falls on a Monday only four times: 1977, 1983, 1988 and 1994. 1977 is out because we have a documented price order of ten drachmas. 1983 would mean that in 1989 the price was double what the price-control order of that year sets. 1994 would mean a price cut. That leaves 1988, and the post-increase price is exactly the price set by the 1989 order six months later. Then came the check that mattered. We took the documented 1977 price and carried it forward to 1988 with headline CPI alone, ignoring the 1989 anchor entirely. It came out at 68.0 drachmas. The clipping says 65-70. An error under one percent on an eleven-year projection, and not a circular one: the year was found from the calendar and the two documented anchors, not from the path being tested. And still it did not go into the data. The clipping carries no newspaper, date or page, so the year is our inference rather than a statement by the document. A site that asks others to show their gaps does not anchor on an anonymous image. 1988 stays without a source, the gap stays eleven years, no figure changed. We also looked for the price-control order itself in the government gazette and did not find it: the 1989 order repeals all earlier ones without listing them, and the National Printing House offers no open full-text search for 1988 issues. That failure is recorded too, so the same work is not done twice. All of it is now on the "What we do not know" page. The chart drew three lines where there is one measurement In the previous release the chart's main line became dashed, to declare that in most years the price is interpolated. A correct declaration, but the chart became hard to read, and looking into why turned up something worse than aesthetics. The chart also shows two hypothetical scenarios, "if it had followed headline CPI" and "if it had followed food-service CPI". Those start from a given year. Before it they hold exactly the same value as the index: in 1983 all three series give 500. So for twenty-three of the fifty-one years the chart drew three lines, in three colours, on top of each other. And because the second hypothetical was drawn last, what you saw as the index across the left half was not the index. It was the hypothetical painted over it. Colour made it worse: the hypothetical sat at hue 22 next to the brand orange at 50, and was more saturated than the real thing. In a thin dashed line on a phone that is the same colour. The scenarios now appear only from the year they diverge, keeping the last shared point so the branch is visible. No year is written by hand, the comparison is made on the values. The index stays dashed but is now the heaviest layer on the chart and is drawn above everything, and the second hypothetical moved to violet. Along the way I created a bug: once the index values became nullable, the tooltip would have shown an empty index for twenty-three years whenever a hypothetical scenario was selected. The tooltip now reads the raw value from its own key. No price and no index changed. The chart stops showing 1985 as confidently as 2025 The site asks everyone to show their gaps. Its own main chart was hiding them. Every year carries a documentation grade from A to D. An A means there is a real price from a source of the time. A D means there is nothing at all and the number is interpolated between two distant points. The grade showed in the table, it showed in the tooltip, but the line was drawn solid and at the same weight across all fifty-one years. So 1985, for which we have not a single price, was drawn with the same confidence as 2025, where we have official figures. And it is not one year: from 1978 to 1988 there are eleven consecutive years at the lowest grade. From today the line is dashed where the price is computed, and solid with a dot only on the sixteen years that have a documented price of their own. Something we did not design also falls out of the data itself: years that come one after another join into a solid run, while isolated ones stay as bare dots. So you can see at a glance that the last decade is measured almost throughout, while the 1980s hang from two points. It is the density of our sources, drawn, with no caption needed. A new legend entry explains what the dashed line means and names the gap, because otherwise the change would read as decoration. Two things took time and are worth writing down. An isolated documented year produces a zero-length line, an invisible one, so without the dots only the last decade would show and the chart would lie in the opposite direction. And with animation enabled the library rendered no dots at all on a series with gaps. Finally, a mistake of my own that the test of the tests caught. I wrote seven deliberate defects to see whether the new checks catch them. Two passed silently, because the check looked from the line's position to the end of the file, and the same words also appear further down on another line of the chart. So it was guarding something it was not guarding. Fixed. No price, wage or index changed. Only how much the chart claims.

  63. Newv2026.09-arthra

    New features

    • Two articles: the tax that was paid, and the deflator that did not ship
    • Every year now shows how its number is produced
    • AI assistants can now ask Gyronomics directly, instead of reading stale copies
    • The third way to measure the same fall, and why it comes out worst
    • Our gaps got a page, along with the history of failures
    Read the full entry

    Two articles: the tax that was paid, and the deflator that did not ship Two new articles, both about findings that would have been easier to leave inside the code. The first is about tax. The site said in five places that the minimum wage almost never paid income tax. Nobody had found that figure in a source: it had been produced by the model itself, which applied the 2010 scale across the whole series. A scale with a twelve-thousand-euro threshold, applied to a wage of a few thousand, cannot return anything but zero. With the real scales from the government gazette, the minimum wage paid tax in thirteen years, the first being 1990, back in the drachma. The worst is not the present one, it is 2011. The second article is about something that does not work. We tried swapping the deflator for the years with no documented price, from headline CPI to the Food group, which for a food item sounds obviously more correct. The rates came out of the ELSTAT monthly bulletins, scans with no text layer, twenty-two years of them. And the test cut them: projecting the documented 1977 price forward to 1989, headline misses by 3.4% and Food by 5.9%. Nearly double the error, from the series we assumed was an upgrade. The explanation is that souvlaki was a price-controlled item then, so its price did not follow the household basket. It did not ship, and the reason is published. No figure in either article is written by hand, not even the tax thresholds: they are read from the scales themselves. A third thing did not happen at all. We were looking for an input-cost index to cross-check the eleven empty years, from the retail prices in the bulletins. The table carries no pork and no beef in any issue from 1985 to 1997, only poultry. A gyro cost index without pork would look like evidence without being any. No price and no index changed. Every year now shows how its number is produced Every year has its own page, fifty-one in total. Until yesterday they showed three figures, the sources and the visitor reports. From today they also show how the number is produced. The funny part is that the data already existed in full. The code was building, for every year, a complete record with each figure, the formula that produces it and its source. And then serving it only as raw JSON behind a copy button. So it was read by whoever already knew it was there, which is almost nobody. Now it is a page. The wage shows gross per payment, the contribution rate, net per payment with its formula beside it, how many payments the year has, and net on a 12-month basis with its own formula. Those two bases are exactly what had been confused and produced a negative contribution rate in the previous release. Now both are visible, so they cannot be confused silently again. The price shows whether it is documented or derived, the uncertainty range, the method behind it, and when it is a regulated price it says so, because a price order is a cap rather than something anyone paid. The component does no arithmetic of its own, and a check enforces that. If it did, it would be a second source of truth beside the first, which means two places that can disagree. And a bug turned up, in the simplest way possible: by looking at the screen. The uncertainty percentage was being multiplied by a hundred again, so 2011 printed plus-minus 1,500 percent next to a range of 1.70 to 2.30 euro, which is obviously fifteen. The interesting part is why the check I had already written missed it. Because it looked at the data, where the percentage was always right. The bug was in the rendering, in how the number is drawn, and no data check can see there. The guard went in at the right level. No price and no index changed. AI assistants can now ask Gyronomics directly, instead of reading stale copies Gyronomics has a problem its own success created. Eight sites republish the index, usually frozen at the version of the day they wrote their article. So a search for the price of souvlaki in 1985 now returns our own figures, wrong. And because models read what they find in searches, the error multiplies. From today there is another route. An MCP server, a program that hands the data as tools to any AI assistant. Instead of reading an article from 2025, the model asks directly and gets the current version with its source. But the important part is not freshness, it is honesty. Every answer carries the year's documentation grade, and when the year sits in a gap it says so explicitly. Ask about 1985 and you do not get a bare number: you get the number together with the fact that it is grade D, that no primary price exists, and a link to the gaps page. The same is written into the tool description, which is the only text a model is guaranteed to read before calling. The server carries no copy of the data, it queries the public API. Carrying it would make it one more source that goes stale, which is exactly what it sets out to solve. To work, it needed a new endpoint serving the full record for one year. And bringing that into the light exposed a real bug that had been hiding for months. The wage block printed its formula alongside, but the formula did not produce the number it printed: it mixed the per-payment contract wage with the annualised one. The contribution rate came from dividing the two, so it was wrong in forty-six of the fifty-one years and came out negative for 2026: minus half a point instead of fourteen. It was hidden because it was served only as raw JSON behind a copy button that probably nobody ever pressed. The moment it became a public endpoint it was obvious. It is fixed, and a check now runs every formula on every year to see whether it really produces the figure beside it. A missing flag was added to the open data too: which years have a modelled tax. The site's table said so, the file you downloaded did not. Two more bugs turned up in the server itself, and only because we tested it by sending messages from the command line rather than wiring it to a real client. It closed before it could answer, and it could answer out of order. No price and no index changed. The third way to measure the same fall, and why it comes out worst The site showed two answers to the same question. It had a third one computed, and nobody saw it. The first is period gyros: how many of what they sold then the wage of the time could buy. The second is classic equivalents: how many of today's wraps, so we compare like with like. The third asks something neither of them catches: how many of exactly the ones you ate, with no fries inside and the portion the 1977 price order specified. It is the strictest of the three, because it holds both composition and size fixed. And it gives the harshest figure: 887 at the 1983 peak, 262 today. A fall of seventy percent. It went in as a new tab in the deep layers, next to VAT, portion size, tax and the classic-equivalent. But we did not put it in bare, and this is the part that needs care. This index rests on two figures nobody measured: how much of the price pays for the fries that went inside, and how much pays for the bigger meat portion. They are reasonable estimates, not measurements. An index with immovable assumptions presents itself as a measurement when it is not, and that is exactly the mistake we already paid for with income tax. So two sliders went in, inside the tab itself so each assumption sits next to the number it drives. Move one and watch what happens. Zero out the fries and 2026 goes from 262 to 236. And the moment you touch anything, the page tells you that you are no longer looking at the published figures. A check enforces the most important part: the column must follow the sliders. Had it called the fixed function, you would move the bars and the number would sit still, which is worse than having no sliders at all. Two more fixes went into checks of my own. One expected to find two input elements when the two bars are produced by a single loop, so it failed on correct code. The other merely asked that the word controlling the warning exist somewhere in the file: deleting the condition from the render left the word alive in its declaration, so the check passed while the warning never appeared. No price and no published index changed. The third lens replaces none of them, it is added beside them. Our gaps got a page, along with the history of failures Every dataset has holes. Most do not show them. From today ours have a page of their own. There are two gaps. Eleven consecutive years for which not a single primary gyro price exists, and twelve years for which we do not know the tax scale. The page says which they are, why they are missing, and most importantly exactly which document closes each one. Not "any source", but a prefectural market order, a Gazette issue B of the period, a dated shop price list. The part I think is most useful is the history of failures. Six entries on what has already been searched and what it gave. The statistical office's digital library, where the retail price table has bread, meat and oil but no prepared food. The tax circular archive, effectively empty before 1988. The Gazette archive, which searches by number rather than content, so it does not help unless you already know the decision's number. And a forum post giving a 1993 price that does not even say whether it means a skewer or a wrap, which are different products. There is one success too, because a page with six failures reads as giving up. Ministerial decisions of the period are almost untraceable, unless some law ratified them and printed them in full in its annex. That trick closed four tax years, and it doubles as the instruction for whoever searches next. The page also names eight sites that do not count as a source. They republish our own index, often frozen at an old release, so a search for a historical price returns them and they arrive in good faith as evidence. A circular reference is not a second source. One thing occupied us while building it. A page that advertises gaps is the worst page to let go stale. If someone sends a price for 1985 tomorrow and the page keeps asking for help with it, we are asking for help with a problem we solved. So no year is written by hand: everything is computed from the data itself, and a check forbids hard-coding a year range into the descriptions. No price and no index changed. Not one new data point was added. It simply gathers in one place what we already knew we did not know.

  64. Correctionv2026.09-diatrofi

    Corrections

    • We set out to improve the deflator and it turned out worse
    • Four more tax years, from two decisions that survived by luck
    • The drachma-era tax scales were found
    • The minimum wage was already paying tax in 2011
    • The tax read zero because the model was reading the wrong scale
    Read the full entry

    We set out to improve the deflator and it turned out worse Someone could reasonably ask: why are the prices of the early decades computed with the general price index rather than with the CPI's Food group? A gyro is food. We asked it too, and set out to fix it. The obstacle was that the Food series for those years does not exist in any database. It exists in print, in the Monthly Statistical Bulletins the statistical office published every month. The ELSTAT digital library has them scanned back to 1929. We downloaded twelve issues, found the price index table in each, and read the two columns we needed. Twenty-two years, 1977 to 1998, with no gaps. And then we did the thing you are supposed to do before changing anything: we tested it. We have two documented gyro prices with no relationship to each other, a 1977 price order and a 1989 one. Take the first and compound it year by year up to the second, and you can see how well each weighting works. The general index lands with a 3.4% error. Food lands at 5.9%. Nearly double. There is a reason that explains it. In those years souvlaki was price-controlled. The price was not set by the market, it was set by the state with a formula tied to the wholesale price of frozen beef. Such a price does not follow the household basket, which in the same years was being thrown around by fresh produce. In 1981 Food rose 30.1% while the general index rose 24.5%. Had we made the change, twenty years would have moved, by as much as 29 gyros, and the best year of the series would have shifted from 1983 to 1988. We would have changed a headline on worse data. So the series goes in, but it is not used. The test that rejected it goes in with it, so that if the data ever changes the decision gets made again with numbers rather than intuition. And there was a bonus. Each issue prints the general index next to Food, so reading one column verified the other. The general index the site uses was confirmed against the source for twenty years, 1978 to 1998, to the first decimal. Three years do not agree, because the bulletins print the vintage from before a later revision. Two wordings that were wrong were corrected too. We used to say no catering index exists "before January 1999". That holds for today's archives, not for the printed bulletins, which give it from 1995. The correct statement, which we checked page by page, is that a catering group did not exist at all before 1994: meals out sat inside Food. And we used to say the first two decades work "with the general index plus a premium", when in fact they work by interpolation between the three documented prices. No price, wage or index changed in this release. Four more tax years, from two decisions that survived by luck Yesterday we wrote that the work continues in the Gazette. It did, and it closed four more years: 1988, 1989, 1990 and 1991. Coverage goes from 35 to 39 of the 51 years, and what remains unknown narrows to 1976 through 1987. The obstacle was not missing numbers, it was that the system worked the other way round. Today there is a tax-free threshold: a first slice of income is not taxed at all. Back then there was no such thing. The scale began at 18% on the first drachma, and in place of a threshold there were "tax-free amounts" subtracted from the tax itself. You worked out the tax on your income, you worked out the tax on your tax-free amounts, and you paid the difference. If it came out negative, you got nothing back. The law says exactly that, and the code follows it. The numbers were found in two ministerial decisions of 26 January 1990 that would normally be untraceable. They survived because they were ratified by a law, so they were printed in full in its annex. There sit each year's personal tax-free amount, the special employee allowance and the scale, amount by amount. Here too there is something that gives confidence. Each year's amounts are the previous year's multiplied by inflation and rounded to the thousand. 300,000 times 1.141 gives 342,300 and is printed as 342,000. 800,000 times 1.141 gives 912,800 and is printed as 913,000. Three separate documents that lock together within a thousand drachmas. The finding: in 1990 the minimum wage paid income tax. 2,110 drachmas a year, that is 6.19 euro, costing one gyro a month. A small amount, but it is the first taxed year in the whole series. Until yesterday the site said the first was 1993. And a rule falls out that we were not looking for. The minimum wage got two tax-free amounts: its personal one, and an additional one equal to half its income. So the sum covered the whole income for as long as income stayed below twice the personal amount. That is why 1990 paid and 1991 did not: in 1990 income was 800,095 drachmas against a threshold of 780,000, and in 1991 it was 910,907 against 940,000. The wage rose, but the threshold rose faster. What we still do not know about 1990: the scale we use is the provisional one, the scale tax was actually withheld on during the year. The final one was not found. It does not change the outcome, since reaching zero would need inflation of 17% rather than 14%, but we say so. And what is left: the years 1976 through 1987. They need the same articles of the law as they stood before 1988, along with the annual decisions. The two we found survived by luck, because some law ratified them. For the earlier years no such law was located. The drachma-era tax scales were found Yesterday we were left with a gap: for the years before 2000 we did not know whether the minimum wage paid income tax, so the table read "not modelled". We went to close it. The drachma-era tax scales are not compiled anywhere. They were found inside the circulars the Ministry of Finance sent to accountants every December, so they would know what to withhold the following year. From those came the scales for 1992 to 2001. Coverage goes from 27 to 35 of the 51 years. One thing gives confidence. The scale the 1997 circular prints for the following year is exactly the 1992 scale multiplied by 1.055, across all five limits, to the drachma, with no rounding. Two documents six years apart that lock together perfectly. It is not a coincidence, it is the same scale indexed for inflation, and it means we read both correctly. The finding: the minimum wage paid tax in the drachma years too, in six of them. 1993, and 1995 through 1999. The amounts are small, seven to fifty-six euro a year, costing one to five gyros a month. Small, but not zero, and the site was calling them zero. Putting it all in order produces something we did not expect: the minimum wage drifts in and out of income tax four times in thirty-five years. It pays in the late 1990s, stops in 2000 when the threshold nearly doubles, starts again in 2011 when the threshold is halved, stops again from 2013 when it is replaced by a credit, and starts again in 2023. What remains unknown: the years 1976 to 1991. Here the reason is not that we failed to find the numbers. The system was a different one entirely. There was no zero-rate bracket at all: the scale began at 18% on the first drachma, and in place of a threshold there were amounts deducted from the tax itself, plus a special allowance for employees. Computing that period needs, year by year, both the scale and those amounts. The circular archive is almost empty before 1988: 1976 has a single entry. The work continues in the Gazette. The minimum wage was already paying tax in 2011 Yesterday we wrote that the "After income tax" table showed a fake zero for the old years, because the model was applying the 2010 tax scale to every earlier year. So we went to find the real scales. They were found for 2000 to 2026, from the codified income tax code. And something came out that we did not expect. The site said the minimum wage started paying income tax in 2023. It was already paying in 2011. That year the tax-free threshold fell by more than half, while the minimum wage had not yet been cut. The result: 370 euro of tax a year, and the index falls from 414 to 397 gyros a month. Seventeen gyros, more than double today's burden. You can see it clearly by putting 2010 and 2011 side by side. The wage is exactly the same, 724.77 euro. The only difference between them is the tax. We added 2011 to the table, because without it the finding would stay hidden. A sentence the site repeated on five pages collapsed with it: that tax was zero in 47 of the 51 years. That number did not come from a measurement. It had been produced by the broken model itself, which necessarily returned zero. The copy was using the bug as its evidence. The figures are now computed from the data, and a check forbids the old sentence from coming back. What we still do not know: the years 1976 to 1999, twenty-four of them. The scales for that period are not online and need Government Gazette work, as the collective agreements did. Until then the table reads "not modelled", not zero. The tax read zero because the model was reading the wrong scale The data page has an "After income tax" tab, showing how many gyros the wage buys once income tax is also taken out. For every year before 2023 it showed zero tax. That sounds plausible, the minimum wage was always low, but the zero was not the result of a measurement. The model was applying the 2010 tax scale to every earlier year, that is, comparing a 1990 annual income against a tax-free threshold five times larger than that entire income. With that comparison the answer is always zero. The table now reads "not modelled" for the years whose scale we do not know, instead of a zero that reads like a fact. The tax scales from 1976 to 2009 join the list of archives that need finding, next to the 1978-1988 gyro prices that are also missing. Second, and related: the site's technical text said the index is computed on the wage after tax. It is not, and that is a deliberate choice. The error appeared in four places, one of them the index formula itself. All four were corrected. Third, the most practical part. Until 2022 the tax on the minimum wage really was zero, so it made no difference. Since 2023 it does: this year the tax is about 342 euro and costs seven gyros a month. The headline now shows both numbers, 215 and 208 after tax, because nobody should read the first one and think that is what they can spend. Once the old scales are found, the index will properly become an after-tax one. It is the right measure for something called purchasing power; there simply is not enough data today to support it across the whole series.

  65. Datav2026.09-catering-class

    The index we were using was also measuring hotels

    Read the full entry

    To fill the years that have no documented price of their own, the model uses the official catering price index. The index we had been using is called "Restaurants and hotels", and the second half of that name is the problem: it also measures hotel rooms, which swing with tourism and have nothing to do with a souvlaki shop. In 2022 that index showed a rise of 8.7%, while the sub-index covering only restaurants and cafes showed 4.7%. Half of what we were counting as food inflation was overnight stays. The index has been switched to the narrower one, the one that literally covers the shops where you buy a gyro. The change moves ten years, seven of them by a cent or less. The three that matter are 2018, 2019 and 2022, which become five cents cheaper. 2026 does not change at all: 4.30 euro and 215 gyros, as before. There is an uncomfortable thing to say here: the correction makes the site's case stronger. The hypothetical scenario "if the gyro had followed official catering inflation" now shows a wider gap than before. When a change suits you, you owe it to the reader to show it: the live Eurostat check now also downloads the old index and permanently states in how many years it differs and by how much, so anyone can judge for themselves. The second correction is in the text. The methodology page said the net wage is derived by deducting social contributions and income tax. Income tax is not deducted, and that is a deliberate choice explained in four other places on the site. So the page that exists to explain the method was contradicting the method. An outdated justification fell with it. The site said in six places that the minimum wage sits below the tax-free threshold, so deducting tax would be pointless. That held for 47 of the 51 years. Since 2023 it does not: today the minimum wage pays about 342 euro of tax a year, and deducting it drops the index from 215 to 208. The site now says so with numbers instead of skipping past it. Finally, the sensitivity table gained a column with each year's grams of gyro. It was showing "equivalence 114%" without saying that means 106 grams against 88, which became unreadable once visitors could change the reference year themselves. All three findings came from someone else's comment on LinkedIn. All three were right.

  66. Correctionv2026.09-base-year

    Corrections

    • Which gyro counts as today's? Now you pick
    • The current release's figures were pinned to 2026
    • Half the entries on this page were never shown
    • The AI assistant was answering in a different unit from the one the site publishes
    • The articles were dated as static while their figures changed silently
    • The FAQ published two different index values for the same year
    • The page that defines the classic wrap taught a different factor from the one the index uses
    • The page that teaches the method produced a different number from the one the site publishes
    Read the full entry

    Which gyro counts as today's? Now you pick The index rescales every year to today's gyro so that we compare like with like. That means a decision is hiding somewhere: which gyro exactly counts as today's. It is the 2026 one, at 88 grams of meat. That decision lived inside the code and appeared nowhere, even though it is the first thing anyone would challenge: that you picked the year that suits you. In the sensitivity section, where visitors could already move the model's other two assumptions, this one has now been added. Pick a year and the table recomputes in front of you. The answer, produced by the site rather than asserted by us, is that the choice changes the absolute numbers and almost nothing else: whichever modern year you pick, the drop from 2011 to today stays around 48%. The old years were not hidden, even though they do not hold up. Pick 1977 and the calculation hits a ceiling for 42 of the 51 years, at which point the number you see is produced by the ceiling rather than by the data. Instead of banning the option, a warning appears saying how many years were clipped. Along the way a long-standing bug surfaced. That same section had a column labelled "published index" which did not show the published index: the calculation had been written a second time, slightly differently, and diverged in eleven years. For 1976 the section said 262 while the rest of the site says 264. The column now reads straight from the same calculation as everywhere else. The same round fixed something anyone on a phone could see without knowing why: the main index page scrolled sideways. The culprit was a hidden table that exists purely for screen readers and is supposed to be one pixel wide. Tables, however, refuse to shrink below the width of their content, so the invisible table stretched the page to twice the screen width. It now sits inside a wrapper that clips it. It stays just as accessible, and the page no longer scrolls. The current release's figures were pinned to 2026 The data releases page is the one that tells anyone who downloaded a CSV or embedded the chart which figures changed since. The current release's figures were advertised as "read from the live series", but the row they were read from was looked up with the year 2026 written into the code. Once 2027 enters the series, the page, the public API and the response anyone gets when requesting an old version would all keep declaring the 2026 numbers as the headline figures - with no error and no sign. The same for the wage basis, which was written by hand even though it is a figure that has already changed once. Both now derive from the data. The field names stay as they are, because the public API reads them. Second: dates were printed raw, as "2026-09-01", thirty-two times inside Greek copy. Third: the page showed all twenty-five releases at once, with two hundred and thirty-three notes. It now shows the eight most recent, with a button for the rest. Fourth: twenty of the twenty-four releases moved no headline figure at all, and appeared without a difference table and without explanation - a reader could think information was missing. They now say so, and the detailed audit log explains why it has few rows for many releases. Finally, the page mentioned the changelog without linking to it, while the changelog links here. Half the entries on this page were never shown Every entry here is written in two languages. Nobody ever saw the English ones: there was no /en/changelog address - it returned an error - and the page never received the visitor's language, so it always fell back to Greek. Forty-eight English texts, written and maintained with every release, were dead code. The footer link was hard-coded to Greek too, while the link right next to it follows the language properly: an English visitor clicked "Changelog" and landed in Greek. Both languages now exist, with the language switcher working. Second: this was the only page on the site without the shared structure - no menu, no footer, no language switcher, no share image and no link to the data releases. Third: it showed all forty-eight entries at once, seventeen of them over a thousand characters, each in a single unbroken paragraph. It now shows the twelve most recent, with long texts collapsed, a filter per kind and a button for the rest. Fourth, and most misleading: the "Data" badge told the reader that figures had moved. Twenty-one entries carried it, while fourteen of the corresponding releases state explicitly that no price changed. There is now a separate "Correction" badge, and "Data" is kept for releases that really moved numbers. Finally, every recent entry shows which data release it belongs to, and links to it. The AI assistant was answering in a different unit from the one the site publishes The assistant advertises that it answers only from the Gyronomics dataset. It was answering from a different column: the dataset handed to the model carried the era index, that is how many wraps OF EACH ERA the wage bought, while the site publishes the classic-equivalent one. The two differ in fifty of the fifty-one years, and for 1983 the gap reaches 73%. The most awkward part: the first suggested question on the page itself is "compare 1995 with 2026", and the assistant answered 534 gyros for 1995 while every other page says 442. The rule defining the index also stated the shortened formula, without the rescaling. Second: prices were handed over rounded to two decimals, so 1976, 1977 and 1978 collapsed into a single value. Asked "how much did the gyro rise from 1976 to 1978", the model saw zero, while the real answer is plus 23%. Third: the model received a yes/no for whether a price is documented, while the site publishes grades from A to D; it could not tell an interpolation from a projection with no documentation at all, nor warn about it. It now receives both series under distinct names, prices at full precision, the uncertainty band and the grade, with an explicit instruction never to present a grade C or D year as documented fact. Fourth: the rule "never invent numbers" was verified by nothing - /ai was the only surface on the site without a consistency check. Every answer is now scanned, and if it cites a gyro count that does not exist in the series the reader sees a warning. Finally, visitors' questions were being logged without the page saying so anywhere; now it says so. The articles were dated as static while their figures changed silently The blog posts do not carry hand-written numbers: they compute them from the data series. That is the right design, because it means they never go stale. The problem was that nothing said so. The food-service CPI article is dated 27 August; on that day it read €4.07 and index 227, while today it reads €4.30 and 215, because four data releases happened in between. In the structured data search engines read, the modification date stayed equal to the publication date - declaring that nothing had changed. The modification date is now tied to the data release, and next to the publication date the page shows when the figures were updated and under which release. Second, and more serious for the reader: the articles quoted the era index instead of the published one. They said that in 1985 the wage bought 800 gyros a month, while the index the site publishes for that year is 487 - a 64% overstatement - and that 2002 was 410 while the rest of the site says 414. Third: the whole first phase of both articles rested on 1985, a year with no documented price at all; the anchor moved to 1998, the last documented year before the euro. Fourth: amounts printed with a dot inside Greek copy. Fifth: the minimum-wage article declared three different ranges at once - the title said 1976-2026, the intro said "forty-one years" and the first section said "1985-2001" - while the series starts in 1976 and holds 51 years. The FAQ published two different index values for the same year The first FAQ answer explains in detail how the 2026 index is derived and arrives at 215 gyros per month. A little further down, on the same page, the country comparison showed 193 for Greece - with a footnote saying the Greek figure comes from our own index. It did not. They were two hard-coded numbers, each wrong in a different way: the price was €4.10, a published figure from an older release matching no year in the series, and the wage was the net amount per payment rather than the 12-month annualised one, ignoring the two extra payments of the year - while the footnote itself claimed a 12-month conversion. The Greek row is now computed from the series. Note the consequence: with the correct number Greece moves ahead of Germany in the comparison. The other three rows are indicative estimates with no verified annualisation basis, so they are now explicitly marked as estimates and the footnote says that small differences between countries do not amount to a ranking. Second: the FAQ claimed, in two questions and two languages, that the era index and the classic index coincide from the mid-2000s. They do not: they differ in twenty-one of the twenty-two years after 2005, and in 2015 the gap is 267 against 314. Third: the historical-prices question still said "in 1989, when price control was lifted", while the methodology question two places above correctly says that year's market order does not abolish regulation. Fourth: the definition of the index said "wage divided by gyro price", without the rescaling. Fifth: visitor reports were again described as calibrating the factors and raising a year's confidence grade, and were listed as a data source next to the statistical office - the same claim already withdrawn from the limitations page. Sixth: the list of documented years omitted four of them, including 1998 - which the FAQ devotes a whole question to. Every figure on the page is now computed from the series instead of being written by hand, and each question got a stable link so it can be shared. The page that defines the classic wrap taught a different factor from the one the index uses The index rescales every older price to today's classic wrap: the 1977 wrap counts as half a present-day one, so its price is doubled. The page that explains what the classic is showed that factor nowhere. It showed a different one, which says today's wrap carries 22% more food than the 1977 one - implying the old wrap was 82 percent of today's, not 50. The two answer reverse questions and differ by 65%. The table now shows the classic equivalent and the rescaled price, which is the denominator of the index itself, and a new panel says plainly which of the two scenarios is published and which remains as a more conservative alternative reading. Second: the page contradicted itself. The first era card said price regulation ran 1976-1985 and the next one opened with "after price controls ended", while the glossary further down the same page correctly says 1976-1989 and that the market order of that year does not lift the controls. The "free prices 1986-1990" era never existed; its only real content, that the portion grows, belongs to the regulated years. Era boundaries now come from the data instead of being written by hand. Third: the findings below the table - which also appear on the index page and elsewhere - quoted numbers in a different unit: they said the wage buys 59% fewer gyros, from 527 down to 215, while the published index goes from 264 to 215, which is 19% fewer. And they named 1983 the best year at 867 gyros, while the home page says 500 for that same year - and 1983 has no documented price at all, it is a projection inside the regulated period. The best documented year is 1989. Fourth: the milestone table showed prices without saying how well documented each one is, while five of its nine rows are interpolated or estimated; every year now carries its grade. The page that teaches the method produced a different number from the one the site publishes The five steps of "how the index works" taught the formula "wage divided by gyro price". That is not the published index. Between the two sits the rescaling of every older price to today's classic wrap - without it, each year measures a different product. The shortened formula matched the published figure in exactly one of the fifty-one years: 2026, where the rescaling is one-to-one by definition. Everywhere else it gave a different number, and step four showed it plainly: it said the 2002 index was 410 wraps, while the rest of the site says 414. The rescaling is now an explicit step, step three divides by the rescaled price, and the figures in the steps are computed from the series instead of being written by hand. The same error sat in the glossary definition, which is also read on the home page and the classic-wrap page. Second: the rescaling step printed "a price of 0.03 EUR becomes 0.05 EUR (x2.01)" - a reader doing the multiplication got 0.06. The actual figures are 0.026 and 0.052 and they reconcile; rounding to two decimals was hiding them. Third: amounts printed with a dot inside Greek copy ("4.30 EUR"). Fourth: the "price control" entry still said the 1989 market order documents its lifting. It does not lift it - it replaces the fixed ceiling with a formula tied to the cost of meat, and was amended in 1992. It was the seventh and last place on the site still holding the pre-correction version.

  67. Newv2026.09-counterfactual

    The "if it had followed inflation" scenario never said since when

    Read the full entry

    The chart always had a switch answering the question "fine, but what if the gyro had simply followed official inflation?". The answer is striking: the wage would buy 612 gyros a month instead of 215. What the page never said was the more important half of the sentence: since when. The answer was "since 1998", written inside the code and nowhere else. And because picking the base year is the commonest trick in economic charts - choose a convenient year and the chart says whatever you want - not stating it at all is worse than choosing it. Now the reader chooses. Beside the switches there is a list of fifteen years, and the scenario is recomputed from whichever one you pick. From 1989 the difference is 618 gyros a month, from 1998 397, from 2011 167, from 2019 106. Two things were not hidden. First: only years with their own price from a source are offered - not ones computed between two others. 1983 would give the most spectacular number of all, but the 1983 price is an interpolation, and compounding an official index on top of guesswork produces something that looks like a measurement while it is not. Each year shows its documentation grade. Second: pick 2025 and the difference comes out near zero. We could have hidden that option and nobody would have noticed. It stays, because it says something true: over the last year the gyro price moved almost exactly in line with the official catering index. The divergence is not happening now - it accumulated over previous decades.

  68. Improvementv2026.09-hygiene

    Improvements

    • The footer icon weighed more than the rest of the site
    • Prices from the drachma years are now accepted
    Read the full entry

    The footer icon weighed more than the rest of the site Nothing in this round changes a figure. It is the pass over the whole app, asking what the visitor pays for without seeing it. The icon in every page's footer was an 816 by 816 pixel image weighing 561 kilobytes, displayed at 24 pixels. It downloaded in full, on every page, on every visit. It is now 4 kilobytes - the same icon, four hundred times lighter, and the whole site ships half a megabyte less. Second, the file that tells search engines what is allowed said two different things depending on who asked: it had a separate rule for twelve known bots and a general rule for everything else, and the standard says each bot reads ONLY its own. The ban on the admin pages therefore applied only to bots nobody had named. The data here is open, so there is now one rule and it says "everything is allowed" - the admin pages were protected by the database anyway, not by that file. Third, a public endpoint returned the raw error message of the service it calls behind the scenes; it now keeps that for the logs. Fourth, the form that rates the assistant's answers wrote to the database with no cap at all. Fifth, four tables did not tell screen readers which header belongs to which column, and one filter announced itself as a bare "combo box". Finally, 4,257 lines of code nobody used and 37 libraries no file imported were removed: less code means fewer places where something can quietly break. Prices from the drachma years are now accepted The price form offered years from 1976, but the database only accepted 1984 onwards. Anyone picking an older year - exactly the years for which people's memory is the most valuable source we have - was told "that year is not accepted" for a year the form itself had offered them. The database range now matches the series, accepting 1976 to 2030. Two protections that were missing entirely came with it: a cap on submissions per hour, so the public list cannot be filled from a single source, and rejection of identical reports sent twice by accident. The cap stores no network address: only a non-reversible fingerprint, which expires on its own.

  69. Datav2026.09-sources

    A 2019 price was counting the same vague claim twice

    Read the full entry

    The series carried a 2019 observation of "€2.00 at a souvlaki shop in Pangrati", sourced to a report that tracks that same shop year by year. We went back to the article: it gives no price for 2019. Its series starts in February 2020 at €2.50, and the "two euros" appears only as a loose phrase, "around 2 euros", for 2019-2020. That same loose phrase was already counted separately, correctly flagged as a rounded retrospective figure with a range. So one statement was entering twice, once disguised as a measurement of a specific shop - and it conflicted with a contemporaneous May 2019 report putting that same Pangrati shop at €3.00. The false measurement was removed. The 2019 price moves from €2.30 to €2.35 and that year's index from 308 to 302 classic wraps. No other year changes. Second: the 1977 Chania price order, on which the whole first decade rests, was checked against the original again. It has three price lines - meatball, gyro, pork skewer - and the figure we use is indeed the gyro line, not the cheapest item on the list. All three are now recorded. Third: two more sites that republish our index were added to the exclusion list, because a search for historical prices now returns our own figures - frozen at an old release, at that.

  70. Correctionv2026.08-limitations

    Corrections

    • The limitations page credited the index with a dependency it does not have
    • The whitepaper still said price regulation ended in 1985
    • A 1989 error we had already corrected was still alive in six places
    Read the full entry

    The limitations page credited the index with a dependency it does not have The limitation about visitor reports said they "only feed the model above a sample threshold". They never do. The module that owns them states the opposite outright, the prices page promises visitors that they do not change the official index, and the tool that shows what would happen if they were blended in is a simulation with an adjustable weight - not something that is applied. The limitations page was therefore crediting the index with a dependency on crowd data that does not exist, undermining its own independence for no reason. The copy now says plainly that they do not enter, and explains what the simulation actually is. Second: the description shown by search engines said price regulation held until 1985, while the body of the same page correctly says 1989 and devotes a whole paragraph to that year's market order. It was wrong in both languages, and it is the first thing anyone reads before opening the page. Third: the quality example spoke of a wrap costing four euros ten - a price that never existed in any year of the series. It was a published figure from an older release left behind in the copy, and it survived because this file was not scanned by the consistency check. It is now. Fourth: the list of years with a documented price omitted four of them, 1989 among them - while the limitation immediately above it rests entirely on that year. The whitepaper still said price regulation ended in 1985 The key-results table of the technical document marked 1985 as "end of price regulation, free price". Section 5 of the same text, however, reads "regulated era 1976-1989", taking the range from the data - the document contradicted itself. And the 1985 anchor had been withdrawn when the pre-2002 series was rebuilt, leaving a plain interpolation with the lowest confidence grade. It was replaced by 1989, which carries a documented price from a price-control order - without calling it a decontrol, because it was not. Second: the same document gave two different numbers for the same index. The section 3 table counted classic wraps, the section 5.1 table counted wraps of the era, both labelled "Index". 2019 appeared as 308 in one and 277 in the other. Third: in the sensitivity analysis the baseline row was computed through a different rounding path from the rows it was meant to be compared against, so the deltas were measured from the wrong origin. Fourth, and the most visible: eleven elements on the page asked for a background colour that does not exist in the theme. The six formula blocks, the table headers and the zebra striping were all transparent. Finally, confidence grades were added to the milestone years, the peak is now stated together with its grade and the documented alternative, and every number is written in the reader's own format. A 1989 error we had already corrected was still alive in six places When the primary text of price-control order 14/1989 was found, we corrected the claim that 1989 lifted price control on souvlaki: article 201 does not abolish regulation, it replaces the fixed ceiling with a cost-linked formula, and it was amended by another order in 1992. The correction had not reached everywhere. The old wording was still in six places: the explanatory text for the price-control era inside the data table in both languages, the source list, the whitepaper, the short release history, and two code comments. Even the Greek title of the source itself said "decontrol", while its own note two lines below explained in detail that gyro was not among the items freed. All are fixed. The figures do not change: 65 drachmas regulated, 70 to 80 free, factor 1.154 - only our description of the source was wrong. In the change register the old entries stay as written, because that is where we record what we believed at the time, and the next entry records the correction explicitly. Alongside this, the data page was rebuilt: the Dataset markup told search engines about a CSV file that was actually the HTML page, while the two real endpoints were invisible. Forty-five percent of the page was a copy of the releases page, with a link to it from inside. The main table was the only section without a visible heading. And the "Download data" button always exported the same scenario, whichever one you had selected in the table.

  71. Improvementv2026.08-consistency

    Improvements

    • The consistency check claimed 1250 checks while 494 ran
    • The contributions column in the calculations showed negative percentages
    • The price form could not be submitted the way it opened
    • The Greek Gyro Day page printed its dates in English
    • The calculator told someone on the minimum wage they were below the minimum wage
    • The homepage now answers its own question - and a wrong wage figure was corrected
    • The switch that rewrote every figure was hidden - and one scenario would not open at all
    • The index peak is no longer presented as a certainty
    Read the full entry

    The consistency check claimed 1250 checks while 494 ran The page that exists to prove the numbers agree had a problem with its own number. The count was not measured but computed from a hand-written formula that had already gone stale: three quarters of the figure was the number of strings being scanned, counted as if each were a check. Scanning a string that contains no number is not a check. Meanwhile the exports, where the most substantial work happens, were undercounted by a hundred and fifty-three. The counter now increments as each comparison runs, and the number you see is the number that ran. Second: the report showed a "Table" card with a permanent green zero, but no check ever emitted anything for the table. On this page a zero reads as "checked, clean" when it meant "never looked at". Real checks went in: the per-row provenance notes of the table are now verified to quote the same figures as the row. The first run found an error immediately: the price-control era note quoted an uplift of one point two, the old assumed value that had been replaced by the measured one - and it lived inside the check file itself. Third: no wage amount was ever checked, because the engine explicitly skipped anything outside the gyro price range. That is exactly where a real error had lived, copy stating the wrong 2026 wage. A wage check went in, and was extended at build time to the hard-coded copy inside components, which the engine cannot see from the browser. Finally, the cards now show how many checks ran and how many deviations were found, and the page states plainly what is covered and what is not. The contributions column in the calculations showed negative percentages On the page that exists precisely to show that the numbers add up, the second column of the main table stated that 2026 social contributions are minus 0.49 percent. For 2011 it said 2 percent when the rate is 16. Eighteen years showed a negative figure and forty-nine of fifty-one disagreed with the wage table further up the same page, where the same quantity appeared correctly. The cause was that the percentage was not read from the data but derived by comparing two quantities on different bases: the comparable monthly wage, which includes the fourteen-payment multiplier, against the gross per payment. From 1981 onward the ratio exceeded one and the result went negative. The column now shows the declared rate for the year, and the missing step was added: you can now see 920 euros gross, minus 13.87 percent in contributions, equals 792.40 per payment, times 1.1667 for the fourteen payments, equals 924.46 comparable per month. The whole chain reproduces by hand. Second: the methodology stated that a x1.2 uplift is applied during the price-control era, with +15 percent printed next to it - two figures that contradict each other. The real coefficient is 1.154, measured from the 1989 price-control order, and 1.20 is exactly the old assumption that measurement replaced: the methodology page was undoing the correction it documents. It now reads x1.154 (+15.4%). The same text goes into the methodology PDF that anyone citing us downloads. Alongside this, every number in the methodology is now written with a Greek comma instead of a dot. The price form could not be submitted the way it opened The form opened on the year 1976 with the drachma selected. The database, however, only accepted 1985 onward, so anyone who filled in a price and pressed submit without changing the year got an error - and it was the raw database text, in English. Nine of the years the menu offered were rejected outright. The range is now aligned so the menu shows exactly what the database accepts, and the error messages are written in both languages. The form opens on the current year in euros, and switches to drachmas by itself if you pick a year before 2002. Second: the page showed three different statistics for the same data. The per-year chips and the city table computed a plain average with no threshold, while the comparison layer below them used a median and required at least three reports. The result was that a single anonymous report appeared as an average - in the city table 23 of 24 cities had exactly one. The whole page now measures the same way, and where the sample is small we show the count instead of a figure that does not stand. Cities also match regardless of accents now: two spellings of Thessaloniki were counted as two different places. Third, the English and Greek "1 reports" was fixed. And finally, abuse protection went in: a cap on submissions per hour, rejection of identical reports, a hidden trap field for bots and a short pause after each submission. The Greek Gyro Day page printed its dates in English The hero read "21 February", the months were "J F M A M J J A S O N D" and every table row "22 January". The cause was a comparison that could never be true: the code checked whether the language was "el" while the value it held was "el-GR". The same mistake was found on the Gyro Index, where the historical milestones showed in English - "Accession to the EEC" instead of the Greek text - even though the Greek strings had always been there. All three places were fixed, and checks that scan the source now block it from coming back. Second: the chart left 85% of its width empty. Because the scale spanned a whole year while every Gyro Day falls in January or February, the bars were stubs on the left and ten of the twelve months labelled nothing. The scale now stops a month past the latest date and the differences are visible. Third: the note said the annual wage was "12 monthly wages". The calculation actually uses annual income across 14 payments. Anyone following the wording literally, multiplying their take-home by 12, landed on 2 March instead of 21 February - nine days out. Fourth: the page compared the 1976 wrap with today's as if they were the same product, so 1976 came out as 22 January instead of 12 February and the decline looked three times worse than it is. Finally, the 2030 outlook rested on three hand-written rates, with the "base" case assuming wage and price grow alike - the one thing that happened in no recent window. The scenarios now come from the series itself, and the outlook finally answers in a date, not only an index. The calculator told someone on the minimum wage they were below the minimum wage The field asks for your "net monthly wage". Someone on the minimum typed what they actually receive, 792.40 euros, and the page answered: index 184, gap versus the minimum minus 31. The cause was that the series 215 is measured on the 14-payment basis (924.46 euros) while the visitor was giving a contract monthly figure - two different bases compared as one. The page now carries the same wage-basis switch Reverse Gyronomics already had, with the conversion spelled out. Second: the Greek "1.500" was read as one and a half euros and produced an index of zero - the field now accepts all four notations. Third, and the most awkward: the sentence "your wage has the same purchasing power as year X" was stated unconditionally, even when the gap was 2.3 times. At 400 euros the page claimed you had the same purchasing power as 213 gyros. It now applies only within 5%, and otherwise says plainly "closest year" or that you are above or below every year in the series. In the Time Machine the label read "classic wraps" while the number was wraps of that era: 1976 showed 527 classic, at the same time as the homepage and the Gyro Index said 264 for that same year. Each unit now carries its own name, and a fourth card shows the conversion into present-day wraps. The "how much work a gyro costs" section now measures classic equivalents and starts at 1989, because the 40-hour week applies from 1984 and earlier the week was 45 hours. Finally, you can now share your own result with a link. The homepage now answers its own question - and a wrong wage figure was corrected The homepage headline asks "how high should the minimum wage be?" and the first screen contained no number at all: after the title came a birth-year card, then three controls. The answer appeared further down, without even a heading of its own. It now comes first, in one sentence: for the wage to buy as many gyros as it did in 2011, it would have to be 1,780 euros net - it is 924. The controls moved below it, together with four milestone-year buttons (1989, 2002, 2011, 2019). A trap was fixed too: entering your own target locked the year selector with no way to unlock it. More seriously, the wage-basis explanation was a revision out of date and stated the wrong amounts - that the 2026 wage is 1,078 euros on the 14-payment basis and 924 on the contract basis. The correct figures are 924.46 and 792.40. They are no longer written by hand; they are computed from the series. Also: the three purchasing-power stories rested on 1985 and 2010, two of the weakest years in the series - they moved to 1989, 2002 and 2019, which carry documented prices, and every claim now shows its confidence grade. The "what the wage bought" strip showed 527 gyros for 1976 while the tool just above said 264 for the same year: two different units with no label, now both count classic wraps. Finally, the English edition printed amounts in Greek format, so "1.780 €" read as one euro seventy-eight. The switch that rewrote every figure was hidden - and one scenario would not open at all Two things on the Gyro Index page were not working as they should. First: the "classic wraps / era wraps" choice rewrites every number on the page - the 1976 index goes from 264 to 527, the peak from 500 to 867 - yet it sat inside the chart toolbar, below the cards it was changing. It moved directly above them, so cause and effect are visible together. Second, and worse: the "catering CPI" scenario was drawn on the chart and listed in the legend, but had no button - there was no way to turn it on. It now opens, and shows something worth seeing: had the gyro followed the official catering price index instead of its actual path, the 2026 index would be 472 rather than 215. Alongside, the update note became a single line linking to the data releases instead of eight lines of methodology between the figures and the chart, and the legend now separates the three primary lines from the hypothetical scenarios. No change to the data. The index peak is no longer presented as a certainty We scored how solid each year of the series is and found something uncomfortable: the year of greatest purchasing power, 1983, is also the WEAKEST documented year in the whole series - a score of 12 out of 100. The years 1978-1988 carry no direct price observation at all; they are interpolated between the 1977 and 1989 price orders, with a +/-35% uncertainty band. We searched statistical bulletins, newspaper archives and market-order texts for evidence from that period and found none. So rather than present a precise figure that cannot carry its own weight, the "Peak" card now shows the range and the confidence grade: 500, range 371-770, grade D. And we add the useful part: counting ONLY documented years, the peak is 491 in 1989 - just 2% lower. In other words the finding "purchasing power peaked in the 1980s at around 500 wraps" holds; the specific year does not, and we say so.

  72. Datav2026.08-attica

    Data updates

    • Counter prices for 2025 - now the best-documented year in the series
    • 2019 gains a nationwide source - and what we did not find for 2003-2010
    • The 1989 law itself was found - and it corrects something we had written
    • One survey was filed under the wrong year - now fixed
    Read the full entry

    Counter prices for 2025 - now the best-documented year in the series A gap we had not noticed: every source we had for 2025 was either a delivery price or a single shop. None was a counter price from multiple points - which is exactly what the index measures. A May 2025 report was found with prices across eight areas of Attica: Dafni 3.80, Neos Kosmos 3.90-4.00, Ilioupoli 4.20-4.40, Gyzi 3.70-3.90, Kolonaki 3.90-4.40, Kifisia 4.10-4.30, Vouliagmeni 4.00-4.20, Piraeus 3.70-3.90 euros. The 2025 price moves from 4.22 to 4.16 euros and the year now rests on four sources with a confidence score of 98 out of 100 - the highest in the entire series from 1976 to today. The 2026 index is unchanged at 215. The report states no methodology and no number of shops per area, so it entered with a reduced weight - we note that because it matters. 2019 gains a nationwide source - and what we did not find for 2003-2010 Until now every source we had for 2019 was either from Athens or retrospective. An April 2019 report was found quoting regional catering trade associations across six areas outside Athens: Thessaloniki 2.40-2.80, Patras 2.30-2.50, Chania 2.30-2.50, Kozani 2.70-2.80, Volos 2.80-3.00, Corfu 2.40-2.80 euros. The 2019 price does not change - it stays at 2.30 - but the year now rests on four sources and its confidence score reaches 92 out of 100. One detail is worth stating: the 3 euro figure quoted for Athens was PROPOSED by the association, which is exactly why the Competition Commission opened an investigation into concerted practice at the time. It is not a price observed in the market, so we left it out. We also record a negative finding, because that is information too: for the years 2003 to 2010 we searched the press around the VAT rises, the "ten years of the euro" comparisons, the ESYE bulletins and the INKA tables, and found no usable price. Those eight years remain an interpolation between the 2002 and 2011 anchors, and we say so openly. The 1989 law itself was found - and it corrects something we had written The primary text has been located: Market Order 14/1989, article 201 "Souvlakia" (Gazette B 343, in force 11 May 1989). It forces us to correct our own wording. We had written that 1989 was when "price control on souvlaki was lifted". It was not: article 201 KEEPS the regulation and merely replaces the fixed ceiling with a formula tied to cost - the price is derived from the meat purchase price divided by fixed factors. The 1989 newspaper report we had found concerned soft drinks, souvlaki with a BURGER PATTY, patsas and offal dishes; gyro appeared only as a benchmark. Regulation in fact continued afterwards, amended in 1992. The figures in the series do NOT change - the 70-80 GRD level for a 1989 wrap still stands. What changes is the explanation, and for the better. The law brings three bonuses: it confirms the 37 g minimum weight at national level, sets a pita at no less than 65 g, and - most importantly - states plainly that its prices apply to Attica and Thessaloniki and that other regions may not exceed them. So the 1977 Chania order was by definition below the Athens level, and raising it is not our assumption: it is the direction the law dictates. One survey was filed under the wrong year - now fixed Pricefox runs its nationwide price survey every year with the same method across six cities. The edition of 25 October 2024 was recorded in our series as "December 2025", so 2025 rested on 2024 data and came out cheaper than it really was. The two editions are now separate and in their correct years, and the 4 December 2025 edition has been added as well. The gain is not only the correction: 2024 and 2025 each had a SINGLE source until now, one souvlaki shop in Pagrati, and now have two and three respectively - both move up a documentation grade. The prices: 2024 3.70 -> 3.71, 2025 4.01 -> 4.22, 2026 4.20 -> 4.30 EUR. The 2026 index goes from 220 to 215. Note that 2023 remains the only recent year with a single source: Pricefox ran no survey that year.

  73. New

    New "data releases" page and a permanent button for visitor prices

    Read the full entry

    The release history was buried halfway down the Data page with no URL of its own. It now has a page at /releases with the notes for every version and an automatic diff of the headline figures. It matters most to anyone who downloaded a CSV or embedded the chart: if they request an old version the API replies that it has been superseded, and now points them at a human page instead of raw JSON. Separately, the "visitor gyro prices" page was hidden inside a submenu; there is now a permanent button at the top of every page, and the number of submissions appears next to the title. Two links that led nowhere were also fixed: the pointer from visitor prices to the correction form and the reverse - the two forms live on different pages, but each linked to the other as if they were on the same one. Finally, the changelog dates were checked one by one and entries are now always sorted chronologically.

  74. Data

    Data updates

    • Two price-control orders rewrite the whole pre-2002 period
    • Contemporaneous sources for 2018-2026 and two biases corrected
    Read the full entry

    Two price-control orders rewrite the whole pre-2002 period A 1989 newspaper report surfaced describing the moment the Ministry of Commerce lifted price control on souvlaki. It quotes both the regulated price (65 GRD) and the first free-market price (70-80 GRD), and explicitly extends that to "the skewer or gyro souvlaki". The resulting check is the strongest we have ever had for the period: the 1977 Chania order carried forward on the general CPI ALONE predicts the 1989 order to within 3.4%, with no free parameters. Consequences: the price-control era now runs to 1989, the regulation uplift becomes measured (1.154) rather than assumed, and the old 1985 anchor of 60 GRD is withdrawn - it rested on recollections and would imply an 8% rise over four years in which inflation ran 85%. 1998 moves from 350 to 280 GRD with a wide 200-360 range. NOTE ON THE NUMBERS: the index peak moves from 2009 to 1983 (439 to 500 classic wraps) and the 2026 index goes from 225 to 220. Contemporaneous sources for 2018-2026 and two biases corrected Added a contemporaneous May 2019 report on four Athens souvlaki shops quoting both the old and the new price, which yields observations for 2018 and 2019; a March 2022 shop-owner account; and a nationwide August 2026 survey, thanks to which 2026 stops being a projection and becomes a documented year. Two biases were also corrected. First, the "SKAI 2022 survey" was in fact a Pricefox survey republished by five outlets - one source, not five confirmations. Second, the Athens price premium is not constant: the 2025-2026 nationwide surveys place Athens at the median with Thessaloniki and Heraklion above it, so the factor now decays from 1.08 to 1.00. Finally, a bug was fixed where the PDF export could show an index up to 2 points different from the page.

  75. Data

    Data updates

    • Classic-equivalent rescaling
    • Price-control era 1976-1985: explicit uplift and a wide band
    • Reference basket, Pricefox as a second source and three new layers
    • Price bias correction: from Pagrati to a national median
    • The series now starts in 1976
    Read the full entry

    Classic-equivalent rescaling The index now states its goal explicitly: how many classic present-day wraps (~88 g gyro, fries inside, tzatziki, tomato, onion) each year's salary could buy. Since the 1977 wrap held 37-40 g and no fries, a continuous equivalence factor was added: 0.70 x (year grams / 88) + 0.30 x (0.65 + 0.35 x fries adoption). A 1976 wrap therefore counts as ~0.50 of a classic wrap and the era's index roughly halves. New Classic-equivalent tab, a table badge and extra export columns. Price-control era 1976-1985: explicit uplift and a wide band The first years of the series were not free market prices. The 3/1977 price control (8.50 GRD, Chania) was a ceiling on a 37-40 g portion, so it is now rescaled to an estimated market price with an explicit 1.20 regulation factor (10.20 GRD, range 8.50-11 GRD). Across 1976-1985 the uncertainty band widens to plus or minus 35%, interpolated years drop to confidence D (experimental), and the years are flagged with a price-control badge in the table and a shaded zone on the chart. For long-run comparison the recommended measure is the index per 100 g of gyro, which neutralises the smaller portion of that era. Reference basket, Pricefox as a second source and three new layers The reference basket is now explicit: pork gyro wrap, counter price, national median. Every price observation is normalised to that basket with stated factors (delivery 1.08, Athens 1.08, mixed wrap basket 1.10) and multiple sources for a year are combined with a weighted geometric mean. The nationwide Pricefox survey (6 cities, 2022-2025) joins as a second independent source, so the last five years no longer rest on one shop. 2025 settles at EUR 3.92. Also added: an uncertainty range on the index itself, the ex-VAT catering price, an index per 100 g of gyro (portion size) and a disposable-income-after-tax scenario with 14 salaries. Price bias correction: from Pagrati to a national median The 2019-2025 prices came from a single shop in Pagrati, an expensive central Athens neighbourhood. We now keep the source's rate of change but rescale the price level to a national median by dividing by 1.08 (the Athens versus rest-of-Greece gap seen in visitor reports and local reporting). 2025 moves from EUR 4.70 to EUR 4.35. Single-source years are also downgraded to confidence "B" and their uncertainty band widens to plus or minus 15%. The series now starts in 1976 A major data update. Minimum wages for 1976-1985 now come from the primary texts of the national collective agreements and arbitration awards of the period (6,121 GRD in 1977, 10,240 GRD in 1980, 31,932 GRD in 1985 instead of the old 34,390 GRD estimate). A documented 1977 gyro price was added (8.50 GRD, Chania prefecture price order 3/1977) and 1978-1984 are interpolated between the documented 1977 and 1985 anchors. For years up to 1992, employee contributions use the IKA mix of that era (12.22%).

  76. New

    New "classic gyro wrap" page, findings card and glossary

    A new page shows when the product itself changed: a 37-40 g portion under price controls, fries moving inside the pita in the early 1990s and standard by 2000, a portion peak of about 110 g in 2015 and shrinkage since. A "what the data says" card now derives its conclusions automatically from the dataset instead of hand-written numbers, and a glossary explains CPI, price controls, shrinkflation, quality adjustment and the A-D confidence grades. Also fixed a stale reference to a 4.70 EUR price for 2025 that predated the level correction (correct value: 3.92 EUR national median).

  77. New

    New features

    • Live Eurostat data check
    • In 5 steps and per-section sharing
    • Articles and a mini widget
    • Light theme, life stories and Born year tool
    • Reverse Gyronomics
    • Gyro Day
    • Work time per gyro
    • Price quiz and quick navigation
    • Time Machine, 2030 Outlook and country comparison
    Read the full entry

    Live Eurostat data check The Data page now runs a live check that pulls official Eurostat HICP annual rates for Greece (general and food-service CPI) and compares them with the Gyronomics dataset. You can see at a glance whether anything differs or a new year is available, plus when the source was last updated. In 5 steps and per-section sharing A new /how-it-works page explains in five steps what the index measures, for first-time visitors. Each main tool (home, calculator, Gyro Day) now has its own share button with ready-made text. The data page shows when the dataset was last updated, and the orange accent is now more readable in light theme. Articles and a mini widget A new Articles section (/blog) with short reads: why we count gyros instead of euros, the minimum wage 1985-2026, and what food-service CPI is. There is also a new mini widget you can embed on other sites, showing the year's index as a compact counter. Light theme, life stories and Born year tool Light theme is now the default (dark still one click away). The home page gained short stories (1985, 2002, 2010), a 3-step explanation of the calculation and a Born year tool with ready-to-share text. Reverse Gyronomics The index flipped (now the home page): the index flipped. Pick a reference year or your own gyro target and see how high the net minimum wage would need to be each year to cover it. Gyro Day New section showing the date each year by which the salary has covered one gyro per day for the whole year, with a timeline for all years. Work time per gyro The work section now shows how many minutes and hours of work one gyro costs each year. Price quiz and quick navigation A Guess the Price game for historical gyro prices and a quick navigation bar between sections. Time Machine, 2030 Outlook and country comparison New sections: a time machine slider with historical context, 2030 scenarios and a purchasing power comparison with Germany, Spain and Portugal.

  78. Improvement

    Improvements

    • New structure: a page per tool
    • City prices with year selector

    New structure: a page per tool The home page now leads with Reverse Gyronomics (how high the wage should be). The classic Pita-Gyro Index moved to /gyro-index, and each tool got its own page: /calculator, /gyro-day, /data, /prices, /faq. A navigation bar is now on every page. City prices with year selector The city heatmap now shows the average reported price only for the year you pick, so comparisons make sense.

  79. Improvement

    Improvements

    • Move to gyronomics.gr
    • Accessibility and CSV export

    Move to gyronomics.gr All links, the sitemap and metadata now point to gyronomics.gr for better search ranking. Accessibility and CSV export Animated count-up stats, ARIA live regions, sortable table columns and a CSV export button for 1985-2026.

  80. New

    New features

    • Salary calculator, share card and FAQ
    • Index calculation modal and methodology

    Salary calculator, share card and FAQ Calculate how many gyros your own salary buys, share the result as an image and read answers to frequent questions. Index calculation modal and methodology New Index Calculation dialog with a year-by-year breakdown, tooltips everywhere and a Methodology section under the chart.

  81. Data

    Three price scenarios with real Eurostat data

    Simplification to three scenarios (actual price, general CPI, catering CPI) using official Eurostat HICP catering data since 1999.

  82. New

    Public price reports

    Visitors can now submit what they remember a gyro costing each year and everyone sees the annual averages.

  83. Data

    1985 data fix and consistency validation

    New 1985 anchor (60 GRD per gyro) and automatic consistency validation with 11 data integrity checks.

  84. New

    Gyronomics launch

    1985-2026 chart (net salary vs gyro price), data table with purchasing power index and Greek/English support.

Price and wage coverage: price collection of September 2026, catering CPI to August 2026, minimum wage in force since 1 April 2026. Dataset version 2026.10.10-monthly-bulletin, last updated 2026-10-10.