Back to index

Errata

Corrections and updates to the dataset, in reverse chronological order. We commit to publicly logging any error a user reports and we correct, including the date the error was originally published and the date of the fix. Errors aren't fatal. Hidden errors are.

  1. five published earnings figures do not appear in the sources cited for them

    We tried to give a score to the 38 cities that have no legal pay floor, by falling back on the estimated-earnings figure each one carries. To do that honestly we first had to establish what each figure measures, per engaged hour, or per hour actually worked. Those differ by roughly 2x, and the score is a ratio, so an unknown unit makes it undefined rather than merely imprecise.

    Thirty-one cities were checked against their own cited sources. Twenty-six turned out to state no time basis at all. The source simply never says. That is a finding, not a gap, and it is now recorded per city so the next round does not re-litigate it.

    Checking also surfaced something more serious. Five published figures are not supported by the source cited for them, and readers who used them should know:

    • Chicago, $18.50/hr. The cited page contains no Chicago figure and nothing near $18.50. Its actual DoorDash numbers are a median of $11.26/hr in trip pay, $11.63 gross, with the top 10% at $16.33/hr. The published figure is above every number on the page.
    • London, £14.02/hr. Traces to a NimbleFins estimate; that source is now dead (the domain redirects elsewhere) and its last capture reads £7, £12 per hour, not the £9, £15 our record claimed. £14.02 sits above the top of the range it was drawn from.
    • Boston, $17.95/hr. Appears nowhere in the cited source. It is the $15.00 Massachusetts minimum wage multiplied by 1.197, with no derivation stated anywhere. It is also exactly Washington DC's minimum wage, which suggests cross-contamination between rows.
    • Berlin, €13.36/hr. A back-conversion of an unsourced US-dollar figure: our own record says "$14.30 USD = €13.36 at EUR/USD ~1.07". There is no euro source.
    • Mumbai, ₹116.67/hr. Rests on a news video about two named couriers in Bengaluru. The cited source contains no Mumbai observation and no hourly rate.

    None of these five drives the ranking. The index has ranked the legal guarantee since Q3, and all five cities correctly show no pay floor. They were carried as reference data. They are now flagged in the dataset, and the sourcing failure is recorded against each.

    The outcome of the exercise: no city gained a score. Not because of a policy, but because every candidate figure failed on its own evidence, 26 with no stated unit, and the remainder either unsupported by their source or describing a covered minority rather than the typical courier. Sweden's three cities resolve cleanly to an all-hours basis, but the rate reaches about 452 people, roughly 6.5% of one platform's workforce, so scoring a city on it would assert in one row both that no floor reaches the typical courier and a score built on the number that does not reach them.

  2. 2026-07-27. The index now ranks the legal guarantee, not estimated earnings

    The Gig Index has been rebuilt around a different quantity, and readers who used earlier releases should understand why.

    What changed. Previous releases ranked cities on "gross hourly earnings". That column held at least four different quantities, statutory pay floors, measured earnings, collectively-agreed rates, and in several cities the local general minimum wage standing in for delivery pay. And ranked them against each other as though they were the same number. They were not. Roughly thirty cities carried figures with no primary source at all, several of which said so in their own source notes.

    Why we did not simply fix the earnings column. We tried, and could not. Every source that would have admitted a city to an earnings ranking failed independent verification: Seattle's per-hour figure excludes idle stretches of an hour or more from its denominator, so it is not the same measure as New York's; Denmark's collective agreement is genuine but the only employer bound by it closed in April 2026; Sweden's covers about 6.5% of one platform's workforce and is a commission backstop rather than earnings; Brazil's figure is excellent but national, with no city breakdown. Exactly one city on earth, New York, publishes a comparable measurement of what couriers earn per hour actually worked.

    What we rank instead. What a typical courier is legally guaranteed per hour worked. That is a legal fact: it can be established, cited and compared everywhere. Where a floor covers only "engaged time". The minutes between accepting and completing a delivery. We convert it using measured utilisation only: a city's own regulator measurement where one exists, and otherwise a band spanning every utilisation rate ever published in the sector (46.9% to 81.9%). Rankings use the lower edge, so every figure reads "guaranteed at least". We never assume a multiplier.

    Cities with no guarantee now rank at zero. In 36 of 48 researched cities, no pay floor reaches the typical courier. That is a finding, not missing data, and it is the single most important thing this index has to report.

    Two floors were rejected on coverage after review: Berlin's (German subcontracting has become the sector norm, so the statutory minimum no longer reaches the typical courier. And Fairwork documented Berlin couriers paid below it) and Mexico City's (employee status applies only in months where a courier's net income clears a threshold, which about 10% of registered platform workers did in January 2026).

    Consequences for anyone citing us. Scores and ranks from the 2026-Q2 release and earlier are not comparable with this one; they measured a different, and unsound, quantity. The archived Q2 file remains available and unchanged so past citations resolve, but we do not recommend using it.

    Update, same day: Sydney and Melbourne, initially left unranked, have been resolved. The Fair Work Commission's food-delivery minimum standards order (application MS2024/3) is still pending. No order has been made. So Australian couriers are guaranteed nothing per hour and both cities rank at zero. All 50 cities are now researched.

  3. Round J

    2026-Q3 snapshot; four classes of error corrected

    The index moved to its 2026-Q3 snapshot. This entry records four problems found in the published 2026-Q2 data during the changeover. All four had been live on the site. The 2026-Q2 file is preserved exactly as it was served, at /data/archive/cities-2026-Q2.json, so anyone who cited it can see what they cited.

    1. Derived figures had drifted from the numbers they summarise. Net hourly earnings, the four ratio metrics (meals per hour, hours for rent, pay vs minimum wage, pay vs median wage) and the four sub-scores that drive every rank on the site were computed by hand, outside the repository, and had gone out of sync with their own inputs. Specifically: 18 cities had a net hourly figure that did not match the formula published on the methodology page; the wage ratios were computed from gross earnings for 7 cities and from net earnings for 24, so those columns were not comparable across cities; roughly 19 cities had ratios that matched neither, left over from a previous round's inputs; and every sub-score was a percentile rank against a 41-city dataset that had since grown to 46, so all 46 cities were ranked against the wrong comparison set. 326 individual values were affected.

    There is now a single script that derives all of these from the sourced inputs, and the continuous-integration checks fail if the published file disagrees with a fresh derivation, so this class of error cannot recur silently. The methodology page has been corrected to state which ratios use net earnings and which use gross, and why. Its formula table previously described two of the four incorrectly.

    2. Exchange rates were four months stale. Rates were last set by hand in April 2026. By the Q3 cut the Argentine peso was off by 33%, the Colombian peso by 28%, the Indian rupee and Indonesian rupiah by about 13%, and the South African rand, Swedish krona, Australian dollar and euro by 5 to 10%. Because most non-US cities are sourced in local currency and the US-dollar figure is a conversion, this moved published dollar figures and ranks. Rates now come from a live mid-market feed and the vintage is recorded in the dataset.

    3. Every US city's median-wage citation was broken. The Bureau of Labor Statistics retired its static per-metro pages; the URLs we cited now redirect to a generic index carrying no wage figure, and the archive snapshots we had on file had captured that index rather than the metro page. This had been silently broken since at least 30 April 2026. The citations now point at the BLS metropolitan-area data file, which is static and archivable, and the figures have been refreshed to the May 2025 release.

    The largest single correction is New York: the published median wage moves from $36.50 to $29.53 an hour. The old figure could not be reconciled with any number on the cited BLS page for any release. Not the median, the mean, or any percentile. So this is a correction of provenance, not a change in the New York labour market. Readers should also note that the BLS metro area covers the whole New York, Newark, Jersey City region, not New York City proper.

    4. Berlin has been demoted from HIGH to MEDIUM. The cited Lieferando courier page does not carry the hourly figure we published, and the live page now refuses automated requests, so the citation cannot be verified. Germany's statutory minimum wage rose to €13.90 an hour on 1 January 2026, which is above the figure we were publishing as courier pay, on its own a strong sign the value was stale. Our own rule is that a HIGH label requires the published value to match a live-verified primary source, so the label comes down until it does. The original verification record is kept, with the reasoning, on the verification page.

    Three cities (Miami, Mexico City, Washington DC) were also displaying a source label naming a salary aggregator, left over from an earlier round in which their underlying citation had been moved to a government source. The labels now describe the source actually cited.

    Known limitation of this snapshot: cost data is one quarter behind. The Numbeo cost-of-living inputs (meal, rent, fuel, mobile data) were not refreshed for Q3, Numbeo rate-limited us partway through the round and did not release before the cut. Those values are carried forward unchanged from Q2, with Numbeo last-update dates of February to April 2026. Numbeo publishes rolling twelve-month averages so the drift is smaller than a quarter of calendar time implies, but "hours of work for rent" and "meals per hour" are computed against these costs, so read those two figures as Q2 costs against Q3 earnings. Nothing was estimated to fill the gap. This will be corrected in the next refresh.

    Separately, a number of minimum wages that had stepped up on 1 July 2026. And several that had stepped earlier in the year and been missed, are now current. Those are routine quarterly updates and are itemised in the internal change log rather than here.

  4. Round F+

    San Diego verified to HIGH; Numbeo refresh

    San Diego was promoted from MEDIUM to HIGH after live-verifying the City of San Diego's primary-source PDF announcing the $17.75/hr minimum wage effective January 1, 2026. The verified-HIGH set now consists of eight cities (New York, Los Angeles, San Francisco, San Diego, Seattle, Berlin, Paris, and São Paulo), with San Diego using the same California Proposition 22 derivation methodology applied to Los Angeles and San Francisco: the local city minimum wage of $17.75 multiplied by 120% per the Prop 22 statute yields $21.30 per hour as the engaged-time floor. The published value of $21.30 per hour is unchanged from when San Diego was added at MEDIUM in Round F; the change is solely in confidence label and verification status, reflecting that the underlying $17.75 city minimum wage figure has now been confirmed against the sandiego.gov primary source. The same caveats apply as for Los Angeles and San Francisco: this is the legal engaged-time floor during active deliveries, not actual full-shift earnings, and UC Berkeley Labor Center research has found California delivery drivers' actual median earnings to be $4.98 to $11.43 per hour after expenses when wait time is included. We document this nuance in San Diego's verification-log entry as we do for the other Prop 22 cities.

    The cost-of-living values for the six new US cities added in Round F (Austin, Denver, Minneapolis, Portland, San Diego, Philadelphia) have been refreshed from live Numbeo data during this session. The previous values were best-effort estimates flagged as pending Numbeo fetch via the numbeo_last_update field reading "estimated 2026-04 (pending live Numbeo fetch)". That flag is now removed for all six cities; numbeo_last_update fields now show the actual most-recent update date reported on each Numbeo page (mostly March or April 2026), and numbeo_contributors and numbeo_entries fields reflect Numbeo's reported counts. The site rendering of these six cities will now show real cost-of-living numbers rather than placeholder estimates.

  5. Round F

    Six new US cities added at MEDIUM confidence

    Six new US metropolitan areas were added to the dataset: Austin (Texas), Denver (Colorado), Minneapolis (Minnesota), Portland (Oregon), San Diego (California), and Philadelphia (Pennsylvania). All six are launched at MEDIUM confidence and not yet promoted to HIGH. Each has a tier-1 government source for the local minimum wage figure (state Department of Labor, city ordinance, or BLS OES metro page) and a BLS OES Occupational Employment Statistics page for the median wage figure. Earnings figures for these new cities are market-median estimates calibrated for local wage floors and labor-market conditions; they have not been verified against a tier-1 or tier-2 source for gig delivery hourly earnings specifically. Where it exists (San Diego), the same California Proposition 22 mechanism applied to Los Angeles and San Francisco was used to derive the engaged-time floor: $17.75 city minimum wage × 1.20 = $21.30 per hour engaged. San Diego is held at MEDIUM rather than HIGH only because the san diego.gov city minimum wage URL has not yet been live-verified to confirm the $17.75 current rate; the math is structurally the same as Los Angeles and San Francisco.

    The cost-of-living values for all six new cities (rent, meal, fuel, data, beer, movie) are best-effort estimates that have not been pulled from a live Numbeo fetch. This is flagged in each city's source record via the numbeo_last_update field reading "estimated 2026-04 (pending live Numbeo fetch)". A maintenance pass will replace these with current Numbeo values.

    The dataset now contains 46 cities (40 previously, 6 new) with the confidence distribution: 7 HIGH, 33 MEDIUM, 6 LOW. The 7 HIGH cities span 3 continents and 4 countries (US, Germany, France, Brazil).

  6. Round F-cleanup

    Tokyo rationale clarification

    Tokyo's earnings_sample text mentioned "Glassdoor" as a cross-source, which was triggering our automated check on aggregator mentions. The reference was removed. Tokyo continues to display $9.30/hr based on Kureba (Japanese career data aggregator) January 2026 Tokyo Uber Eats survey at ¥1,351/hr median, with corroborations from foodpro-xtra.com and other Japanese delivery industry sources reporting ¥1,300-2,000/hr range across central and suburban Tokyo. Tokyo cannot be promoted to HIGH because Japan does not have a tier-1 government source that publishes platform delivery hourly rates separately; the Ministry of Health, Labour and Welfare does not break gig delivery out of general transport occupation codes.

  7. Round E

    Paris and São Paulo verified to HIGH using new government data

    Two cities were promoted to HIGH confidence after live-verifying their data against newly-published tier-1 government sources. One city (Madrid) had its rationale cleaned up but stays at MEDIUM.

    • Paris: promoted from MEDIUM to HIGH. The published value changed from $13.10/hr to $23.00/hr. The previous figure was a derived estimate from a mix of older sources; the new figure exactly matches the French government regulator ARPE's 2026 annual delivery platform report (published April 24, 2026, five days before our verification), which records Uber Eats, France's largest delivery platform with about 60,000 active drivers, at €21.50 per engaged-time hour in 2025. This is an increase of 4.7% year-over-year and the only platform in the report showing an increase (Deliveroo €25.70 down 2.4%, Stuart €22.70 down 5%, Delicity €35.40 down 0.7%). The figure is engaged-time gross (during active courses only) and does not include waiting time between orders or social charges; ARPE itself notes "this strongly overestimates actual net income." This is the same methodology we use for Los Angeles and San Francisco (Prop 22 engaged-time floors).
    • São Paulo: promoted from MEDIUM to HIGH. The published value changed from $3.00/hr to $2.41/hr. The previous figure overstated by about 25%; the new figure matches the Brazilian federal statistics agency IBGE's October 2025 PNAD Contínua release, which was IBGE's first official survey of platform workers in Brazil. Platform delivery workers earn R$2,340 per month gross on average while working 44.8 hours per week (5.5 hours more than the private-sector average of 39.3). The implied hourly rate is R$12.07 gross, which converts to $2.41 USD at recent exchange rates. The IBGE figure is the national average; São Paulo specifically may have somewhat higher rates due to higher cost of living and order density, but PNAD does not break out by city. We display the national average as the São Paulo data point and document this in our verification log.
    • Madrid: stays at MEDIUM. The earnings_sample text mentioning "Indeed ES Glovo" was triggering our automated check on aggregator mentions; this was removed. Genuine tier-2 context exists for Madrid (Spain's Ley Rider Law 12/2021 reclassifying riders as employees; Glovo hiring 15,000 previously-autónomo riders in late 2024; Just Eat employing directly; Fairwork Spain 2024 ratings) but no tier-1 source publishes a Madrid-specific delivery hourly rate. To promote Madrid to HIGH we would need either an employer disclosure from Glovo or Just Eat, an INE labour-force survey breakdown for delivery drivers, or a Fairwork update including hourly figures.

    The verified-HIGH set now consists of seven cities: New York, Los Angeles, San Francisco, Seattle, Berlin, Paris, and São Paulo.

  8. Round C

    Berlin promoted to HIGH; Sydney/Melbourne honesty fix

    Continued verification work on the dataset. Three substantive findings:

    • Berlin promoted from MEDIUM to HIGH. Lieferando. The dominant food-delivery employer in Germany (formerly Just Eat / Takeaway.com brand), publishes their courier base wage directly on their official recruitment page: €13.90/hr base wage for full-time directly-employed Scoober couriers, plus bonuses, paid vacation, sick pay, and full health/social insurance. This is a tier-1 source (employer-published, internally audited for German labor-law compliance). The published rate is corroborated by the Fairwork Germany 2025 third-round ratings, which place Lieferando at approximately €14.50/hr including delivery and distance bonuses. Our published value of $14.30 USD/hr (≈ €13.36 at recent exchange rates) is consistent with the Lieferando-published rate within rounding and exchange-rate noise. The earnings_url was updated from the Fairwork Germany PDF to the Lieferando courier page; the Fairwork PDF moved to a corroborating-source field.
    • Sydney and Melbourne earnings_sample rewritten to clarify status of the cited rate. Both cities had previously cited the Australian Fair Work Commission Minimum Standards Order at AUD $31.30 per hour engaged time, with text describing it as "effective nationally including Sydney." This was misleading. The Fair Work Commission's own regulated-workers page confirms, as of March 2026. That "No minimum standards orders have been made but there are applications before us." The food-delivery application (MS2024/3, jointly submitted by Uber Eats, DoorDash, and the Transport Workers Union in November 2025) had submissions due April 17, 2026 and a decision expected mid-2026. The AUD $31.30/hr rate would take effect July 1, 2026 only if the FWC ratifies the application. As of Q2 2026, no enforced minimum exists for Australian food delivery workers. Our published values for Sydney and Melbourne remain at $20.35 USD/hr (the proposed-floor scenario translated at AUD/USD 0.65), but the descriptions now make the prospective nature of this figure explicit. Both cities will be revisited after the FWC decision.
    • London rationale cleaned up; remains at MEDIUM. The previous earnings_sample mentioned "Indeed UK" as a cross-source, which triggers our new automated check on aggregator mentions. The reference was removed. London continues to have legitimate tier-2 sources (the GMB Union Voluntary Partnership Agreement with Deliveroo, which establishes a £12/hr engaged-time floor; the GMB-negotiated Uber Eats UK rate of £12.30/hr engaged-time bicycle courier rate effective April 2024; the Fairwork UK 2024 platform-conditions ratings), but those sources support the union-negotiated floor, not the £14/hr typical median earnings figure we publish. To promote London to HIGH we would need either a published tier-1/2 source for the £14/hr median (such as an Office for National Statistics labour-force survey breakdown for delivery drivers), or an update of the value to match the union floor.
    • San Francisco verification was double-checked. SF was promoted to HIGH in Round B by analogy to Los Angeles (same Proposition 22 mechanism). This round confirmed it directly: sf.gov Minimum Wage Ordinance page shows current SF minimum wage of $19.18/hr (rising to $19.61 on July 1, 2026, but $19.18 is the current Q2 rate). Multiplied by the Prop 22 1.2 factor, this gives $23.016/hr ≈ $23.02/hr, matching our published value exactly.

    The verified-HIGH set now consists of five cities: New York, Los Angeles, San Francisco, Seattle, and Berlin.

  9. Round B

    Four more cities demoted after live source verification

    A second-round verification pass live-fetched the cited primary source for each of the 8 cities still labeled HIGH after Round A. Four of them turned out to have the same class of issue we flagged in Round A. The earnings_url pointed to a respectable source (mass.gov, BLS, etc.), but the source description text revealed the cited value actually came from a self-reported aggregator (Glassdoor, Indeed, PayScale, ZipRecruiter) or was an admitted derived estimate, not from the linked source.

    • Boston demoted HIGH → LOW. The cited mass.gov URL covers the Massachusetts AG rideshare settlement (Uber/Lyft passenger transport). It does not apply to food delivery. The earnings_sample text admits "delivery uses Glassdoor blended (n=1,227)."
    • Toronto demoted HIGH → LOW. The cited URL was a third-party calculator site, not a primary source. The earnings_sample lists PayScale + Indeed Canada + ZipRecruiter Ontario as the underlying sources, all blocklisted aggregators.
    • Atlanta demoted HIGH → LOW. The cited BLS URL provides general light-truck-driver wages, not gig-delivery-specific data. The earnings_sample admits the figure comes from "Indeed Atlanta DoorDash sample (n=27, low confidence)" blended with a national Gridwise estimate, and the text itself says "treat as directional."
    • Chicago demoted HIGH → MEDIUM. The cited Gridwise blog provides national-median DoorDash pay; the Chicago-specific $18.50/hr value is a derived blend (Gridwise national + ShiftTracker peaks + Uber Eats blended), not directly observed for Chicago.

    The other four HIGH cities, New York, Los Angeles, San Francisco, Seattle, were live-verified against their cited government sources and remain HIGH.

    No published numerical values were changed for any of these cities. Only confidence labels and source-rationale text were updated.

    The validator (scripts/validate-data.mjs) was extended in this round to also catch this class of bug automatically: if a city claiming HIGH confidence has a blocklisted aggregator name (Glassdoor, Indeed, PayScale, ZipRecruiter, Salary.com) anywhere in its source description text, CI now blocks the merge. MEDIUM cities receive a warning rather than a hard block, since aggregators are sometimes legitimate cross-sources alongside a tier-1/2 primary at that confidence level.

  10. Round A

    Confidence ratings recalibrated for 32 cities

    A previous publication marked all 40 cities as HIGH confidence. An internal audit before the public launch revealed two issues:

    1. 29 cities were marked HIGH confidence without their source URLs being live-verified (urls_verified: false). Under the corrected (and now CI-enforced) definition of HIGH confidence, which requires a live-verified URL with a Wayback Machine archive on file. These cities have been demoted to MEDIUM until they pass live verification. The underlying source URLs and figures are unchanged; only the confidence label was inflated.

    2. 3 cities (Miami, Washington DC, Mexico City) had Glassdoor. A self-reported wage aggregator, listed as their primary earnings source. Glassdoor is not a primary source for hourly delivery worker wages and is now blocklisted by CI. These cities have been demoted to LOW confidence pending re-sourcing from a tier-1 (government mandate) or tier-2 (Fairwork country report, union agreement, large government wage survey) source.

    No published numerical values were changed. Only confidence labels and the methodology page were updated. The new data/data_log.md and CI checks (scripts/validate-data.mjs, scripts/snapshot-verified.mjs) make a recurrence of this class of error structurally impossible: a PR that marks a city HIGH without an archived, verified source will fail to merge.

Found an error in the data, the methodology, or anywhere on the site? Please report it on the feedback page. The internal change log lives at data/data_log.md in the repository; this page is the user-facing subset.