Replication code for "Auction Competitive Capacity: Characterization and Inference" (Durmus Karatay). The paper axiomatizes a measure of competitive pressure in auctions,
ACC = H(p) · log(1 + ρ/G*),
where H(p) is the Shannon entropy of bid shares, ρ is the top-two bid ratio, and G* is the normalized Gini dispersion of bids. This repository contains the Python package implementing the metrics, the Monte Carlo simulations, the empirical data pipelines, and the figure/table generators behind every number in the paper.
src/acc_metrics/— Python package: ACC components, dispersion measures, equilibrium bid functions, samplers, bootstrap/cluster-robust inferencescripts/data/— empirical data preparation (eBay, Operation Car Wash)scripts/simulations/— Monte Carlo simulations (fixed seed 12345)scripts/figures/— figure and table generationscripts/verify_*.py— symbolic (sympy) and numerical theorem verificationtests/— unit and property-based testsdata/empirical/— empirical datasets (see Data below)
Requires Python ≥ 3.14 and uv. Some scripts use syntax introduced in Python 3.14 (PEP 758), so older interpreters will fail to parse them.
make sync # install dependencies
make test # run the test suitefrom acc_metrics import acc, acc_components
bids = [100, 95, 80, 60, 40]
print(f"ACC: {acc(bids):.3f}")
h, rho, gini, acc_val, evidence = acc_components(bids)All outputs are regenerated from scratch; nothing generated is committed.
make simulations # Monte Carlo runs -> data/simulations/*.parquet
make figures # figures + LaTeX tables -> figures/generated/
make verify # symbolic and numerical theorem checksSimulations use a fixed seed (12345), so regenerated figures and statistics
reproduce the paper exactly. The paper's source repository compiles against a
committed snapshot of this output; the reproduction check is to run
make simulations && make figures here and compare the regenerated
figures/generated/ files (in particular generated_stats.tex) against the
versions the paper was compiled with. make figures reads the included
carwash_auctions.csv directly and does not require the IEEE supplementary
file; the xlsx is needed only to rebuild the CSV from scratch via
scripts/data/load_carwash_data.py.
- eBay auctions (
data/empirical/ebay/): bid-level data for Xbox consoles, Cartier wristwatches, and Palm Pilot M515 PDAs from the dataset accompanying Jank and Shmueli, Modeling Online Auctions (Wiley-Blackwell, 2010), with contributor credits (Shanshan Wang, Sharad Borle) preserved in the directory names.scripts/data/clean_ebay_data.pyconsolidates the raw CSVs intoebay_auctions.parquet(included). - Operation Car Wash (
data/empirical/carwash/): 101 Brazilian procurement auctions (2002–2013) with confession-based ground-truth labels, from Signor et al., "Collusion Detection in Infrastructure Procurement: A Modified Order Statistic Method for Uncapped Auctions" (IEEE Transactions on Engineering Management). The processedcarwash_auctions.csvis included; it is a derived dataset of facts (bids, estimates, computed metrics) extracted from the published supplementary material, redistributed on that basis. The raw IEEE supplementary file (supp2-3049129.xlsx) is not redistributed here; to rerunscripts/data/load_carwash_data.pyfrom scratch, download it from the IEEE article page (DOI: 10.1109/TEM.2021.3049129) and place it indata/empirical/carwash/.
MIT. See LICENSE.