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
- 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.
- 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%.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
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.