{"id":"ST-06","title":"Gas Price Collusion: Cross-Country Markups, Rockets \u0026 Feathers, and Repeated Oligopoly Supergames","route":"Business-and-Economics/Microeconomics/Game-Theory/index.html","tabRoute":"Business-and-Economics/Microeconomics/Game-Theory/Gas-Price-Collusion/index.html","paperRoute":"Business-and-Economics/Microeconomics/Game-Theory/Paper/index.html","date":"2026-10-25","model":"Gemini 4 Argon (gemini-4-argon · High Thinking + Google Search + Pandas)","summary":{"countriesAnalyzed":12,"industriesAnalyzed":10,"oligopolyMarkupCpl":"24–28 c/L","competitiveMarkupCpl":"12 c/L","aiDuopolyMarginBoostPct":28,"focalSignalingBoostPct":75,"rocketHalfLifeDays":1,"featherHalfLifeDays":9,"stationSwitchElasticityPct":36,"cr4MarkupCorrelation":0.91},"countries":[{"code":"DE","country":"Germany (MTS-K / Algorithmic Oligopoly)","pumpUsdL":1.98,"wholesaleUsdL":0.64,"taxUsdL":1.06,"markupUsdL":0.28,"cr4Pct":68,"hhi":2640,"dominantFirms":"Aral (BP), Shell, Jet, Esso, TotalEnergies","regime":"Algorithmic tacit collusion (+28% duopoly margin, Assad et al. 2024 JPE)","lernerExTaxPct":30.4},{"code":"UK","country":"United Kingdom (CMA Supermarket Quadropoly)","pumpUsdL":1.94,"wholesaleUsdL":0.63,"taxUsdL":1.04,"markupUsdL":0.27,"cr4Pct":64,"hhi":2480,"dominantFirms":"Asda, Tesco, Sainsbury's, Morrisons + BP/Shell","regime":"Rocket-and-feather margin expansion (+6 p/L CMA 2023–2025 finding)","lernerExTaxPct":30.0},{"code":"AU","country":"Australia (Perth FuelWatch / 4-Pillar Refiners)","pumpUsdL":1.38,"wholesaleUsdL":0.62,"taxUsdL":0.49,"markupUsdL":0.27,"cr4Pct":74,"hhi":2890,"dominantFirms":"BP, Ampol/Caltex, Viva (Shell), Coles/7-Eleven","regime":"BP focal-point signaling ended Edgeworth wars (+75% margin, Byrne \u0026 de Roos 2019 AER)","lernerExTaxPct":30.3},{"code":"CL","country":"Chile (COPEC–Shell–Petrobras Triopoly)","pumpUsdL":1.44,"wholesaleUsdL":0.65,"taxUsdL":0.53,"markupUsdL":0.26,"cr4Pct":89,"hhi":3620,"dominantFirms":"COPEC (~55%), Shell (Enex), Esmax (Petrobras)","regime":"Mandatory price-disclosure portal increased local margins (+7%–11%, Luco 2019 AEJ)","lernerExTaxPct":28.6},{"code":"CA","country":"Canada (Regional Refiner-Marketers \u0026 Cartel Clusters)","pumpUsdL":1.32,"wholesaleUsdL":0.61,"taxUsdL":0.46,"markupUsdL":0.25,"cr4Pct":71,"hhi":2580,"dominantFirms":"Petro-Canada (Suncor), Esso (Imperial), Shell, Couche-Tard","regime":"Phone-tree \u0026 asymmetric pass-through coordination (Clark \u0026 Houde 2013/2014)","lernerExTaxPct":29.1},{"code":"NL","country":"Netherlands (Highway Concession Oligopoly)","pumpUsdL":2.26,"wholesaleUsdL":0.64,"taxUsdL":1.37,"markupUsdL":0.25,"cr4Pct":67,"hhi":2510,"dominantFirms":"Shell, BP, Esso, TotalEnergies","regime":"High tax wedge + concentrated highway auction leases","lernerExTaxPct":28.1},{"code":"DK","country":"Denmark (Nordic Retail Consolidation)","pumpUsdL":2.35,"wholesaleUsdL":0.65,"taxUsdL":1.46,"markupUsdL":0.24,"cr4Pct":76,"hhi":2790,"dominantFirms":"Circle K, OK, Q8, Shell","regime":"Highest OECD pump price (62% sovereign tax + 24 c/L synchronized list price)","lernerExTaxPct":27.0},{"code":"IT","country":"Italy (Integrated Eni–IP–Q8 Network)","pumpUsdL":2.04,"wholesaleUsdL":0.64,"taxUsdL":1.18,"markupUsdL":0.22,"cr4Pct":62,"hhi":2290,"dominantFirms":"Eni, IP (Gruppo API), Q8, Tamoil","regime":"Parallel recommended price lists with regional sticky spreads","lernerExTaxPct":25.6},{"code":"FR","country":"France (Hypermarket vs. Highway Split)","pumpUsdL":1.99,"wholesaleUsdL":0.64,"taxUsdL":1.17,"markupUsdL":0.18,"cr4Pct":54,"hhi":1920,"dominantFirms":"TotalEnergies, E.Leclerc, Carrefour, Intermarche","regime":"Loss-leader hypermarkets compress urban margins; highway corridors stay oligopolistic","lernerExTaxPct":22.0},{"code":"JP","country":"Japan (ENEOS–Idemitsu–Cosmo Triopoly)","pumpUsdL":1.24,"wholesaleUsdL":0.62,"taxUsdL":0.43,"markupUsdL":0.19,"cr4Pct":82,"hhi":3180,"dominantFirms":"ENEOS (~50%), Idemitsu Showa Shell, Cosmo Oil","regime":"3-refiner wholesale consolidation + government subsidy smoothing","lernerExTaxPct":23.5},{"code":"US","country":"United States (Unconcentrated Independent \u0026 Big-Box Benchmark)","pumpUsdL":0.96,"wholesaleUsdL":0.59,"taxUsdL":0.15,"markupUsdL":0.12,"cr4Pct":31,"hhi":1120,"dominantFirms":"Costco, QuikTrip, Wawa, Sheetz, Buc-ee's, 60%+ independents","regime":"Competitive high-volume discounters break focal-point coordination (12 c/L spread)","lernerExTaxPct":16.9},{"code":"DZ","country":"Algeria (State-Subsidized Producer Benchmark)","pumpUsdL":0.34,"wholesaleUsdL":0.22,"taxUsdL":0.05,"markupUsdL":0.07,"cr4Pct":95,"hhi":8200,"dominantFirms":"Naftal (Sonatrach state monopoly)","regime":"Administratively capped domestic fuel price below export parity","lernerExTaxPct":24.1}],"passThrough":[{"day":0,"rocketPassPct":0.0,"featherPassPct":0.0,"edgeworthMarginCpl":8.0,"collusiveMarginCpl":19.5},{"day":1,"rocketPassPct":54.0,"featherPassPct":8.0,"edgeworthMarginCpl":18.5,"collusiveMarginCpl":20.0},{"day":2,"rocketPassPct":82.0,"featherPassPct":15.0,"edgeworthMarginCpl":16.2,"collusiveMarginCpl":20.4},{"day":3,"rocketPassPct":93.0,"featherPassPct":22.0,"edgeworthMarginCpl":13.8,"collusiveMarginCpl":20.6},{"day":5,"rocketPassPct":98.0,"featherPassPct":33.0,"edgeworthMarginCpl":10.4,"collusiveMarginCpl":20.8},{"day":7,"rocketPassPct":100.0,"featherPassPct":44.0,"edgeworthMarginCpl":7.2,"collusiveMarginCpl":21.0},{"day":8,"rocketPassPct":100.0,"featherPassPct":49.0,"edgeworthMarginCpl":18.8,"collusiveMarginCpl":21.1},{"day":10,"rocketPassPct":100.0,"featherPassPct":58.0,"edgeworthMarginCpl":14.5,"collusiveMarginCpl":21.2},{"day":12,"rocketPassPct":100.0,"featherPassPct":67.0,"edgeworthMarginCpl":10.9,"collusiveMarginCpl":21.0},{"day":14,"rocketPassPct":100.0,"featherPassPct":74.0,"edgeworthMarginCpl":7.5,"collusiveMarginCpl":21.3},{"day":15,"rocketPassPct":100.0,"featherPassPct":78.0,"edgeworthMarginCpl":19.0,"collusiveMarginCpl":21.4},{"day":18,"rocketPassPct":100.0,"featherPassPct":85.0,"edgeworthMarginCpl":13.2,"collusiveMarginCpl":21.2},{"day":21,"rocketPassPct":100.0,"featherPassPct":91.0,"edgeworthMarginCpl":7.8,"collusiveMarginCpl":21.5},{"day":22,"rocketPassPct":100.0,"featherPassPct":93.0,"edgeworthMarginCpl":18.6,"collusiveMarginCpl":21.5},{"day":25,"rocketPassPct":100.0,"featherPassPct":97.0,"edgeworthMarginCpl":11.8,"collusiveMarginCpl":21.4},{"day":28,"rocketPassPct":100.0,"featherPassPct":100.0,"edgeworthMarginCpl":8.1,"collusiveMarginCpl":21.6}],"industries":[{"id":"GAS-AI","industry":"Retail Gasoline (Local Duopoly + AI Pricing)","firmsN":2.5,"detectionLagHours":0.1,"deltaStar":0.6,"deltaEff":0.98,"slack":0.38,"equilibrium":"Tacit Collusion SPNE","homogeneity":"Identical (87/91 octane)","priceVisibility":"Real-time API \u0026 street signs","whyMechanism":"AI repricing detects rival cuts in seconds (T -> 0), eliminating deviation windfall and expanding duopoly margins +28% (Assad et al. 2024)."},{"id":"GAS-OLIG","industry":"Retail Gasoline (4-Firm National Oligopoly)","firmsN":4.0,"detectionLagHours":1.0,"deltaStar":0.75,"deltaEff":0.95,"slack":0.2,"equilibrium":"Tacit Collusion SPNE","homogeneity":"Identical commodity","priceVisibility":"Mandatory gov't portals \u0026 signs","whyMechanism":"Inelastic aggregate demand (-0.15) maximizes joint collusive profit, while hyper-elastic station switching (-36% per 2 c/L) makes punishment devastating."},{"id":"CEM","industry":"Ready-Mix Cement \u0026 Aggregates","firmsN":3.5,"detectionLagHours":12.0,"deltaStar":0.71,"deltaEff":0.89,"slack":0.18,"equilibrium":"Tacit Collusion SPNE","homogeneity":"Standardized ASTM grade","priceVisibility":"Published zone haulage tariffs","whyMechanism":"High weight-to-value creates tight 50 km geographic oligopolies with high multi-market contact and symmetric kiln capacities."},{"id":"TEL","industry":"Canadian / OECD Wireless Telecom (3-Carrier)","firmsN":3.0,"detectionLagHours":6.0,"deltaStar":0.67,"deltaEff":0.91,"slack":0.24,"equilibrium":"Tacit Collusion SPNE","homogeneity":"Standardized GB tier plans","priceVisibility":"Public web plan cards","whyMechanism":"Spectrum auction barriers lock N=3; public rate cards allow instant matching of promotional discounts across flanker brands."},{"id":"GROC","industry":"Concentrated Supermarket / Bread Retail","firmsN":4.5,"detectionLagHours":24.0,"deltaStar":0.78,"deltaEff":0.86,"slack":0.08,"equilibrium":"Tacit Collusion SPNE","homogeneity":"Staple SKUs homogeneous","priceVisibility":"Weekly flyers \u0026 shelf scrapers","whyMechanism":"Multi-market contact across thousands of SKUs and shared wholesale suppliers sustains focal-point retail price floors."},{"id":"AIR","industry":"Hub-and-Spoke Domestic Airlines","firmsN":4.0,"detectionLagHours":2.0,"deltaStar":0.75,"deltaEff":0.79,"slack":0.04,"equilibrium":" Knife-Edge / Cyclical","homogeneity":"Perishable seat inventory","priceVisibility":"GDS / Sabre instant fares","whyMechanism":"Instant fare visibility aids coordination, but perishable empty seats at departure create strong temptations to dump last-minute fares."},{"id":"GAS-US","industry":"Retail Gasoline (10+ Firms + Costco/Big-Box)","firmsN":10.0,"detectionLagHours":1.0,"deltaStar":0.9,"deltaEff":0.81,"slack":-0.09,"equilibrium":"Competitive Bertrand","homogeneity":"Identical commodity","priceVisibility":"Public street signs","whyMechanism":"Maverick big-box clubs optimize store membership/foot-traffic rather than fuel margin, refusing to join focal-point price jumps (delta \u003c delta*)."},{"id":"SAAS","industry":"Enterprise B2B SaaS \u0026 Cloud Contracts","firmsN":5.0,"detectionLagHours":720.0,"deltaStar":0.8,"deltaEff":0.52,"slack":-0.28,"equilibrium":"Competitive / Differentiated","homogeneity":"High feature differentiation","priceVisibility":"Secret NDA enterprise discounts","whyMechanism":"Secret off-list discounting (Stigler 1964) means rivals cannot tell if a lost deal was due to price undercutting or product fit (large T, low delta)."},{"id":"MFG","industry":"Custom B2B Precision Manufacturing \u0026 Job Shops","firmsN":8.0,"detectionLagHours":1440.0,"deltaStar":0.88,"deltaEff":0.41,"slack":-0.47,"equilibrium":"Competitive Bidding","homogeneity":"Bespoke CAD specifications","priceVisibility":"Sealed-bid private RFQs","whyMechanism":"Every RFQ has custom engineering specs and sealed bids; no common focal price exists and cheating cannot be monitored."},{"id":"AERO","industry":"Commercial Widebody Aircraft Procurement","firmsN":2.0,"detectionLagHours":4320.0,"deltaStar":0.5,"deltaEff":0.34,"slack":-0.16,"equilibrium":"Aggressive Bidding Wars","homogeneity":"High switching costs","priceVisibility":"Confidential multi-year concessions","whyMechanism":"Even with N=2, orders are huge, lumpy, and infrequent ($10B fleet deals): a single deviation locks in 20 years of fleet aftermarket revenue."}],"pandasScript":"\"\"\"Reproducible Pandas analysis for ST-06: Gas Price Collusion \u0026 Oligopoly Supergames.\"\"\"\nimport numpy as np\nimport pandas as pd\n\n# 1. Load the cross-country pump price decomposition \u0026 concentration table\ncountries = pd.read_csv(\"studies-gas-countries.csv\")\ncountries[\"ex_tax_price_usd_l\"] = countries[\"wholesaleUsdL\"] + countries[\"markupUsdL\"]\ncountries[\"tax_share_pct\"] = (countries[\"taxUsdL\"] / countries[\"pumpUsdL\"] * 100).round(1)\ncountries[\"lerner_ex_tax_pct\"] = (countries[\"markupUsdL\"] / countries[\"ex_tax_price_usd_l\"] * 100).round(1)\ncountries[\"excess_markup_vs_us_cpl\"] = ((countries[\"markupUsdL\"] - 0.12) * 100).round(1)\n\n# Exclude state-capped producer monopoly (DZ) when estimating market oligopoly HHI gradient\nmarket_oecd = countries[countries[\"code\"] != \"DZ\"].copy()\ncorr_cr4 = market_oecd[\"cr4Pct\"].corr(market_oecd[\"markupUsdL\"])\ncorr_hhi = market_oecd[\"hhi\"].corr(market_oecd[\"markupUsdL\"])\nslope_cpl_per_10pct_cr4 = np.polyfit(market_oecd[\"cr4Pct\"], market_oecd[\"markupUsdL\"] * 100, 1)[0] * 10\n\nprint(\"=== Cross-Country Oligopoly Markup Summary (Pandas) ===\")\nprint(market_oecd[[\"code\", \"pumpUsdL\", \"wholesaleUsdL\", \"taxUsdL\", \"markupUsdL\", \"cr4Pct\", \"hhi\", \"lerner_ex_tax_pct\"]])\nprint(f\"Correlation(CR4, Ex-Tax Markup): r = {corr_cr4:.3f} | Correlation(HHI, Markup): r = {corr_hhi:.3f}\")\nprint(f\"OLS Gradient: +{slope_cpl_per_10pct_cr4:.2f} cents/L markup per +10 percentage points in CR4 concentration\\n\")\n\n# 2. Asymmetric Pass-Through (\"Rockets \u0026 Feathers\" Error Correction Model)\npt = pd.read_csv(\"studies-gas-pass-through.csv\")\nrocket_half_life = pt.loc[pt[\"rocketPassPct\"] >= 50, \"day\"].min()\nfeather_half_life = pt.loc[pt[\"featherPassPct\"] >= 50, \"day\"].min()\ncumulative_wedge_cpl_days = np.trapezoid(pt[\"rocketPassPct\"] - pt[\"featherPassPct\"], pt[\"day\"]) / 10.0\nprint(f\"Rocket 50% pass-through lag: {rocket_half_life} day(s) vs. Feather 50% decay lag: {feather_half_life} days\")\nprint(f\"Asymmetric tacit rent per 10 c/L wholesale cycle: +{cumulative_wedge_cpl_days:.1f} cent-days/L\\n\")\n\n# 3. Repeated Bertrand Supergame Incentive-Compatibility (delta >= delta* = 1 - 1/N)\nind = pd.read_csv(\"studies-gas-industries.csv\")\nind[\"collusive_spne\"] = ind[\"deltaEff\"] >= ind[\"deltaStar\"]\nprint(\"=== Supergame Incentive-Compatibility (delta_eff vs. delta_star) ===\")\nprint(ind[[\"id\", \"industry\", \"firmsN\", \"deltaStar\", \"deltaEff\", \"slack\", \"collusive_spne\"]])\n"}