{"generated_at":"2026-11-02T03:44:34+00:00","method":"The public backtest report: how the price-to-win model did on bid openings it had never seen.\n\n    build(con, *, n_boot=1000, seed=7, replay_k=12, progress=None) -> dict   (data/reports/backtest.json)\n\nEverything here scores the SAME model the app prices with (bidesk.ptw.fit.fit, bidesk.ptw.core.p_win_batch,\nbidesk.ptw.model.Model), fitted only on contracts opened before the test period:\n\n  holdout   the production split (train before the last two calendar years, test on them; ptw.data.time_split).\n            Chance of winning at the price each bidder actually bid, every bidder playing \"the customer\" in turn,\n            scored by Brier and log loss against four bars: the training base rate, 1 / predicted field size\n            (the field-size model alone, no prices), 1 / true field size (the generous bar), and the model told\n            the true field size. Confidence intervals: bootstrap by contract (a contract's bids move together).\n  rolling   the same, year by year: for each test year, fit on every earlier year only.\n  calibration  reliability in deciles of the predicted chance, and the whole curve (prices moved -30%..+20%).\n  slices    by trade (plumbing, hvac, mechanical) and by state.\n  low bid   where the lowest competing bid lands: the model's median vs what was filed, from three starting\n            points (your own price, the engineer's estimate, similar past jobs).\n  policy    pretend to be each test bidder, follow a pricing policy, count wins, profit and money left on the\n            table against the bids actually filed (the logic of ptw.backtest.policy_eval, kept per bid so it\n            can be bootstrapped by contract).\n  replay    bidesk.ptw.replay: 12 recent plumbing/HVAC openings, each priced by a model fitted the day before.","warehouse":{"bidtab_rows":29404,"bidtab_contracts":5752,"winning_bids_usd":14800228658.77,"first_opening":"2013-10-24","last_opening":"2026-09-30","model_contracts":5750,"model_bids":28782,"n_firms":4450,"states":["??","MA","NJ","NY","OH","PA"],"owners":14,"model_years":[2013,2026],"model_winning_bids_usd":14806083902.77,"plumbing_hvac":{"n_contracts":1155,"n_contracts_2plus":926,"n_bids":3975,"mean_bidders":3.44,"median_gap_winner_under_second":0.113,"median_gap_as_share_of_second":0.1015,"money_left_usd":197812794.24,"winning_bids_usd":1695812137.2800002,"by_trade":{"plumbing":{"n_contracts":318,"median_gap":0.1438},"hvac":{"n_contracts":608,"median_gap":0.098},"mechanical":{"n_contracts":0,"median_gap":null}},"note":"Gap = second-lowest bid / winning bid - 1 on contracts with 2+ responsive bids. Money left on the table = the sum of (second-lowest - winning bid): what winners could have added and still been lowest."},"db_file":"bidesk.duckdb"},"holdout":{"train_years":[2013,2024],"test_years":[2025,2026],"train_contracts":4394,"train_bids":20899,"base_rate_train":0.2107,"scores":{"n_bids":7728,"n_contracts":1320,"win_rate":0.1709368530020704,"methods":{"model":{"brier":0.1328,"log_loss":0.4249,"auc":0.6969,"mean_p":0.1847,"brier_ci":[0.1271,0.1388],"auc_ci":[0.6843,0.7092],"brier_minus_base_rate":-0.0105,"brier_minus_base_rate_ci":[-0.0117,-0.0092],"brier_minus_one_over_true_n":0.0178},"model_field_known":{"brier":0.115,"log_loss":0.375,"auc":0.7686,"mean_p":0.1717,"brier_ci":[0.1103,0.1198],"auc_ci":[0.7604,0.7764],"brier_minus_base_rate":-0.0283,"brier_minus_base_rate_ci":[-0.0303,-0.0265]},"base_rate":{"brier":0.1433,"log_loss":0.4624,"auc":0.5,"mean_p":0.2107,"brier_ci":[0.1381,0.1482],"auc_ci":[0.5,0.5]},"one_over_predicted_n":{"brier":0.1334,"log_loss":0.4266,"auc":0.6969,"mean_p":0.1977,"brier_ci":[0.1277,0.1393],"auc_ci":[0.6843,0.7092],"brier_minus_base_rate":-0.0099,"brier_minus_base_rate_ci":[-0.0113,-0.0085]},"one_over_true_n":{"brier":0.115,"log_loss":0.3749,"auc":0.7685,"mean_p":0.1708,"brier_ci":[0.1103,0.1198],"auc_ci":[0.7602,0.7761],"brier_minus_base_rate":-0.0283,"brier_minus_base_rate_ci":[-0.0303,-0.0265]}},"n_boot":1000},"labels":{"base_rate":"Base rate: every bid gets the training years' win rate","one_over_predicted_n":"1 / predicted field size: the field-size model alone, no prices","model":"Price to win, field size predicted (what the app shows before bids open)","one_over_true_n":"1 / true field size: knows how many bid, ignores every price","model_field_known":"Price to win, told the true field size"},"reliability":[{"lo":0.0624,"hi":0.0809,"n":773,"predicted":0.077,"observed":0.0362,"observed_lo":0.0284,"observed_hi":0.0428},{"lo":0.0809,"hi":0.0916,"n":773,"predicted":0.084,"observed":0.0699,"observed_lo":0.0607,"observed_hi":0.0817},{"lo":0.0916,"hi":0.1093,"n":773,"predicted":0.1021,"observed":0.0763,"observed_lo":0.0628,"observed_hi":0.0949},{"lo":0.1093,"hi":0.135,"n":772,"predicted":0.1178,"observed":0.1062,"observed_lo":0.0907,"observed_hi":0.1244},{"lo":0.135,"hi":0.1694,"n":773,"predicted":0.153,"observed":0.1268,"observed_lo":0.1076,"observed_hi":0.1469},{"lo":0.1694,"hi":0.2048,"n":773,"predicted":0.1876,"observed":0.1837,"observed_lo":0.1647,"observed_hi":0.2055},{"lo":0.2048,"hi":0.2333,"n":772,"predicted":0.2191,"observed":0.228,"observed_lo":0.2084,"observed_hi":0.25},{"lo":0.2333,"hi":0.2709,"n":773,"predicted":0.2514,"observed":0.2691,"observed_lo":0.2455,"observed_hi":0.2924},{"lo":0.2709,"hi":0.322,"n":773,"predicted":0.2958,"observed":0.2975,"observed_lo":0.2737,"observed_hi":0.3236},{"lo":0.322,"hi":0.51,"n":773,"predicted":0.359,"observed":0.3157,"observed_lo":0.293,"observed_hi":0.3452}],"reliability_field_known":[{"lo":0.0262,"hi":0.0383,"n":758,"predicted":0.0322,"observed":0.0356,"observed_lo":0.0344,"observed_hi":0.0369},{"lo":0.0383,"hi":0.0472,"n":757,"predicted":0.0416,"observed":0.0449,"observed_lo":0.0441,"observed_hi":0.0457},{"lo":0.0472,"hi":0.0654,"n":732,"predicted":0.0541,"observed":0.056,"observed_lo":0.0527,"observed_hi":0.0601},{"lo":0.0654,"hi":0.1011,"n":838,"predicted":0.0776,"observed":0.0776,"observed_lo":0.0741,"observed_hi":0.0809},{"lo":0.1011,"hi":0.1274,"n":616,"predicted":0.1076,"observed":0.1071,"observed_lo":0.1059,"observed_hi":0.1085},{"lo":0.1274,"hi":0.1707,"n":855,"predicted":0.1386,"observed":0.1368,"observed_lo":0.1346,"observed_hi":0.1398},{"lo":0.1707,"hi":0.2046,"n":570,"predicted":0.1707,"observed":0.1667,"observed_lo":0.1667,"observed_hi":0.1667},{"lo":0.2046,"hi":0.2545,"n":686,"predicted":0.2108,"observed":0.2055,"observed_lo":0.1961,"observed_hi":0.2182},{"lo":0.2545,"hi":0.3363,"n":794,"predicted":0.2598,"observed":0.2557,"observed_lo":0.2442,"observed_hi":0.267},{"lo":0.3363,"hi":1.0,"n":1122,"predicted":0.4754,"observed":0.4742,"observed_lo":0.4578,"observed_hi":0.4902}],"curve":{"n_bids":7728,"n_contracts":1320,"by_shift":[{"shift":-0.3,"predicted":0.65,"observed":0.6828,"observed_lo":0.6636,"observed_hi":0.7036,"brier":0.2152},{"shift":-0.2,"predicted":0.5062,"observed":0.5026,"observed_lo":0.4835,"observed_hi":0.521,"brier":0.2421},{"shift":-0.1,"predicted":0.3367,"observed":0.3131,"observed_lo":0.2976,"observed_hi":0.3249,"brier":0.2034},{"shift":-0.05,"predicted":0.2533,"observed":0.2349,"observed_lo":0.2228,"observed_hi":0.2459,"brier":0.1684},{"shift":0.0,"predicted":0.1847,"observed":0.1709,"observed_lo":0.1619,"observed_hi":0.1793,"brier":0.1328},{"shift":0.05,"predicted":0.1392,"observed":0.1244,"observed_lo":0.1164,"observed_hi":0.1325,"brier":0.1024},{"shift":0.1,"predicted":0.1112,"observed":0.095,"observed_lo":0.0877,"observed_hi":0.1025,"brier":0.0809},{"shift":0.2,"predicted":0.0806,"observed":0.0633,"observed_lo":0.0568,"observed_hi":0.0704,"brier":0.0559}],"brier":0.1502,"auc":0.8097,"auc_shift_only":0.7755,"reliability":[{"lo":0.0126,"hi":0.0508,"n":6183,"predicted":0.0352,"observed":0.0157,"observed_lo":0.0127,"observed_hi":0.0188},{"lo":0.0508,"hi":0.0828,"n":6182,"predicted":0.0675,"observed":0.0438,"observed_lo":0.0391,"observed_hi":0.0499},{"lo":0.0828,"hi":0.1278,"n":6182,"predicted":0.1042,"observed":0.0924,"observed_lo":0.0849,"observed_hi":0.1017},{"lo":0.1278,"hi":0.1712,"n":6183,"predicted":0.1475,"observed":0.1291,"observed_lo":0.1205,"observed_hi":0.1378},{"lo":0.1712,"hi":0.2229,"n":6182,"predicted":0.1999,"observed":0.1883,"observed_lo":0.176,"observed_hi":0.2009},{"lo":0.2229,"hi":0.288,"n":6182,"predicted":0.253,"observed":0.2297,"observed_lo":0.2165,"observed_hi":0.2421},{"lo":0.288,"hi":0.3904,"n":6183,"predicted":0.3379,"observed":0.3466,"observed_lo":0.3321,"observed_hi":0.3611},{"lo":0.3904,"hi":0.4753,"n":6182,"predicted":0.4286,"observed":0.4115,"observed_lo":0.3909,"observed_hi":0.4325},{"lo":0.4753,"hi":0.6048,"n":6182,"predicted":0.5519,"observed":0.5775,"observed_lo":0.5553,"observed_hi":0.6003},{"lo":0.6048,"hi":0.9252,"n":6183,"predicted":0.7017,"observed":0.6992,"observed_lo":0.6802,"observed_hi":0.7173}],"note":"Each test bidder's price moved by -30% to +20% and checked against the bids actually filed. auc_shift_only ranks by the move alone (no model): lower prices win more often. Intervals: contract bootstrap."},"curve_plumbing_hvac":{"n_bids":1063,"n_contracts":291,"by_shift":[{"shift":-0.3,"predicted":0.732,"observed":0.7789,"observed_lo":0.7418,"observed_hi":0.8101,"brier":0.1758},{"shift":-0.2,"predicted":0.6066,"observed":0.6341,"observed_lo":0.594,"observed_hi":0.6735,"brier":0.236},{"shift":-0.1,"predicted":0.4435,"observed":0.4628,"observed_lo":0.4281,"observed_hi":0.4923,"brier":0.2483},{"shift":-0.05,"predicted":0.3555,"observed":0.3659,"observed_lo":0.3401,"observed_hi":0.3901,"brier":0.2293},{"shift":0.0,"predicted":0.2769,"observed":0.2738,"observed_lo":0.2563,"observed_hi":0.2931,"brier":0.1943},{"shift":0.05,"predicted":0.2194,"observed":0.2004,"observed_lo":0.1786,"observed_hi":0.2246,"brier":0.1555},{"shift":0.1,"predicted":0.1811,"observed":0.158,"observed_lo":0.1379,"observed_hi":0.1829,"brier":0.1284},{"shift":0.2,"predicted":0.137,"observed":0.111,"observed_lo":0.093,"observed_hi":0.1342,"brier":0.0949}],"brier":0.1828,"auc":0.7777,"auc_shift_only":0.765,"reliability":[{"lo":0.0253,"hi":0.1236,"n":851,"predicted":0.0889,"observed":0.0576,"observed_lo":0.0414,"observed_hi":0.0797},{"lo":0.1236,"hi":0.1772,"n":850,"predicted":0.1512,"observed":0.1294,"observed_lo":0.1071,"observed_hi":0.1551},{"lo":0.1772,"hi":0.2254,"n":850,"predicted":0.2006,"observed":0.1741,"observed_lo":0.1471,"observed_hi":0.2014},{"lo":0.2254,"hi":0.2706,"n":851,"predicted":0.2476,"observed":0.2397,"observed_lo":0.2127,"observed_hi":0.2667},{"lo":0.2706,"hi":0.3311,"n":850,"predicted":0.2996,"observed":0.3071,"observed_lo":0.2797,"observed_hi":0.338},{"lo":0.3311,"hi":0.3824,"n":850,"predicted":0.3537,"observed":0.3659,"observed_lo":0.3351,"observed_hi":0.3947},{"lo":0.3824,"hi":0.4601,"n":851,"predicted":0.4222,"observed":0.463,"observed_lo":0.4279,"observed_hi":0.5},{"lo":0.4601,"hi":0.5879,"n":850,"predicted":0.5248,"observed":0.5365,"observed_lo":0.4866,"observed_hi":0.5788},{"lo":0.5879,"hi":0.6943,"n":850,"predicted":0.6408,"observed":0.6859,"observed_lo":0.6417,"observed_hi":0.7266},{"lo":0.6943,"hi":0.8957,"n":851,"predicted":0.7606,"observed":0.772,"observed_lo":0.7273,"observed_hi":0.8142}],"note":"Each test bidder's price moved by -30% to +20% and checked against the bids actually filed. auc_shift_only ranks by the move alone (no model): lower prices win more often. Intervals: contract bootstrap."},"slices":{"by_trade":[{"group":"plumbing_hvac","trades":["plumbing","hvac","mechanical"],"n_bids":1063,"n_contracts":291,"win_rate":0.2737535277516463,"methods":{"base_rate":{"brier":0.2028,"log_loss":0.5982,"auc":0.5,"mean_p":0.2107,"brier_ci":[0.1921,0.2155],"auc_ci":[0.5,0.5]},"one_over_predicted_n":{"brier":0.1949,"log_loss":0.5761,"auc":0.6051,"mean_p":0.2979,"brier_ci":[0.1857,0.204],"auc_ci":[0.5735,0.6379],"brier_minus_base_rate":-0.0079,"brier_minus_base_rate_ci":[-0.0132,-0.003]},"model":{"brier":0.1943,"log_loss":0.5746,"auc":0.6051,"mean_p":0.2769,"brier_ci":[0.1845,0.2037],"auc_ci":[0.5735,0.6379],"brier_minus_base_rate":-0.0085,"brier_minus_base_rate_ci":[-0.0128,-0.0044]},"one_over_true_n":{"brier":0.1601,"log_loss":0.4885,"auc":0.7322,"mean_p":0.2738,"brier_ci":[0.152,0.1678],"auc_ci":[0.7117,0.7516],"brier_minus_base_rate":-0.0427,"brier_minus_base_rate_ci":[-0.053,-0.0349]},"model_field_known":{"brier":0.1602,"log_loss":0.4885,"auc":0.7327,"mean_p":0.2765,"brier_ci":[0.152,0.1678],"auc_ci":[0.7123,0.753],"brier_minus_base_rate":-0.0426,"brier_minus_base_rate_ci":[-0.053,-0.0349]}},"n_boot":500,"thin":false},{"group":"plumbing","trades":["plumbing"],"n_bids":307,"n_contracts":95,"win_rate":0.30944625407166126,"methods":{"base_rate":{"brier":0.2234,"log_loss":0.6453,"auc":0.5,"mean_p":0.2107,"brier_ci":[0.2051,0.2439],"auc_ci":[0.5,0.5]},"one_over_predicted_n":{"brier":0.2151,"log_loss":0.6211,"auc":0.5474,"mean_p":0.3351,"brier_ci":[0.2041,0.226],"auc_ci":[0.5045,0.6071],"brier_minus_base_rate":-0.0083,"brier_minus_base_rate_ci":[-0.0196,0.0025]},"model":{"brier":0.214,"log_loss":0.6191,"auc":0.5474,"mean_p":0.311,"brier_ci":[0.2022,0.2267],"auc_ci":[0.5045,0.6071],"brier_minus_base_rate":-0.0094,"brier_minus_base_rate_ci":[-0.0188,-0.0005]},"one_over_true_n":{"brier":0.1745,"log_loss":0.5226,"auc":0.7194,"mean_p":0.3094,"brier_ci":[0.164,0.1848],"auc_ci":[0.6906,0.7463],"brier_minus_base_rate":-0.0489,"brier_minus_base_rate_ci":[-0.0688,-0.0334]},"model_field_known":{"brier":0.1745,"log_loss":0.5227,"auc":0.7183,"mean_p":0.3124,"brier_ci":[0.164,0.1848],"auc_ci":[0.6889,0.7464],"brier_minus_base_rate":-0.0489,"brier_minus_base_rate_ci":[-0.0687,-0.0334]}},"n_boot":500,"thin":false},{"group":"hvac","trades":["hvac"],"n_bids":756,"n_contracts":196,"win_rate":0.25925925925925924,"methods":{"base_rate":{"brier":0.1944,"log_loss":0.579,"auc":0.5,"mean_p":0.2107,"brier_ci":[0.1809,0.2102],"auc_ci":[0.5,0.5]},"one_over_predicted_n":{"brier":0.1867,"log_loss":0.5578,"auc":0.6253,"mean_p":0.2828,"brier_ci":[0.1749,0.1993],"auc_ci":[0.5907,0.6649],"brier_minus_base_rate":-0.0077,"brier_minus_base_rate_ci":[-0.0129,-0.003]},"model":{"brier":0.1863,"log_loss":0.5566,"auc":0.6253,"mean_p":0.2631,"brier_ci":[0.1742,0.1994],"auc_ci":[0.5907,0.6649],"brier_minus_base_rate":-0.0081,"brier_minus_base_rate_ci":[-0.0121,-0.0043]},"one_over_true_n":{"brier":0.1543,"log_loss":0.4746,"auc":0.7343,"mean_p":0.2593,"brier_ci":[0.1447,0.1648],"auc_ci":[0.7108,0.7566],"brier_minus_base_rate":-0.0401,"brier_minus_base_rate_ci":[-0.0518,-0.0312]},"model_field_known":{"brier":0.1543,"log_loss":0.4746,"auc":0.7354,"mean_p":0.2619,"brier_ci":[0.1447,0.1648],"auc_ci":[0.7122,0.7577],"brier_minus_base_rate":-0.0401,"brier_minus_base_rate_ci":[-0.0518,-0.0312]}},"n_boot":500,"thin":false},{"group":"all_trades","trades":null,"n_bids":7728,"n_contracts":1320,"win_rate":0.1709368530020704,"methods":{"base_rate":{"brier":0.1433,"log_loss":0.4624,"auc":0.5,"mean_p":0.2107,"brier_ci":[0.138,0.1482],"auc_ci":[0.5,0.5]},"one_over_predicted_n":{"brier":0.1334,"log_loss":0.4266,"auc":0.6969,"mean_p":0.1977,"brier_ci":[0.1277,0.1388],"auc_ci":[0.6836,0.7093],"brier_minus_base_rate":-0.0099,"brier_minus_base_rate_ci":[-0.0113,-0.0084]},"model":{"brier":0.1328,"log_loss":0.4249,"auc":0.6969,"mean_p":0.1847,"brier_ci":[0.127,0.1382],"auc_ci":[0.6836,0.7093],"brier_minus_base_rate":-0.0105,"brier_minus_base_rate_ci":[-0.0117,-0.0091]},"one_over_true_n":{"brier":0.115,"log_loss":0.3749,"auc":0.7685,"mean_p":0.1708,"brier_ci":[0.1101,0.1196],"auc_ci":[0.76,0.7763],"brier_minus_base_rate":-0.0283,"brier_minus_base_rate_ci":[-0.0304,-0.0264]},"model_field_known":{"brier":0.115,"log_loss":0.375,"auc":0.7686,"mean_p":0.1717,"brier_ci":[0.1101,0.1196],"auc_ci":[0.7603,0.7764],"brier_minus_base_rate":-0.0283,"brier_minus_base_rate_ci":[-0.0304,-0.0264]}},"n_boot":500,"thin":false}],"by_state":[{"state":"??","group":"all_trades","n_bids":61,"n_contracts":14,"win_rate":0.22950819672131148,"methods":{"base_rate":{"brier":0.1772,"log_loss":0.5397,"auc":0.5,"mean_p":0.2107,"brier_ci":[0.1408,0.2307],"auc_ci":[0.5,0.5]},"one_over_predicted_n":{"brier":0.1749,"log_loss":0.5332,"auc":0.6429,"mean_p":0.2195,"brier_ci":[0.1394,0.2262],"auc_ci":[0.5015,0.8267],"brier_minus_base_rate":-0.0023,"brier_minus_base_rate_ci":[-0.0055,0.0006]},"model":{"brier":0.1756,"log_loss":0.5349,"auc":0.6429,"mean_p":0.2052,"brier_ci":[0.1385,0.2295],"auc_ci":[0.5015,0.8267],"brier_minus_base_rate":-0.0016,"brier_minus_base_rate_ci":[-0.0037,0.0008]},"one_over_true_n":{"brier":0.1508,"log_loss":0.4675,"auc":0.7196,"mean_p":0.2295,"brier_ci":[0.1223,0.1924],"auc_ci":[0.6381,0.7621],"brier_minus_base_rate":-0.0264,"brier_minus_base_rate_ci":[-0.0525,-0.0116]},"model_field_known":{"brier":0.1508,"log_loss":0.4675,"auc":0.715,"mean_p":0.2316,"brier_ci":[0.1223,0.1925],"auc_ci":[0.6247,0.7598],"brier_minus_base_rate":-0.0264,"brier_minus_base_rate_ci":[-0.0525,-0.0116]}},"n_boot":500,"thin":true},{"state":"MA","group":"all_trades","n_bids":938,"n_contracts":223,"win_rate":0.23773987206823027,"methods":{"base_rate":{"brier":0.182,"log_loss":0.5506,"auc":0.5,"mean_p":0.2107,"brier_ci":[0.1736,0.1929],"auc_ci":[0.5,0.5]},"one_over_predicted_n":{"brier":0.1941,"log_loss":0.5775,"auc":0.5482,"mean_p":0.3515,"brier_ci":[0.1886,0.2011],"auc_ci":[0.5246,0.5749],"brier_minus_base_rate":0.0121,"brier_minus_base_rate_ci":[0.0065,0.0176]},"model":{"brier":0.1887,"log_loss":0.5656,"auc":0.5482,"mean_p":0.326,"brier_ci":[0.183,0.1964],"auc_ci":[0.5246,0.5749],"brier_minus_base_rate":0.0067,"brier_minus_base_rate_ci":[0.0021,0.0111]},"one_over_true_n":{"brier":0.1561,"log_loss":0.4832,"auc":0.7009,"mean_p":0.2377,"brier_ci":[0.1497,0.1636],"auc_ci":[0.6835,0.7179],"brier_minus_base_rate":-0.0259,"brier_minus_base_rate_ci":[-0.0335,-0.0201]},"model_field_known":{"brier":0.1561,"log_loss":0.4833,"auc":0.701,"mean_p":0.2407,"brier_ci":[0.1497,0.1636],"auc_ci":[0.6834,0.7178],"brier_minus_base_rate":-0.0259,"brier_minus_base_rate_ci":[-0.0335,-0.02]}},"n_boot":500,"thin":false},{"state":"MA","group":"plumbing_hvac","n_bids":149,"n_contracts":30,"win_rate":0.20134228187919462,"methods":{"base_rate":{"brier":0.1609,"log_loss":0.5025,"auc":0.5,"mean_p":0.2107,"brier_ci":[0.1465,0.1811],"auc_ci":[0.5,0.5]},"one_over_predicted_n":{"brier":0.1991,"log_loss":0.5895,"auc":0.5868,"mean_p":0.4011,"brier_ci":[0.1887,0.2097],"auc_ci":[0.5444,0.6651],"brier_minus_base_rate":0.0382,"brier_minus_base_rate_ci":[0.0235,0.0494]},"model":{"brier":0.1882,"log_loss":0.5664,"auc":0.5868,"mean_p":0.3716,"brier_ci":[0.1779,0.199],"auc_ci":[0.5444,0.6651],"brier_minus_base_rate":0.0273,"brier_minus_base_rate_ci":[0.0149,0.0367]},"one_over_true_n":{"brier":0.1495,"log_loss":0.4707,"auc":0.6508,"mean_p":0.2013,"brier_ci":[0.1351,0.1675],"auc_ci":[0.6097,0.6832],"brier_minus_base_rate":-0.0114,"brier_minus_base_rate_ci":[-0.0225,-0.0049]},"model_field_known":{"brier":0.1496,"log_loss":0.4708,"auc":0.6492,"mean_p":0.2046,"brier_ci":[0.1351,0.1675],"auc_ci":[0.6092,0.6834],"brier_minus_base_rate":-0.0113,"brier_minus_base_rate_ci":[-0.0225,-0.0049]}},"n_boot":500,"thin":false},{"state":"NJ","group":"all_trades","n_bids":488,"n_contracts":107,"win_rate":0.22131147540983606,"methods":{"base_rate":{"brier":0.1724,"log_loss":0.5289,"auc":0.5,"mean_p":0.2107,"brier_ci":[0.1612,0.1835],"auc_ci":[0.5,0.5]},"one_over_predicted_n":{"brier":0.1706,"log_loss":0.5235,"auc":0.573,"mean_p":0.2374,"brier_ci":[0.1599,0.1815],"auc_ci":[0.5405,0.6102],"brier_minus_base_rate":-0.0018,"brier_minus_base_rate_ci":[-0.0035,-0.0003]},"model":{"brier":0.1704,"log_loss":0.5229,"auc":0.573,"mean_p":0.2215,"brier_ci":[0.1592,0.1819],"auc_ci":[0.5405,0.6102],"brier_minus_base_rate":-0.002,"brier_minus_base_rate_ci":[-0.0033,-0.0008]},"one_over_true_n":{"brier":0.1555,"log_loss":0.4839,"auc":0.6656,"mean_p":0.2193,"brier_ci":[0.146,0.1644],"auc_ci":[0.6406,0.6885],"brier_minus_base_rate":-0.0169,"brier_minus_base_rate_ci":[-0.0241,-0.0107]},"model_field_known":{"brier":0.1555,"log_loss":0.4839,"auc":0.6676,"mean_p":0.2225,"brier_ci":[0.146,0.1645],"auc_ci":[0.6427,0.6901],"brier_minus_base_rate":-0.0169,"brier_minus_base_rate_ci":[-0.0241,-0.0107]}},"n_boot":500,"thin":false},{"state":"NJ","group":"plumbing_hvac","n_bids":108,"n_contracts":24,"win_rate":0.2222222222222222,"methods":{"base_rate":{"brier":0.173,"log_loss":0.5301,"auc":0.5,"mean_p":0.2107,"brier_ci":[0.1524,0.1987],"auc_ci":[0.5,0.5]},"one_over_predicted_n":{"brier":0.1728,"log_loss":0.5296,"auc":0.5853,"mean_p":0.2617,"brier_ci":[0.156,0.1939],"auc_ci":[0.5535,0.6566],"brier_minus_base_rate":-0.0002,"brier_minus_base_rate_ci":[-0.0055,0.004]},"model":{"brier":0.1718,"log_loss":0.5269,"auc":0.5853,"mean_p":0.2438,"brier_ci":[0.1537,0.1943],"auc_ci":[0.5535,0.6566],"brier_minus_base_rate":-0.0012,"brier_minus_base_rate_ci":[-0.0048,0.0017]},"one_over_true_n":{"brier":0.1583,"log_loss":0.4902,"auc":0.6662,"mean_p":0.2222,"brier_ci":[0.1401,0.1799],"auc_ci":[0.6157,0.7063],"brier_minus_base_rate":-0.0147,"brier_minus_base_rate_ci":[-0.0315,-0.0059]},"model_field_known":{"brier":0.1583,"log_loss":0.4902,"auc":0.6709,"mean_p":0.2254,"brier_ci":[0.1401,0.18],"auc_ci":[0.6181,0.7122],"brier_minus_base_rate":-0.0147,"brier_minus_base_rate_ci":[-0.0315,-0.0058]}},"n_boot":500,"thin":false},{"state":"NY","group":"all_trades","n_bids":5413,"n_contracts":752,"win_rate":0.13892481064104933,"methods":{"base_rate":{"brier":0.1248,"log_loss":0.4201,"auc":0.5,"mean_p":0.2107,"brier_ci":[0.1196,0.1302],"auc_ci":[0.5,0.5]},"one_over_predicted_n":{"brier":0.1097,"log_loss":0.3676,"auc":0.7263,"mean_p":0.1542,"brier_ci":[0.1038,0.1157],"auc_ci":[0.7147,0.7393],"brier_minus_base_rate":-0.0151,"brier_minus_base_rate_ci":[-0.0163,-0.0139]},"model":{"brier":0.1099,"log_loss":0.3673,"auc":0.7263,"mean_p":0.1446,"brier_ci":[0.1039,0.116],"auc_ci":[0.7147,0.7393],"brier_minus_base_rate":-0.0149,"brier_minus_base_rate_ci":[-0.0161,-0.0138]},"one_over_true_n":{"brier":0.0961,"log_loss":0.3255,"auc":0.7767,"mean_p":0.1389,"brier_ci":[0.0909,0.1011],"auc_ci":[0.7681,0.7855],"brier_minus_base_rate":-0.0287,"brier_minus_base_rate_ci":[-0.0313,-0.0267]},"model_field_known":{"brier":0.0961,"log_loss":0.3255,"auc":0.7765,"mean_p":0.1389,"brier_ci":[0.0909,0.1011],"auc_ci":[0.7679,0.7854],"brier_minus_base_rate":-0.0287,"brier_minus_base_rate_ci":[-0.0313,-0.0267]}},"n_boot":500,"thin":false},{"state":"NY","group":"plumbing_hvac","n_bids":571,"n_contracts":168,"win_rate":0.29422066549912435,"methods":{"base_rate":{"brier":0.2146,"log_loss":0.6252,"auc":0.5,"mean_p":0.2107,"brier_ci":[0.1976,0.2352],"auc_ci":[0.5,0.5]},"one_over_predicted_n":{"brier":0.195,"log_loss":0.5741,"auc":0.6797,"mean_p":0.2723,"brier_ci":[0.1811,0.2099],"auc_ci":[0.6418,0.7135],"brier_minus_base_rate":-0.0196,"brier_minus_base_rate_ci":[-0.0266,-0.0142]},"model":{"brier":0.1969,"log_loss":0.5781,"auc":0.6797,"mean_p":0.2535,"brier_ci":[0.1818,0.213],"auc_ci":[0.6418,0.7135],"brier_minus_base_rate":-0.0177,"brier_minus_base_rate_ci":[-0.0234,-0.0132]},"one_over_true_n":{"brier":0.1548,"log_loss":0.4717,"auc":0.7665,"mean_p":0.2942,"brier_ci":[0.1448,0.1676],"auc_ci":[0.7361,0.7906],"brier_minus_base_rate":-0.0598,"brier_minus_base_rate_ci":[-0.0763,-0.0452]},"model_field_known":{"brier":0.1548,"log_loss":0.4717,"auc":0.7656,"mean_p":0.2967,"brier_ci":[0.1448,0.1677],"auc_ci":[0.7341,0.789],"brier_minus_base_rate":-0.0598,"brier_minus_base_rate_ci":[-0.0763,-0.0452]}},"n_boot":500,"thin":false},{"state":"OH","group":"all_trades","n_bids":223,"n_contracts":58,"win_rate":0.2600896860986547,"methods":{"base_rate":{"brier":0.1949,"log_loss":0.5801,"auc":0.5,"mean_p":0.2107,"brier_ci":[0.1705,0.2278],"auc_ci":[0.5,0.5]},"one_over_predicted_n":{"brier":0.1926,"log_loss":0.5739,"auc":0.5083,"mean_p":0.2604,"brier_ci":[0.1714,0.2205],"auc_ci":[0.46,0.577],"brier_minus_base_rate":-0.0023,"brier_minus_base_rate_ci":[-0.0084,0.0021]},"model":{"brier":0.1929,"log_loss":0.5746,"auc":0.5083,"mean_p":0.2426,"brier_ci":[0.1701,0.2227],"auc_ci":[0.46,0.577],"brier_minus_base_rate":-0.002,"brier_minus_base_rate_ci":[-0.0058,0.001]},"one_over_true_n":{"brier":0.148,"log_loss":0.4588,"auc":0.7579,"mean_p":0.2601,"brier_ci":[0.132,0.1672],"auc_ci":[0.7204,0.7909],"brier_minus_base_rate":-0.0469,"brier_minus_base_rate_ci":[-0.0744,-0.0292]},"model_field_known":{"brier":0.148,"log_loss":0.4588,"auc":0.758,"mean_p":0.2625,"brier_ci":[0.1321,0.1672],"auc_ci":[0.7184,0.7905],"brier_minus_base_rate":-0.0469,"brier_minus_base_rate_ci":[-0.0744,-0.0292]}},"n_boot":500,"thin":false},{"state":"OH","group":"plumbing_hvac","n_bids":14,"n_contracts":5,"win_rate":0.35714285714285715,"methods":{"base_rate":{"brier":0.251,"log_loss":0.7083,"auc":0.5,"mean_p":0.2107,"brier_ci":[0.2007,0.406],"auc_ci":[0.5,0.5]},"one_over_predicted_n":{"brier":0.2315,"log_loss":0.6562,"auc":0.5333,"mean_p":0.3137,"brier_ci":[0.1978,0.3336],"auc_ci":[0.3053,0.86],"brier_minus_base_rate":-0.0195,"brier_minus_base_rate_ci":[-0.0704,-0.0026]},"model":{"brier":0.234,"log_loss":0.662,"auc":0.5333,"mean_p":0.2912,"brier_ci":[0.1965,0.3481],"auc_ci":[0.3053,0.86],"brier_minus_base_rate":-0.017,"brier_minus_base_rate_ci":[-0.0561,-0.004]},"one_over_true_n":{"brier":0.1905,"log_loss":0.5568,"auc":0.6778,"mean_p":0.3571,"brier_ci":[0.1417,0.2233],"auc_ci":[0.5323,0.82],"brier_minus_base_rate":-0.0605,"brier_minus_base_rate_ci":[-0.227,-0.0048]},"model_field_known":{"brier":0.1905,"log_loss":0.5568,"auc":0.7,"mean_p":0.3603,"brier_ci":[0.1417,0.2233],"auc_ci":[0.564,0.8333],"brier_minus_base_rate":-0.0605,"brier_minus_base_rate_ci":[-0.227,-0.0048]}},"n_boot":500,"thin":true},{"state":"PA","group":"all_trades","n_bids":605,"n_contracts":166,"win_rate":0.2743801652892562,"methods":{"base_rate":{"brier":0.2032,"log_loss":0.599,"auc":0.5,"mean_p":0.2107,"brier_ci":[0.1917,0.2165],"auc_ci":[0.5,0.5]},"one_over_predicted_n":{"brier":0.1947,"log_loss":0.5769,"auc":0.6051,"mean_p":0.2916,"brier_ci":[0.1863,0.2039],"auc_ci":[0.5789,0.6363],"brier_minus_base_rate":-0.0085,"brier_minus_base_rate_ci":[-0.0126,-0.0049]},"model":{"brier":0.1947,"log_loss":0.5765,"auc":0.6051,"mean_p":0.271,"brier_ci":[0.1856,0.2045],"auc_ci":[0.5789,0.6363],"brier_minus_base_rate":-0.0085,"brier_minus_base_rate_ci":[-0.0118,-0.0057]},"one_over_true_n":{"brier":0.1726,"log_loss":0.5213,"auc":0.6945,"mean_p":0.2744,"brier_ci":[0.1644,0.181],"auc_ci":[0.6758,0.7135],"brier_minus_base_rate":-0.0306,"brier_minus_base_rate_ci":[-0.0406,-0.0232]},"model_field_known":{"brier":0.1726,"log_loss":0.5214,"auc":0.6963,"mean_p":0.2775,"brier_ci":[0.1644,0.181],"auc_ci":[0.678,0.7154],"brier_minus_base_rate":-0.0306,"brier_minus_base_rate_ci":[-0.0406,-0.0232]}},"n_boot":500,"thin":false},{"state":"PA","group":"plumbing_hvac","n_bids":221,"n_contracts":64,"win_rate":0.2895927601809955,"methods":{"base_rate":{"brier":0.212,"log_loss":0.6191,"auc":0.5,"mean_p":0.2107,"brier_ci":[0.1949,0.2358],"auc_ci":[0.5,0.5]},"one_over_predicted_n":{"brier":0.2004,"log_loss":0.5897,"auc":0.6324,"mean_p":0.3111,"brier_ci":[0.1895,0.2148],"auc_ci":[0.5938,0.6779],"brier_minus_base_rate":-0.0116,"brier_minus_base_rate_ci":[-0.0211,-0.0043]},"model":{"brier":0.2004,"log_loss":0.5891,"auc":0.6324,"mean_p":0.2889,"brier_ci":[0.1883,0.2163],"auc_ci":[0.5938,0.6779],"brier_minus_base_rate":-0.0116,"brier_minus_base_rate_ci":[-0.0196,-0.0058]},"one_over_true_n":{"brier":0.1801,"log_loss":0.5387,"auc":0.6889,"mean_p":0.2896,"brier_ci":[0.1677,0.1942],"auc_ci":[0.6568,0.7195],"brier_minus_base_rate":-0.0319,"brier_minus_base_rate_ci":[-0.047,-0.0206]},"model_field_known":{"brier":0.1801,"log_loss":0.5387,"auc":0.6959,"mean_p":0.2927,"brier_ci":[0.1678,0.1942],"auc_ci":[0.6648,0.7261],"brier_minus_base_rate":-0.0319,"brier_minus_base_rate_ci":[-0.047,-0.0206]}},"n_boot":500,"thin":false}]}},"rolling":{"years":[{"test_year":2018,"train_years":[2013,2017],"train_contracts":488,"n_bids":1044,"n_contracts":269,"win_rate":0.25766283524904215,"methods":{"model":{"brier":0.186,"log_loss":0.5566,"auc":0.6219,"mean_p":0.2277,"brier_ci":[0.1749,0.1968],"auc_ci":[0.5904,0.6567],"brier_minus_base_rate":-0.0059,"brier_minus_base_rate_ci":[-0.0078,-0.0041]},"model_field_known":{"brier":0.1549,"log_loss":0.4761,"auc":0.7359,"mean_p":0.2613,"brier_ci":[0.1449,0.1636],"auc_ci":[0.7176,0.7557],"brier_minus_base_rate":-0.037,"brier_minus_base_rate_ci":[-0.0448,-0.0305]},"base_rate":{"brier":0.1919,"log_loss":0.5724,"auc":0.5,"mean_p":0.2322,"brier_ci":[0.1817,0.2031],"auc_ci":[0.5,0.5]},"one_over_predicted_n":{"brier":0.1841,"log_loss":0.5522,"auc":0.6219,"mean_p":0.2471,"brier_ci":[0.1731,0.1945],"auc_ci":[0.5904,0.6567],"brier_minus_base_rate":-0.0078,"brier_minus_base_rate_ci":[-0.0104,-0.0051]},"one_over_true_n":{"brier":0.1548,"log_loss":0.476,"auc":0.7352,"mean_p":0.2577,"brier_ci":[0.1449,0.1636],"auc_ci":[0.7164,0.7555],"brier_minus_base_rate":-0.0371,"brier_minus_base_rate_ci":[-0.0448,-0.0305]}},"n_boot":200,"plumbing_hvac":{"n_contracts":41,"n_bids":161,"model":{"brier":0.1787,"log_loss":0.541,"auc":0.7274,"mean_p":0.2842},"base_rate":{"brier":0.1903,"log_loss":0.5688,"auc":0.5,"mean_p":0.2322},"one_over_true_n":{"brier":0.1441,"log_loss":0.4504,"auc":0.7559,"mean_p":0.2547}}},{"test_year":2019,"train_years":[2013,2018],"train_contracts":757,"n_bids":1217,"n_contracts":313,"win_rate":0.2580115036976171,"methods":{"model":{"brier":0.1861,"log_loss":0.5572,"auc":0.6157,"mean_p":0.2481,"brier_ci":[0.1786,0.1951],"auc_ci":[0.5974,0.6386],"brier_minus_base_rate":-0.0056,"brier_minus_base_rate_ci":[-0.0073,-0.0039]},"model_field_known":{"brier":0.1612,"log_loss":0.4931,"auc":0.7181,"mean_p":0.2611,"brier_ci":[0.1547,0.168],"auc_ci":[0.7001,0.7318],"brier_minus_base_rate":-0.0305,"brier_minus_base_rate_ci":[-0.0364,-0.0249]},"base_rate":{"brier":0.1917,"log_loss":0.5718,"auc":0.5,"mean_p":0.2406,"brier_ci":[0.1845,0.2014],"auc_ci":[0.5,0.5]},"one_over_predicted_n":{"brier":0.1857,"log_loss":0.5571,"auc":0.6157,"mean_p":0.2422,"brier_ci":[0.1772,0.1953],"auc_ci":[0.5974,0.6386],"brier_minus_base_rate":-0.006,"brier_minus_base_rate_ci":[-0.0087,-0.0038]},"one_over_true_n":{"brier":0.1611,"log_loss":0.493,"auc":0.7178,"mean_p":0.2572,"brier_ci":[0.1547,0.168],"auc_ci":[0.7007,0.7314],"brier_minus_base_rate":-0.0306,"brier_minus_base_rate_ci":[-0.0364,-0.0249]}},"n_boot":200,"plumbing_hvac":{"n_contracts":38,"n_bids":122,"model":{"brier":0.2058,"log_loss":0.6,"auc":0.6369,"mean_p":0.3071},"base_rate":{"brier":0.2195,"log_loss":0.6332,"auc":0.5,"mean_p":0.2406},"one_over_true_n":{"brier":0.1624,"log_loss":0.4908,"auc":0.7544,"mean_p":0.3115}}},{"test_year":2020,"train_years":[2013,2019],"train_contracts":1070,"n_bids":2691,"n_contracts":485,"win_rate":0.18023039762170198,"methods":{"model":{"brier":0.1421,"log_loss":0.4551,"auc":0.6886,"mean_p":0.2277,"brier_ci":[0.1328,0.1524],"auc_ci":[0.6716,0.7068],"brier_minus_base_rate":-0.0099,"brier_minus_base_rate_ci":[-0.0115,-0.0083]},"model_field_known":{"brier":0.1198,"log_loss":0.3874,"auc":0.767,"mean_p":0.1821,"brier_ci":[0.1116,0.1289],"auc_ci":[0.753,0.7808],"brier_minus_base_rate":-0.0322,"brier_minus_base_rate_ci":[-0.0354,-0.0292]},"base_rate":{"brier":0.152,"log_loss":0.484,"auc":0.5,"mean_p":0.2455,"brier_ci":[0.1444,0.1608],"auc_ci":[0.5,0.5]},"one_over_predicted_n":{"brier":0.1425,"log_loss":0.4559,"auc":0.6886,"mean_p":0.2414,"brier_ci":[0.1331,0.1526],"auc_ci":[0.6716,0.7068],"brier_minus_base_rate":-0.0095,"brier_minus_base_rate_ci":[-0.0116,-0.0076]},"one_over_true_n":{"brier":0.1198,"log_loss":0.3873,"auc":0.767,"mean_p":0.1802,"brier_ci":[0.1116,0.1289],"auc_ci":[0.7532,0.7805],"brier_minus_base_rate":-0.0322,"brier_minus_base_rate_ci":[-0.0354,-0.0292]}},"n_boot":200,"plumbing_hvac":{"n_contracts":86,"n_bids":337,"model":{"brier":0.189,"log_loss":0.5648,"auc":0.5769,"mean_p":0.2815},"base_rate":{"brier":0.1902,"log_loss":0.5682,"auc":0.5,"mean_p":0.2455},"one_over_true_n":{"brier":0.1558,"log_loss":0.4803,"auc":0.7246,"mean_p":0.2552}}},{"test_year":2021,"train_years":[2013,2020],"train_contracts":1555,"n_bids":3694,"n_contracts":650,"win_rate":0.17623172712506768,"methods":{"model":{"brier":0.1394,"log_loss":0.4459,"auc":0.6938,"mean_p":0.1227,"brier_ci":[0.1322,0.1497],"auc_ci":[0.6743,0.7117],"brier_minus_base_rate":-0.0077,"brier_minus_base_rate_ci":[-0.0096,-0.0053]},"model_field_known":{"brier":0.1164,"log_loss":0.3795,"auc":0.7687,"mean_p":0.1769,"brier_ci":[0.1108,0.1241],"auc_ci":[0.7566,0.7808],"brier_minus_base_rate":-0.0307,"brier_minus_base_rate_ci":[-0.0341,-0.0283]},"base_rate":{"brier":0.1471,"log_loss":0.4717,"auc":0.5,"mean_p":0.2206,"brier_ci":[0.1418,0.1555],"auc_ci":[0.5,0.5]},"one_over_predicted_n":{"brier":0.1356,"log_loss":0.4337,"auc":0.6938,"mean_p":0.1622,"brier_ci":[0.1287,0.1451],"auc_ci":[0.6743,0.7117],"brier_minus_base_rate":-0.0115,"brier_minus_base_rate_ci":[-0.0132,-0.0096]},"one_over_true_n":{"brier":0.1164,"log_loss":0.3794,"auc":0.7686,"mean_p":0.176,"brier_ci":[0.1108,0.1241],"auc_ci":[0.7568,0.7807],"brier_minus_base_rate":-0.0307,"brier_minus_base_rate_ci":[-0.0341,-0.0283]}},"n_boot":200,"plumbing_hvac":{"n_contracts":141,"n_bids":543,"model":{"brier":0.1924,"log_loss":0.5743,"auc":0.6567,"mean_p":0.1684},"base_rate":{"brier":0.1938,"log_loss":0.577,"auc":0.5,"mean_p":0.2206},"one_over_true_n":{"brier":0.1479,"log_loss":0.4566,"auc":0.7671,"mean_p":0.2597}}},{"test_year":2022,"train_years":[2013,2021],"train_contracts":2205,"n_bids":3188,"n_contracts":661,"win_rate":0.20796737766624843,"methods":{"model":{"brier":0.1652,"log_loss":0.5197,"auc":0.7147,"mean_p":0.0999,"brier_ci":[0.1561,0.1777],"auc_ci":[0.7011,0.7286],"brier_minus_base_rate":0.0005,"brier_minus_base_rate_ci":[-0.0014,0.0026]},"model_field_known":{"brier":0.1272,"log_loss":0.4065,"auc":0.7724,"mean_p":0.2075,"brier_ci":[0.1204,0.1334],"auc_ci":[0.7612,0.7833],"brier_minus_base_rate":-0.0375,"brier_minus_base_rate_ci":[-0.043,-0.0337]},"base_rate":{"brier":0.1647,"log_loss":0.5113,"auc":0.5,"mean_p":0.2054,"brier_ci":[0.1571,0.1747],"auc_ci":[0.5,0.5]},"one_over_predicted_n":{"brier":0.154,"log_loss":0.4774,"auc":0.7147,"mean_p":0.1528,"brier_ci":[0.146,0.1648],"auc_ci":[0.7011,0.7286],"brier_minus_base_rate":-0.0107,"brier_minus_base_rate_ci":[-0.0123,-0.0095]},"one_over_true_n":{"brier":0.1272,"log_loss":0.4065,"auc":0.7724,"mean_p":0.2073,"brier_ci":[0.1204,0.1334],"auc_ci":[0.7611,0.7832],"brier_minus_base_rate":-0.0375,"brier_minus_base_rate_ci":[-0.043,-0.0337]}},"n_boot":200,"plumbing_hvac":{"n_contracts":136,"n_bids":445,"model":{"brier":0.2254,"log_loss":0.6596,"auc":0.7177,"mean_p":0.1372},"base_rate":{"brier":0.2223,"log_loss":0.6434,"auc":0.5,"mean_p":0.2054},"one_over_true_n":{"brier":0.1539,"log_loss":0.4687,"auc":0.7792,"mean_p":0.3056}}},{"test_year":2023,"train_years":[2013,2022],"train_contracts":2866,"n_bids":2893,"n_contracts":719,"win_rate":0.24887659868648462,"methods":{"model":{"brier":0.1753,"log_loss":0.529,"auc":0.6809,"mean_p":0.2071,"brier_ci":[0.1669,0.1837],"auc_ci":[0.6633,0.6972],"brier_minus_base_rate":-0.0135,"brier_minus_base_rate_ci":[-0.0154,-0.0113]},"model_field_known":{"brier":0.1442,"log_loss":0.4485,"auc":0.7645,"mean_p":0.2506,"brier_ci":[0.1382,0.1505],"auc_ci":[0.7512,0.7738],"brier_minus_base_rate":-0.0446,"brier_minus_base_rate_ci":[-0.0499,-0.0395]},"base_rate":{"brier":0.1888,"log_loss":0.5665,"auc":0.5,"mean_p":0.206,"brier_ci":[0.1803,0.1976],"auc_ci":[0.5,0.5]},"one_over_predicted_n":{"brier":0.1755,"log_loss":0.5297,"auc":0.6809,"mean_p":0.2048,"brier_ci":[0.1671,0.184],"auc_ci":[0.6633,0.6972],"brier_minus_base_rate":-0.0133,"brier_minus_base_rate_ci":[-0.0151,-0.0111]},"one_over_true_n":{"brier":0.1442,"log_loss":0.4484,"auc":0.7646,"mean_p":0.2485,"brier_ci":[0.1382,0.1505],"auc_ci":[0.7516,0.7737],"brier_minus_base_rate":-0.0446,"brier_minus_base_rate_ci":[-0.0499,-0.0395]}},"n_boot":200,"plumbing_hvac":{"n_contracts":163,"n_bids":484,"model":{"brier":0.2174,"log_loss":0.6249,"auc":0.6471,"mean_p":0.2791},"base_rate":{"brier":0.2417,"log_loss":0.6879,"auc":0.5,"mean_p":0.206},"one_over_true_n":{"brier":0.1684,"log_loss":0.5023,"auc":0.7566,"mean_p":0.3368}}},{"test_year":2024,"train_years":[2013,2023],"train_contracts":3585,"n_bids":4062,"n_contracts":809,"win_rate":0.1996553421959626,"methods":{"model":{"brier":0.153,"log_loss":0.4775,"auc":0.7021,"mean_p":0.2755,"brier_ci":[0.1451,0.1603],"auc_ci":[0.6848,0.7209],"brier_minus_base_rate":-0.007,"brier_minus_base_rate_ci":[-0.0099,-0.0043]},"model_field_known":{"brier":0.1268,"log_loss":0.404,"auc":0.774,"mean_p":0.2004,"brier_ci":[0.1197,0.1333],"auc_ci":[0.76,0.7848],"brier_minus_base_rate":-0.0332,"brier_minus_base_rate_ci":[-0.0363,-0.0298]},"base_rate":{"brier":0.16,"log_loss":0.5005,"auc":0.5,"mean_p":0.2133,"brier_ci":[0.1503,0.1664],"auc_ci":[0.5,0.5]},"one_over_predicted_n":{"brier":0.1481,"log_loss":0.4632,"auc":0.7021,"mean_p":0.2275,"brier_ci":[0.1395,0.1554],"auc_ci":[0.6848,0.7209],"brier_minus_base_rate":-0.0119,"brier_minus_base_rate_ci":[-0.014,-0.0097]},"one_over_true_n":{"brier":0.1268,"log_loss":0.4039,"auc":0.7734,"mean_p":0.1992,"brier_ci":[0.1197,0.1332],"auc_ci":[0.7593,0.7844],"brier_minus_base_rate":-0.0332,"brier_minus_base_rate_ci":[-0.0363,-0.0298]}},"n_boot":200,"plumbing_hvac":{"n_contracts":187,"n_bids":600,"model":{"brier":0.2133,"log_loss":0.6173,"auc":0.6303,"mean_p":0.3859},"base_rate":{"brier":0.2242,"log_loss":0.6467,"auc":0.5,"mean_p":0.2133},"one_over_true_n":{"brier":0.1706,"log_loss":0.512,"auc":0.729,"mean_p":0.3117}}},{"test_year":2025,"train_years":[2013,2024],"train_contracts":4394,"n_bids":4573,"n_contracts":768,"win_rate":0.16816094467526788,"methods":{"model":{"brier":0.1293,"log_loss":0.4152,"auc":0.7146,"mean_p":0.1799,"brier_ci":[0.1236,0.1373],"auc_ci":[0.6976,0.7281],"brier_minus_base_rate":-0.0124,"brier_minus_base_rate_ci":[-0.0137,-0.0108]},"model_field_known":{"brier":0.1126,"log_loss":0.3681,"auc":0.7743,"mean_p":0.1687,"brier_ci":[0.1078,0.1192],"auc_ci":[0.7634,0.783],"brier_minus_base_rate":-0.0291,"brier_minus_base_rate_ci":[-0.0318,-0.0265]},"base_rate":{"brier":0.1417,"log_loss":0.4587,"auc":0.5,"mean_p":0.2107,"brier_ci":[0.1366,0.149],"auc_ci":[0.5,0.5]},"one_over_predicted_n":{"brier":0.1296,"log_loss":0.4165,"auc":0.7146,"mean_p":0.1925,"brier_ci":[0.124,0.1375],"auc_ci":[0.6976,0.7281],"brier_minus_base_rate":-0.0121,"brier_minus_base_rate_ci":[-0.0135,-0.0103]},"one_over_true_n":{"brier":0.1126,"log_loss":0.3681,"auc":0.7743,"mean_p":0.1679,"brier_ci":[0.1078,0.1191],"auc_ci":[0.7628,0.7829],"brier_minus_base_rate":-0.0291,"brier_minus_base_rate_ci":[-0.0319,-0.0266]}},"n_boot":200,"plumbing_hvac":{"n_contracts":172,"n_bids":572,"model":{"brier":0.2062,"log_loss":0.6013,"auc":0.5952,"mean_p":0.2811},"base_rate":{"brier":0.2184,"log_loss":0.6338,"auc":0.5,"mean_p":0.2107},"one_over_true_n":{"brier":0.1696,"log_loss":0.5102,"auc":0.7206,"mean_p":0.3007}}},{"test_year":2026,"train_years":[2013,2025],"train_contracts":5162,"n_bids":3155,"n_contracts":552,"win_rate":0.17496038034865294,"methods":{"model":{"brier":0.139,"log_loss":0.4443,"auc":0.673,"mean_p":0.1349,"brier_ci":[0.1299,0.1493],"auc_ci":[0.6509,0.6912],"brier_minus_base_rate":-0.0061,"brier_minus_base_rate_ci":[-0.0081,-0.0041]},"model_field_known":{"brier":0.1185,"log_loss":0.3849,"auc":0.7599,"mean_p":0.1751,"brier_ci":[0.1118,0.126],"auc_ci":[0.7478,0.7728],"brier_minus_base_rate":-0.0266,"brier_minus_base_rate_ci":[-0.03,-0.0239]},"base_rate":{"brier":0.1451,"log_loss":0.4662,"auc":0.5,"mean_p":0.203,"brier_ci":[0.1382,0.154],"auc_ci":[0.5,0.5]},"one_over_predicted_n":{"brier":0.1377,"log_loss":0.4383,"auc":0.673,"mean_p":0.1914,"brier_ci":[0.1297,0.1473],"auc_ci":[0.6509,0.6912],"brier_minus_base_rate":-0.0074,"brier_minus_base_rate_ci":[-0.0095,-0.0055]},"one_over_true_n":{"brier":0.1185,"log_loss":0.3849,"auc":0.7596,"mean_p":0.175,"brier_ci":[0.1118,0.126],"auc_ci":[0.7475,0.7727],"brier_minus_base_rate":-0.0266,"brier_minus_base_rate_ci":[-0.03,-0.0239]}},"n_boot":200,"plumbing_hvac":{"n_contracts":119,"n_bids":491,"model":{"brier":0.1796,"log_loss":0.5416,"auc":0.6278,"mean_p":0.2037},"base_rate":{"brier":0.1852,"log_loss":0.5584,"auc":0.5,"mean_p":0.203},"one_over_true_n":{"brier":0.1491,"log_loss":0.4631,"auc":0.7384,"mean_p":0.2424}}}],"pooled":{"n_bids":26517,"n_contracts":5226,"win_rate":0.1973828110268884,"methods":{"model":{"brier":0.151,"log_loss":0.4736,"auc":0.6594,"mean_p":0.1844,"brier_ci":[0.1482,0.1545],"auc_ci":[0.6522,0.6652],"brier_minus_base_rate":-0.0079,"brier_minus_base_rate_ci":[-0.0085,-0.0072]},"model_field_known":{"brier":0.1258,"log_loss":0.4025,"auc":0.7694,"mean_p":0.1983,"brier_ci":[0.1236,0.1284],"auc_ci":[0.7652,0.7737],"brier_minus_base_rate":-0.0331,"brier_minus_base_rate_ci":[-0.0344,-0.0318]},"base_rate":{"brier":0.1589,"log_loss":0.4981,"auc":0.5019,"mean_p":0.2162,"brier_ci":[0.1563,0.1619],"auc_ci":[0.4925,0.5108]},"one_over_true_n":{"brier":0.1258,"log_loss":0.4025,"auc":0.7694,"mean_p":0.1971,"brier_ci":[0.1236,0.1284],"auc_ci":[0.7652,0.7736],"brier_minus_base_rate":-0.0331,"brier_minus_base_rate_ci":[-0.0344,-0.0318]},"one_over_predicted_n":{"brier":0.1482,"log_loss":0.4641,"auc":0.6826,"mean_p":0.1995,"brier_ci":[0.1456,0.1515],"auc_ci":[0.6759,0.688],"brier_minus_base_rate":-0.0107,"brier_minus_base_rate_ci":[-0.0113,-0.0099]}},"n_boot":300,"test_years":[2018,2019,2020,2021,2022,2023,2024,2025,2026]},"note":"Each year scored by a model fitted only on contracts opened in earlier years (rolling origin). Base rate = that training window's win rate."},"low_bid":{"note":"Median absolute % error of the predicted median low bid vs the low bid actually filed, from three starting     points. Own price: each test bidder knows its own number; the target is the lowest OTHER bid (Model.field).     Engineer's estimate: tabs that print one, the estimate alone (no price of your own). Similar past jobs: the median     low bid of up to 9 similar earlier contracts (ptw.comps), the only reference when there is no estimate at all.","plumbing_hvac":{"own_price":{"n":1015,"median_ape":0.158,"p75_ape":0.305,"within_10pct":0.3379,"within_20pct":0.5941,"median_signed_pct":-0.0265,"coverage_p10_p90":0.8985,"naive_own_number":{"n":1015,"median_ape":0.1981,"p75_ape":0.4214,"within_10pct":0.3084,"within_20pct":0.5084,"median_signed_pct":-0.1373},"naive_own_times_ratio":{"n":1015,"median_ape":0.1578,"p75_ape":0.3012,"within_10pct":0.3458,"within_20pct":0.6108,"median_signed_pct":-0.0141,"ratio":0.875}},"engineer_estimate":{"n":40,"median_ape":0.2173,"p75_ape":0.3837,"within_10pct":0.225,"within_20pct":0.45,"median_signed_pct":0.0301,"coverage_p10_p90":0.875,"raw_estimate":{"n":40,"median_ape":0.2576,"p75_ape":0.416,"within_10pct":0.175,"within_20pct":0.425,"median_signed_pct":-0.1207},"note":"Model median of the lowest competing bid located from the printed estimate; raw_estimate = the estimate itself taken as the low bid."},"similar_jobs":{"n":174,"median_ape":0.6812,"p75_ape":1.0599,"within_10pct":0.0632,"within_20pct":0.1437,"median_signed_pct":0.11,"n_contracts_tried":243,"note":"No price of your own and no estimate: the median low bid of similar earlier contracts (title words, state, owner), only where 4+ matched."}},"all_trades":{"own_price":{"n":7591,"median_ape":0.1621,"p75_ape":0.3126,"within_10pct":0.3262,"within_20pct":0.5831,"median_signed_pct":-0.0264,"coverage_p10_p90":0.8797,"naive_own_number":{"n":7591,"median_ape":0.2737,"p75_ape":0.5352,"within_10pct":0.2134,"within_20pct":0.3936,"median_signed_pct":-0.2028},"naive_own_times_ratio":{"n":7591,"median_ape":0.1671,"p75_ape":0.3172,"within_10pct":0.3155,"within_20pct":0.5711,"median_signed_pct":-0.0258,"ratio":0.8183}},"engineer_estimate":{"n":273,"median_ape":0.1863,"p75_ape":0.3837,"within_10pct":0.293,"within_20pct":0.5238,"median_signed_pct":-0.0155,"coverage_p10_p90":0.8608,"raw_estimate":{"n":273,"median_ape":0.1762,"p75_ape":0.4072,"within_10pct":0.304,"within_20pct":0.5421,"median_signed_pct":-0.1219},"note":"Model median of the lowest competing bid located from the printed estimate; raw_estimate = the estimate itself taken as the low bid."},"similar_jobs":{"n":179,"median_ape":0.6583,"p75_ape":0.9965,"within_10pct":0.0615,"within_20pct":0.1453,"median_signed_pct":0.1171,"n_contracts_tried":254,"note":"No price of your own and no estimate: the median low bid of similar earlier contracts (title words, state, owner), only where 4+ matched."}}},"policy":{"method":"Pretend to be every test bidder, follow each policy, score against the bids actually filed. Cost is not in a  public tab, so each bidder's cost = its bid / markup at three markups. Profit = bid - cost on a win. Money left on  the table = second-lowest bid - our bid on a win. Bootstrap by contract for every interval.","markups":[1.08,1.12,1.2],"cap":0.35,"labels":{"normal":"Bid the number the firm actually bid","profit_max":"Most profit on average (cap 35% over cost)","shade":"Most profit within 5% of the firm's own number","target_20":"Highest price with a 20% chance","target_30":"Highest price with a 30% chance","target_40":"Highest price with a 40% chance"},"groups":{"plumbing_hvac":{"n_bids":1015,"n_contracts":243,"by_markup":{"1.08":{"normal":{"wins":243,"win_rate":0.2394,"profit":37190775.0,"money_left":71271518.0,"mean_p":0.2769,"median_markup":0.08,"profit_ci":[27801317.3552,47818844.4667],"win_rate_ci":[0.2233,0.2569]},"profit_max":{"wins":61,"win_rate":0.0601,"profit":24338517.0,"money_left":32591095.0,"mean_p":0.1279,"median_markup":0.35,"profit_ci":[14275397.9927,35782501.1407],"win_rate_ci":[0.0461,0.0745],"profit_vs_normal":-0.3456,"profit_vs_normal_ci":[-0.6024,-0.0645]},"shade":{"wins":173,"win_rate":0.1704,"profit":35741788.0,"money_left":54497952.0,"mean_p":0.2205,"median_markup":0.1322,"profit_ci":[27202842.2422,45905330.0087],"win_rate_ci":[0.1503,0.1889],"profit_vs_normal":-0.039,"profit_vs_normal_ci":[-0.2409,0.1821]},"target_20":{"wins":147,"win_rate":0.1448,"profit":36999673.0,"money_left":61390802.0,"mean_p":0.2053,"median_markup":0.1496,"profit_ci":[27388228.0228,48226633.94],"win_rate_ci":[0.1273,0.1642],"profit_vs_normal":-0.0051,"profit_vs_normal_ci":[-0.1095,0.1047]},"target_30":{"wins":258,"win_rate":0.2542,"profit":27288903.0,"money_left":90847117.0,"mean_p":0.2958,"median_markup":0.0623,"profit_ci":[20047651.3968,36497117.3915],"win_rate_ci":[0.2344,0.2751],"profit_vs_normal":-0.2662,"profit_vs_normal_ci":[-0.3715,-0.1653]},"target_40":{"wins":266,"win_rate":0.2621,"profit":30690640.0,"money_left":81788160.0,"mean_p":0.2968,"median_markup":0.08,"profit_ci":[23130122.867,39697610.3123],"win_rate_ci":[0.2414,0.2848],"profit_vs_normal":-0.1748,"profit_vs_normal_ci":[-0.31,-0.0671]}},"1.12":{"normal":{"wins":243,"win_rate":0.2394,"profit":53793800.0,"money_left":71271518.0,"mean_p":0.2769,"median_markup":0.12,"profit_ci":[40212619.746,69166542.8894],"win_rate_ci":[0.2233,0.2569]},"profit_max":{"wins":93,"win_rate":0.0916,"profit":44108358.0,"money_left":46177623.0,"mean_p":0.1604,"median_markup":0.3475,"profit_ci":[29449524.0394,59524048.7422],"win_rate_ci":[0.0755,0.109],"profit_vs_normal":-0.18,"profit_vs_normal_ci":[-0.353,-0.0072]},"shade":{"wins":179,"win_rate":0.1764,"profit":49414528.0,"money_left":61629768.0,"mean_p":0.2292,"median_markup":0.1741,"profit_ci":[37375828.5963,62889241.7264],"win_rate_ci":[0.1569,0.1955],"profit_vs_normal":-0.0814,"profit_vs_normal_ci":[-0.196,0.0337]},"target_20":{"wins":148,"win_rate":0.1458,"profit":50565381.0,"money_left":61493115.0,"mean_p":0.2074,"median_markup":0.1922,"profit_ci":[37233048.869,66241115.7611],"win_rate_ci":[0.1277,0.1645],"profit_vs_normal":-0.06,"profit_vs_normal_ci":[-0.1486,0.0273]},"target_30":{"wins":260,"win_rate":0.2562,"profit":48829796.0,"money_left":93369295.0,"mean_p":0.302,"median_markup":0.096,"profit_ci":[34822120.6769,66951523.2464],"win_rate_ci":[0.2356,0.2774],"profit_vs_normal":-0.0923,"profit_vs_normal_ci":[-0.197,0.0119]},"target_40":{"wins":364,"win_rate":0.3586,"profit":28520016.0,"money_left":122727428.0,"mean_p":0.3677,"median_markup":0.0388,"profit_ci":[21950505.6044,36909820.5963],"win_rate_ci":[0.3294,0.3891],"profit_vs_normal":-0.4698,"profit_vs_normal_ci":[-0.5551,-0.3799]}},"1.20":{"normal":{"wins":243,"win_rate":0.2394,"profit":83679244.0,"money_left":71271518.0,"mean_p":0.2769,"median_markup":0.2,"profit_ci":[62552964.0493,107592400.0501],"win_rate_ci":[0.2233,0.2569]},"profit_max":{"wins":189,"win_rate":0.1862,"profit":91435598.0,"money_left":80435366.0,"mean_p":0.2438,"median_markup":0.258,"profit_ci":[65640852.0337,122933528.7992],"win_rate_ci":[0.1654,0.2097],"profit_vs_normal":0.0927,"profit_vs_normal_ci":[-0.0327,0.2095]},"shade":{"wins":216,"win_rate":0.2128,"profit":93506588.0,"money_left":81441431.0,"mean_p":0.2682,"median_markup":0.2548,"profit_ci":[67198854.3987,125387462.8407],"win_rate_ci":[0.1924,0.2361],"profit_vs_normal":0.1174,"profit_vs_normal_ci":[-0.0106,0.2401]},"target_20":{"wins":161,"win_rate":0.1586,"profit":75674381.0,"money_left":62032566.0,"mean_p":0.216,"median_markup":0.2774,"profit_ci":[54761926.6499,99878409.8167],"win_rate_ci":[0.1404,0.1777],"profit_vs_normal":-0.0957,"profit_vs_normal_ci":[-0.1772,-0.0214]},"target_30":{"wins":261,"win_rate":0.2571,"profit":91774412.0,"money_left":93386333.0,"mean_p":0.3028,"median_markup":0.1743,"profit_ci":[64511709.5675,125601925.7935],"win_rate_ci":[0.2372,0.278],"profit_vs_normal":0.0967,"profit_vs_normal_ci":[-0.0266,0.2069]},"target_40":{"wins":394,"win_rate":0.3882,"profit":79128107.0,"money_left":132509853.0,"mean_p":0.4021,"median_markup":0.1018,"profit_ci":[57123472.8404,106153801.7876],"win_rate_ci":[0.3582,0.4208],"profit_vs_normal":-0.0544,"profit_vs_normal_ci":[-0.1655,0.0544]}}},"beats_normal_every_markup":{"profit_max":false,"shade":false,"target_20":false,"target_30":false,"target_40":false},"surely_beats_normal":{"profit_max":false,"shade":false,"target_20":false,"target_30":false,"target_40":false}},"all_trades":{"n_bids":7591,"n_contracts":1183,"by_markup":{"1.08":{"normal":{"wins":1182,"win_rate":0.1557,"profit":291222564.0,"money_left":453625148.0,"mean_p":0.1845,"median_markup":0.08,"profit_ci":[251854193.2958,335706122.8954],"win_rate_ci":[0.1484,0.1637]},"profit_max":{"wins":350,"win_rate":0.0461,"profit":233858738.0,"money_left":218691522.0,"mean_p":0.0833,"median_markup":0.35,"profit_ci":[189790288.1533,283302279.0965],"win_rate_ci":[0.0416,0.0509],"profit_vs_normal":-0.197,"profit_vs_normal_ci":[-0.2991,-0.0878]},"shade":{"wins":857,"win_rate":0.1129,"profit":291781367.0,"money_left":342379149.0,"mean_p":0.1419,"median_markup":0.1322,"profit_ci":[247572416.8344,341312461.2762],"win_rate_ci":[0.1055,0.1202],"profit_vs_normal":0.0019,"profit_vs_normal_ci":[-0.083,0.0843]},"target_20":{"wins":1039,"win_rate":0.1369,"profit":260035170.0,"money_left":513378920.0,"mean_p":0.1703,"median_markup":0.08,"profit_ci":[218148675.9705,317165615.4403],"win_rate_ci":[0.1293,0.145],"profit_vs_normal":-0.1071,"profit_vs_normal_ci":[-0.186,-0.009]},"target_30":{"wins":1263,"win_rate":0.1664,"profit":251222538.0,"money_left":545113018.0,"mean_p":0.1964,"median_markup":0.08,"profit_ci":[219228861.734,288704045.4271],"win_rate_ci":[0.1577,0.1759],"profit_vs_normal":-0.1374,"profit_vs_normal_ci":[-0.1984,-0.0816]},"target_40":{"wins":1290,"win_rate":0.1699,"profit":271623243.0,"money_left":495143446.0,"mean_p":0.1985,"median_markup":0.08,"profit_ci":[232888656.2239,316271826.2547],"win_rate_ci":[0.1614,0.1793],"profit_vs_normal":-0.0673,"profit_vs_normal_ci":[-0.0967,-0.0374]}},"1.12":{"normal":{"wins":1182,"win_rate":0.1557,"profit":421232637.0,"money_left":453625148.0,"mean_p":0.1845,"median_markup":0.12,"profit_ci":[364289101.0171,485574927.7594],"win_rate_ci":[0.1484,0.1637]},"profit_max":{"wins":645,"win_rate":0.085,"profit":432926298.0,"money_left":386339567.0,"mean_p":0.1233,"median_markup":0.1983,"profit_ci":[364673512.0269,514448776.4222],"win_rate_ci":[0.0793,0.0911],"profit_vs_normal":0.0278,"profit_vs_normal_ci":[-0.0476,0.109]},"shade":{"wins":972,"win_rate":0.128,"profit":451779096.0,"money_left":447071885.0,"mean_p":0.1598,"median_markup":0.1741,"profit_ci":[382912052.1523,530714609.1794],"win_rate_ci":[0.1206,0.1348],"profit_vs_normal":0.0725,"profit_vs_normal_ci":[0.0032,0.1482]},"target_20":{"wins":1272,"win_rate":0.1676,"profit":390973398.0,"money_left":656036913.0,"mean_p":0.2036,"median_markup":0.0876,"profit_ci":[315215943.5941,487479835.9779],"win_rate_ci":[0.1579,0.177],"profit_vs_normal":-0.0718,"profit_vs_normal_ci":[-0.1742,0.0619]},"target_30":{"wins":1377,"win_rate":0.1814,"profit":354333311.0,"money_left":685362518.0,"mean_p":0.2105,"median_markup":0.12,"profit_ci":[299848506.4793,414459372.3438],"win_rate_ci":[0.1717,0.1919],"profit_vs_normal":-0.1588,"profit_vs_normal_ci":[-0.2215,-0.0983]},"target_40":{"wins":1507,"win_rate":0.1985,"profit":339488995.0,"money_left":664090615.0,"mean_p":0.2265,"median_markup":0.12,"profit_ci":[292940468.7366,394904920.4021],"win_rate_ci":[0.1879,0.2104],"profit_vs_normal":-0.1941,"profit_vs_normal_ci":[-0.2718,-0.1206]}},"1.20":{"normal":{"wins":1182,"win_rate":0.1557,"profit":655250769.0,"money_left":453625148.0,"mean_p":0.1845,"median_markup":0.2,"profit_ci":[566671934.9155,755338776.5146],"win_rate_ci":[0.1484,0.1637]},"profit_max":{"wins":1234,"win_rate":0.1626,"profit":848446532.0,"money_left":692570556.0,"mean_p":0.2002,"median_markup":0.1683,"profit_ci":[684192940.2974,1032904343.9918],"win_rate_ci":[0.1537,0.172],"profit_vs_normal":0.2948,"profit_vs_normal_ci":[0.1641,0.4329]},"shade":{"wins":1278,"win_rate":0.1684,"profit":830046667.0,"money_left":637619003.0,"mean_p":0.2042,"median_markup":0.1683,"profit_ci":[675518961.0257,1017757107.2526],"win_rate_ci":[0.16,0.1778],"profit_vs_normal":0.2668,"profit_vs_normal_ci":[0.1467,0.3784]},"target_20":{"wins":1305,"win_rate":0.1719,"profit":803425326.0,"money_left":658055763.0,"mean_p":0.2076,"median_markup":0.1653,"profit_ci":[638991832.4848,992378895.4116],"win_rate_ci":[0.1626,0.1813],"profit_vs_normal":0.2261,"profit_vs_normal_ci":[0.0809,0.3896]},"target_30":{"wins":2001,"win_rate":0.2636,"profit":715402150.0,"money_left":1118653066.0,"mean_p":0.2961,"median_markup":0.0934,"profit_ci":[568501121.2591,887393746.0473],"win_rate_ci":[0.2513,0.2769],"profit_vs_normal":0.0918,"profit_vs_normal_ci":[-0.0275,0.2147]},"target_40":{"wins":1828,"win_rate":0.2408,"profit":591139015.0,"money_left":1037713037.0,"mean_p":0.2691,"median_markup":0.1535,"profit_ci":[475636358.2294,743209278.8157],"win_rate_ci":[0.2277,0.2565],"profit_vs_normal":-0.0978,"profit_vs_normal_ci":[-0.2032,0.0169]}}},"beats_normal_every_markup":{"profit_max":false,"shade":true,"target_20":false,"target_30":false,"target_40":false},"surely_beats_normal":{"profit_max":false,"shade":false,"target_20":false,"target_30":false,"target_40":false}}}},"replay":{"rule":"The 12 most recent plumbing, HVAC or mechanical contracts opened in 2025 to 2026 with 3 or more responsive bids, newest first. Chosen by date alone; misses stay in.","method":"The rule: the k most recent plumbing, HVAC or mechanical contracts opened in the holdout years (the last two calendar\nyears in the warehouse, as ptw.data.time_split picks them) with 3 or more responsive bids, newest first (ties by\ncontract key). Misses stay in.\n\nFor each one, the market model is fitted (ptw.fit.fit, the production fit, no bootstrap) on every contract opened\nBEFORE that opening date, then read through ptw.model.Model exactly as the app reads it:\n  - \"you\" is the bidder in the middle of the field by price (rank (N + 1) // 2), a fixed rule: its own number is its\n    normal price (plus the engineer's estimate when the tab prints one, which is public before bids open); the field\n    size is predicted, never given; its cost is taken as its bid / 1.12 (a public tab has no costs; 12% is the middle\n    markup the policy replay uses);\n  - the pricer's numbers for \"you\": the chance at its own number (the app's headline when the firm gives its number),\n    and the highest price at or above cost with a 30% chance (the app's default target), from the same win curve;\n  - the predicted lowest competing bid (10th, 50th, 90th percentile) and field size vs what was filed.","target":0.3,"assumed_markup":1.12,"contracts":[{"key":"worcester|WOR-8793-W7|","title":"Boiler Replacement - Vernon Hill School / WPS","agency":"City of Worcester (WPS)","city":"Worcester","url":"https://www.worcesterma.gov/finance/purchasing-bids/bids/8793-w7","owner":"worcester","owner_label":"City of Worcester","state":"MA","trade":"hvac","opened":"2026-09-11","n_bidders":4,"low_bid":133365.0,"second_bid":139350.0,"engineer_estimate":95000.0,"winner":"Aalanco Service Corp.","bidders":[{"bidder":"Aalanco Service Corp.","amount":133365.0,"rank":1,"won":true,"vs_low":0.0},{"bidder":"Royal Steam Heater Co.","amount":139350.0,"rank":2,"won":false,"vs_low":0.0449},{"bidder":"William F. Lynch Co., Inc.","amount":142500.0,"rank":3,"won":false,"vs_low":0.0685},{"bidder":"N & T Mechanical Contractors","amount":218751.0,"rank":4,"won":false,"vs_low":0.6402}],"you_index":1,"you":{"normal":139350.0,"p_normal":0.1712,"cost":124419.64285714284,"needed_vs_normal":-0.0429,"p_at_needed":0.2204,"target_bid":125415.0,"target_p":0.3032,"target_vs_normal":-0.1,"won_at_normal":false,"won_at_target":true,"money_left_at_target":7950.0,"profit_at_target":995.0,"lowest_other":133365.0,"low_p10":74125.94447284572,"low_p50":115011.34797491367,"low_p90":171041.43619897033,"low_in_band":true,"low_p50_ape":0.1376,"expected_bidders":4.33,"basis":"Bid spread from 86 hvac contracts in MA, 17 of them from City of Worcester. Market located from your own price and the engineer's estimate together (estimate offset and noise from 833 tabs that print one). Field size predicted from trade, state, county/city (worcester), owner (City of Worcester), contract size and year."},"curve":[{"bid":97545.0,"p":0.6753},{"bid":98938.5,"p":0.6579},{"bid":100332.0,"p":0.6401},{"bid":101725.5,"p":0.622},{"bid":103119.0,"p":0.6035},{"bid":104512.5,"p":0.5847},{"bid":105906.0,"p":0.5657},{"bid":107299.5,"p":0.5465},{"bid":108693.0,"p":0.5272},{"bid":110086.5,"p":0.5078},{"bid":111480.0,"p":0.4883},{"bid":112873.5,"p":0.4688},{"bid":114267.0,"p":0.4494},{"bid":115660.5,"p":0.4301},{"bid":117054.0,"p":0.4109},{"bid":118447.5,"p":0.392},{"bid":119841.0,"p":0.3734},{"bid":121234.5,"p":0.3552},{"bid":122628.0,"p":0.3374},{"bid":124021.5,"p":0.32},{"bid":125415.0,"p":0.3032},{"bid":126808.5,"p":0.2869},{"bid":128202.0,"p":0.2713},{"bid":129595.5,"p":0.2563},{"bid":130989.0,"p":0.242},{"bid":132382.5,"p":0.2284},{"bid":133776.0,"p":0.2155},{"bid":135169.5,"p":0.2033},{"bid":136563.0,"p":0.1919},{"bid":137956.5,"p":0.1812},{"bid":139350.0,"p":0.1712},{"bid":140743.5,"p":0.1619},{"bid":142137.0,"p":0.1533},{"bid":143530.5,"p":0.1453},{"bid":144924.0,"p":0.1379},{"bid":146317.5,"p":0.131},{"bid":147711.0,"p":0.1247},{"bid":149104.5,"p":0.1188},{"bid":150498.0,"p":0.1134},{"bid":151891.5,"p":0.1084},{"bid":153285.0,"p":0.1039},{"bid":154678.5,"p":0.0996},{"bid":156072.0,"p":0.0957},{"bid":157465.5,"p":0.0921},{"bid":158859.0,"p":0.0888},{"bid":160252.5,"p":0.0857},{"bid":161646.0,"p":0.0828},{"bid":163039.5,"p":0.0802},{"bid":164433.0,"p":0.0778},{"bid":165826.5,"p":0.0755},{"bid":167220.0,"p":0.0734},{"bid":168613.5,"p":0.0715},{"bid":170007.0,"p":0.0697},{"bid":171400.5,"p":0.068},{"bid":172794.0,"p":0.0664},{"bid":174187.5,"p":0.065},{"bid":175581.0,"p":0.0636},{"bid":176974.5,"p":0.0624},{"bid":178368.0,"p":0.0612},{"bid":179761.5,"p":0.0601},{"bid":181155.0,"p":0.0591}],"train_contracts":5696,"trained_through":"2026-09-10"},{"key":"nj_dpmc|T0694-00|","title":"SSP Restroom Renovations – NJDOT Cherry Hill Maintenance Yard, Cherry Hill, Camden County, NJ","agency":"New Jersey Division of Property Management and Construction","city":"Cherry Hill","url":"https://www.nj.gov/treasury/dpmc/Assets/Files/advertisements/project-construction-advertisements/T0694-00-BidResults.pdf","owner":"nj_dpmc","owner_label":"NJ DPMC","state":"NJ","trade":"plumbing","opened":"2026-09-03","n_bidders":5,"low_bid":1768770.0,"second_bid":1855000.0,"engineer_estimate":1108568.0,"winner":"Newport Construction Management","bidders":[{"bidder":"Newport Construction Management","amount":1768770.0,"rank":1,"won":true,"vs_low":0.0},{"bidder":"J.H. Williams Enterprises","amount":1855000.0,"rank":2,"won":false,"vs_low":0.0488},{"bidder":"Golden Crown Contractors","amount":1912000.0,"rank":3,"won":false,"vs_low":0.081},{"bidder":"Levy Construction","amount":1930600.0,"rank":4,"won":false,"vs_low":0.0915},{"bidder":"Imperial Construction & Electric","amount":1936000.0,"rank":5,"won":false,"vs_low":0.0945}],"you_index":2,"you":{"normal":1912000.0,"p_normal":0.0704,"cost":1707142.857142857,"needed_vs_normal":-0.0749,"p_at_needed":0.1359,"target_bid":null,"target_p":null,"target_vs_normal":null,"won_at_normal":false,"won_at_target":null,"money_left_at_target":null,"profit_at_target":null,"lowest_other":1768770.0,"low_p10":822494.1472489183,"low_p50":1413202.221713526,"low_p90":1919125.4863974466,"low_in_band":true,"low_p50_ape":0.201,"expected_bidders":6.16,"basis":"Bid spread from 12 plumbing contracts in NJ, 10 of them from NJ DPMC. Market located from your own price and the engineer's estimate together (estimate offset and noise from 830 tabs that print one). Field size predicted from trade, state, county/city (cherry hill), owner (NJ DPMC), contract size and year."},"curve":[{"bid":1338400.0,"p":0.5137},{"bid":1357520.0,"p":0.4949},{"bid":1376640.0,"p":0.476},{"bid":1395760.0,"p":0.4571},{"bid":1414880.0,"p":0.4382},{"bid":1434000.0,"p":0.4194},{"bid":1453120.0,"p":0.4006},{"bid":1472240.0,"p":0.3819},{"bid":1491360.0,"p":0.3633},{"bid":1510480.0,"p":0.3449},{"bid":1529600.0,"p":0.3267},{"bid":1548720.0,"p":0.3088},{"bid":1567840.0,"p":0.2911},{"bid":1586960.0,"p":0.2737},{"bid":1606080.0,"p":0.2567},{"bid":1625200.0,"p":0.2402},{"bid":1644320.0,"p":0.2241},{"bid":1663440.0,"p":0.2086},{"bid":1682560.0,"p":0.1937},{"bid":1701680.0,"p":0.1795},{"bid":1720800.0,"p":0.1659},{"bid":1739920.0,"p":0.153},{"bid":1759040.0,"p":0.1408},{"bid":1778160.0,"p":0.1293},{"bid":1797280.0,"p":0.1186},{"bid":1816400.0,"p":0.1087},{"bid":1835520.0,"p":0.0996},{"bid":1854640.0,"p":0.0912},{"bid":1873760.0,"p":0.0836},{"bid":1892880.0,"p":0.0767},{"bid":1912000.0,"p":0.0704},{"bid":1931120.0,"p":0.0648},{"bid":1950240.0,"p":0.0598},{"bid":1969360.0,"p":0.0554},{"bid":1988480.0,"p":0.0514},{"bid":2007600.0,"p":0.0478},{"bid":2026720.0,"p":0.0446},{"bid":2045840.0,"p":0.0418},{"bid":2064960.0,"p":0.0393},{"bid":2084080.0,"p":0.037},{"bid":2103200.0,"p":0.0349},{"bid":2122320.0,"p":0.0331},{"bid":2141440.0,"p":0.0315},{"bid":2160560.0,"p":0.03},{"bid":2179680.0,"p":0.0287},{"bid":2198800.0,"p":0.0275},{"bid":2217920.0,"p":0.0264},{"bid":2237040.0,"p":0.0254},{"bid":2256160.0,"p":0.0245},{"bid":2275280.0,"p":0.0237},{"bid":2294400.0,"p":0.0229},{"bid":2313520.0,"p":0.0222},{"bid":2332640.0,"p":0.0216},{"bid":2351760.0,"p":0.0211},{"bid":2370880.0,"p":0.0205},{"bid":2390000.0,"p":0.0201},{"bid":2409120.0,"p":0.0196},{"bid":2428240.0,"p":0.0192},{"bid":2447360.0,"p":0.0189},{"bid":2466480.0,"p":0.0185},{"bid":2485600.0,"p":0.0182}],"train_contracts":5689,"trained_through":"2026-09-02"},{"key":"sucf|211057-00|Maritime","title":"Replace Steam Boilers 3 & 4 - Physical Plant","agency":"State University Construction Fund","city":null,"url":"https://appls.sucf.suny.edu/public/BidReports/BidOpeningResultsRpt.cfm?fileType=pdf","owner":"sucf","owner_label":"State University Construction Fund","state":"NY","trade":"hvac","opened":"2026-09-02","n_bidders":17,"low_bid":6988300.0,"second_bid":7311000.0,"engineer_estimate":null,"winner":"Dynamic US, Inc.","bidders":[{"bidder":"Dynamic US, Inc.","amount":6988300.0,"rank":1,"won":true,"vs_low":0.0},{"bidder":"Boilermatic Welding Industries, Inc.","amount":7311000.0,"rank":2,"won":false,"vs_low":0.0462},{"bidder":"AWL Industries, Inc.","amount":8874200.0,"rank":3,"won":false,"vs_low":0.2699},{"bidder":"Kordun Construction Corp.","amount":8921000.0,"rank":4,"won":false,"vs_low":0.2766},{"bidder":"All State Construction, Inc. dba All State Boiler & Construction, Inc.","amount":8988200.0,"rank":5,"won":false,"vs_low":0.2862},{"bidder":"Maric Mechanical, Inc.","amount":8995000.0,"rank":6,"won":false,"vs_low":0.2872},{"bidder":"C.D.E. Air Conditioning Co., Inc.","amount":9130591.0,"rank":7,"won":false,"vs_low":0.3066},{"bidder":"BOND Civil & Utility Construction, Inc.","amount":9407000.0,"rank":8,"won":false,"vs_low":0.3461},{"bidder":"Infinity Contracting Services, Corp.","amount":9956200.0,"rank":9,"won":false,"vs_low":0.4247},{"bidder":"Richards Plumbing and Heating Co., Inc.","amount":10204000.0,"rank":10,"won":false,"vs_low":0.4602},{"bidder":"Tameer, Inc.","amount":10269817.0,"rank":11,"won":false,"vs_low":0.4696},{"bidder":"Central Mechanical Systems, Inc.","amount":10313000.0,"rank":12,"won":false,"vs_low":0.4758},{"bidder":"Interstate Mechanical Services, Inc.","amount":10459500.0,"rank":13,"won":false,"vs_low":0.4967},{"bidder":"Rocon Corp.","amount":10528000.0,"rank":14,"won":false,"vs_low":0.5065},{"bidder":"Maric Plumbing & Heating, Inc.","amount":11497400.0,"rank":15,"won":false,"vs_low":0.6452},{"bidder":"A.K.S. International, Inc.","amount":11830200.0,"rank":16,"won":false,"vs_low":0.6929},{"bidder":"ACS System Associates, Inc.","amount":12335200.0,"rank":17,"won":false,"vs_low":0.7651}],"you_index":8,"you":{"normal":9956200.0,"p_normal":0.2076,"cost":8889464.285714285,"needed_vs_normal":-0.2981,"p_at_needed":0.8416,"target_bid":9458390.0,"target_p":0.31,"target_vs_normal":-0.05,"won_at_normal":false,"won_at_target":false,"money_left_at_target":null,"profit_at_target":null,"lowest_other":6988300.0,"low_p10":6550341.818830228,"low_p50":8948272.279413765,"low_p90":11515160.901987858,"low_in_band":true,"low_p50_ape":0.2805,"expected_bidders":5.3,"basis":"Bid spread from 325 hvac contracts in NY, 3 of them from State University Construction Fund. Reference is your own normal price for this job. Field size predicted from trade, state, owner (State University Construction Fund), contract size and year."},"curve":[{"bid":6969340.0,"p":0.8431},{"bid":7068902.0,"p":0.8307},{"bid":7168464.0,"p":0.8175},{"bid":7268026.0,"p":0.8034},{"bid":7367588.0,"p":0.7884},{"bid":7467150.0,"p":0.7726},{"bid":7566712.0,"p":0.7558},{"bid":7666274.0,"p":0.7381},{"bid":7765836.0,"p":0.7196},{"bid":7865398.0,"p":0.7001},{"bid":7964960.0,"p":0.6798},{"bid":8064522.0,"p":0.6586},{"bid":8164084.0,"p":0.6366},{"bid":8263646.0,"p":0.6137},{"bid":8363208.0,"p":0.59},{"bid":8462770.0,"p":0.5656},{"bid":8562332.0,"p":0.5406},{"bid":8661894.0,"p":0.5151},{"bid":8761456.0,"p":0.4892},{"bid":8861018.0,"p":0.4631},{"bid":8960580.0,"p":0.4368},{"bid":9060142.0,"p":0.4106},{"bid":9159704.0,"p":0.3846},{"bid":9259266.0,"p":0.359},{"bid":9358828.0,"p":0.3341},{"bid":9458390.0,"p":0.31},{"bid":9557952.0,"p":0.2869},{"bid":9657514.0,"p":0.2649},{"bid":9757076.0,"p":0.2444},{"bid":9856638.0,"p":0.2252},{"bid":9956200.0,"p":0.2076},{"bid":10055762.0,"p":0.1915},{"bid":10155324.0,"p":0.1768},{"bid":10254886.0,"p":0.1635},{"bid":10354448.0,"p":0.1514},{"bid":10454010.0,"p":0.1405},{"bid":10553572.0,"p":0.1306},{"bid":10653134.0,"p":0.1217},{"bid":10752696.0,"p":0.1137},{"bid":10852258.0,"p":0.1065},{"bid":10951820.0,"p":0.0999},{"bid":11051382.0,"p":0.094},{"bid":11150944.0,"p":0.0886},{"bid":11250506.0,"p":0.0837},{"bid":11350068.0,"p":0.0793},{"bid":11449630.0,"p":0.0753},{"bid":11549192.0,"p":0.0716},{"bid":11648754.0,"p":0.0682},{"bid":11748316.0,"p":0.0652},{"bid":11847878.0,"p":0.0624},{"bid":11947440.0,"p":0.0598},{"bid":12047002.0,"p":0.0575},{"bid":12146564.0,"p":0.0553},{"bid":12246126.0,"p":0.0533},{"bid":12345688.0,"p":0.0515},{"bid":12445250.0,"p":0.0498},{"bid":12544812.0,"p":0.0482},{"bid":12644374.0,"p":0.0468},{"bid":12743936.0,"p":0.0454},{"bid":12843498.0,"p":0.0442},{"bid":12943060.0,"p":0.043}],"train_contracts":5682,"trained_through":"2026-09-01"},{"key":"sucf|291134-01|Purchase","title":"Renovate Mechanical Systems Neuberger Museum","agency":"State University Construction Fund","city":null,"url":"https://appls.sucf.suny.edu/public/BidReports/BidOpeningResultsRpt.cfm?fileType=pdf","owner":"sucf","owner_label":"State University Construction Fund","state":"NY","trade":"hvac","opened":"2026-09-02","n_bidders":5,"low_bid":7149959.0,"second_bid":7588150.0,"engineer_estimate":null,"winner":"S&O Construction Services, Inc.","bidders":[{"bidder":"S&O Construction Services, Inc.","amount":7149959.0,"rank":1,"won":true,"vs_low":0.0},{"bidder":"Dynamic US, Inc.","amount":7588150.0,"rank":2,"won":false,"vs_low":0.0613},{"bidder":"Maric Plumbing & Heating, Inc.","amount":7962650.0,"rank":3,"won":false,"vs_low":0.1137},{"bidder":"All State Construction, Inc. dba All State Boiler & Construction, Inc.","amount":8745450.0,"rank":4,"won":false,"vs_low":0.2231},{"bidder":"Pierotti Corp","amount":9637450.0,"rank":5,"won":false,"vs_low":0.3479}],"you_index":2,"you":{"normal":7962650.0,"p_normal":0.2115,"cost":7109508.928571428,"needed_vs_normal":-0.1021,"p_at_needed":0.4405,"target_bid":7564517.5,"target_p":0.3105,"target_vs_normal":-0.05,"won_at_normal":false,"won_at_target":false,"money_left_at_target":null,"profit_at_target":null,"lowest_other":7149959.0,"low_p10":5177324.086452191,"low_p50":7144233.761670433,"low_p90":9308899.592847487,"low_in_band":true,"low_p50_ape":0.0008,"expected_bidders":5.21,"basis":"Bid spread from 325 hvac contracts in NY, 3 of them from State University Construction Fund. Reference is your own normal price for this job. Field size predicted from trade, state, owner (State University Construction Fund), contract size and year."},"curve":[{"bid":5573855.0,"p":0.8349},{"bid":5653481.5,"p":0.8222},{"bid":5733108.0,"p":0.8087},{"bid":5812734.5,"p":0.7944},{"bid":5892361.0,"p":0.7793},{"bid":5971987.5,"p":0.7633},{"bid":6051614.0,"p":0.7465},{"bid":6131240.5,"p":0.7288},{"bid":6210867.0,"p":0.7103},{"bid":6290493.5,"p":0.6909},{"bid":6370120.0,"p":0.6707},{"bid":6449746.5,"p":0.6497},{"bid":6529373.0,"p":0.628},{"bid":6608999.5,"p":0.6054},{"bid":6688626.0,"p":0.5822},{"bid":6768252.5,"p":0.5583},{"bid":6847879.0,"p":0.5338},{"bid":6927505.5,"p":0.509},{"bid":7007132.0,"p":0.4838},{"bid":7086758.5,"p":0.4584},{"bid":7166385.0,"p":0.433},{"bid":7246011.5,"p":0.4076},{"bid":7325638.0,"p":0.3825},{"bid":7405264.5,"p":0.3578},{"bid":7484891.0,"p":0.3338},{"bid":7564517.5,"p":0.3105},{"bid":7644144.0,"p":0.2882},{"bid":7723770.5,"p":0.2671},{"bid":7803397.0,"p":0.2472},{"bid":7883023.5,"p":0.2286},{"bid":7962650.0,"p":0.2115},{"bid":8042276.5,"p":0.1958},{"bid":8121903.0,"p":0.1814},{"bid":8201529.5,"p":0.1683},{"bid":8281156.0,"p":0.1563},{"bid":8360782.5,"p":0.1455},{"bid":8440409.0,"p":0.1357},{"bid":8520035.5,"p":0.1268},{"bid":8599662.0,"p":0.1188},{"bid":8679288.5,"p":0.1115},{"bid":8758915.0,"p":0.1049},{"bid":8838541.5,"p":0.0989},{"bid":8918168.0,"p":0.0934},{"bid":8997794.5,"p":0.0884},{"bid":9077421.0,"p":0.0839},{"bid":9157047.5,"p":0.0797},{"bid":9236674.0,"p":0.076},{"bid":9316300.5,"p":0.0725},{"bid":9395927.0,"p":0.0693},{"bid":9475553.5,"p":0.0664},{"bid":9555180.0,"p":0.0638},{"bid":9634806.5,"p":0.0613},{"bid":9714433.0,"p":0.059},{"bid":9794059.5,"p":0.0569},{"bid":9873686.0,"p":0.055},{"bid":9953312.5,"p":0.0532},{"bid":10032939.0,"p":0.0516},{"bid":10112565.5,"p":0.0501},{"bid":10192192.0,"p":0.0487},{"bid":10271818.5,"p":0.0473},{"bid":10351445.0,"p":0.0461}],"train_contracts":5682,"trained_through":"2026-09-01"},{"key":"dasny|3714009999/3714001321|3714001321","title":"CUNY New York City College of Technology Namm Building Hot Water Perimeter Heating System & Associated Asbestos Abatement","agency":"Dormitory Authority of the State of New York","city":"Brooklyn","url":"https://www.dasny.org/opportunities/rfps-bids/2026/cuny-new-york-city-college-technology-namm-building-hot-water-0","owner":"dasny","owner_label":"DASNY","state":"NY","trade":"hvac","opened":"2026-08-27","n_bidders":11,"low_bid":21440000.0,"second_bid":22434000.0,"engineer_estimate":18750000.0,"winner":"Dynamic US, Inc.","bidders":[{"bidder":"Dynamic US, Inc.","amount":21440000.0,"rank":1,"won":true,"vs_low":0.0},{"bidder":"GDS Mechanical, Inc.","amount":22434000.0,"rank":2,"won":false,"vs_low":0.0464},{"bidder":"AWL Industries, Inc.","amount":23722000.0,"rank":3,"won":false,"vs_low":0.1064},{"bidder":"Maric Plumbing & Heating, Inc.","amount":24000000.0,"rank":4,"won":false,"vs_low":0.1194},{"bidder":"Vital Plumbing, Inc.","amount":24955555.0,"rank":5,"won":false,"vs_low":0.164},{"bidder":"Maric Mechanical, Inc.","amount":25799000.0,"rank":6,"won":false,"vs_low":0.2033},{"bidder":"ACS System Associates, Inc.","amount":25995000.0,"rank":7,"won":false,"vs_low":0.2125},{"bidder":"Infinity Contracting Services, Corp.","amount":26922000.0,"rank":8,"won":false,"vs_low":0.2557},{"bidder":"Gem Quality Corporation","amount":26991689.0,"rank":9,"won":false,"vs_low":0.2589},{"bidder":"Lima Contractors Corp","amount":27222000.0,"rank":10,"won":false,"vs_low":0.2697},{"bidder":"Zaman Construction Corp","amount":28830000.0,"rank":11,"won":false,"vs_low":0.3447}],"you_index":5,"you":{"normal":25799000.0,"p_normal":0.0689,"cost":23034821.428571425,"needed_vs_normal":-0.169,"p_at_needed":0.4687,"target_bid":null,"target_p":null,"target_vs_normal":null,"won_at_normal":false,"won_at_target":null,"money_left_at_target":null,"profit_at_target":null,"lowest_other":21440000.0,"low_p10":16178338.017576436,"low_p50":21552845.071512643,"low_p90":25721188.15761144,"low_in_band":true,"low_p50_ape":0.0053,"expected_bidders":10.04,"basis":"Bid spread from 324 hvac contracts in NY, 54 of them from DASNY. Market located from your own price and the engineer's estimate together (estimate offset and noise from 827 tabs that print one). Field size predicted from trade, state, county/city (brooklyn), owner (DASNY), contract size and year."},"curve":[{"bid":18059300.0,"p":0.7964},{"bid":18317290.0,"p":0.7779},{"bid":18575280.0,"p":0.7582},{"bid":18833270.0,"p":0.7373},{"bid":19091260.0,"p":0.7151},{"bid":19349250.0,"p":0.6918},{"bid":19607240.0,"p":0.6674},{"bid":19865230.0,"p":0.6418},{"bid":20123220.0,"p":0.6153},{"bid":20381210.0,"p":0.5877},{"bid":20639200.0,"p":0.5592},{"bid":20897190.0,"p":0.5299},{"bid":21155180.0,"p":0.4999},{"bid":21413170.0,"p":0.4693},{"bid":21671160.0,"p":0.4385},{"bid":21929150.0,"p":0.4076},{"bid":22187140.0,"p":0.377},{"bid":22445130.0,"p":0.3466},{"bid":22703120.0,"p":0.3167},{"bid":22961110.0,"p":0.2875},{"bid":23219100.0,"p":0.2593},{"bid":23477090.0,"p":0.2324},{"bid":23735080.0,"p":0.207},{"bid":23993070.0,"p":0.1832},{"bid":24251060.0,"p":0.1612},{"bid":24509050.0,"p":0.141},{"bid":24767040.0,"p":0.1229},{"bid":25025030.0,"p":0.1067},{"bid":25283020.0,"p":0.0923},{"bid":25541010.0,"p":0.0798},{"bid":25799000.0,"p":0.0689},{"bid":26056990.0,"p":0.0595},{"bid":26314980.0,"p":0.0514},{"bid":26572970.0,"p":0.0445},{"bid":26830960.0,"p":0.0387},{"bid":27088950.0,"p":0.0337},{"bid":27346940.0,"p":0.0295},{"bid":27604930.0,"p":0.0259},{"bid":27862920.0,"p":0.0228},{"bid":28120910.0,"p":0.0202},{"bid":28378900.0,"p":0.0179},{"bid":28636890.0,"p":0.016},{"bid":28894880.0,"p":0.0144},{"bid":29152870.0,"p":0.0129},{"bid":29410860.0,"p":0.0117},{"bid":29668850.0,"p":0.0106},{"bid":29926840.0,"p":0.0097},{"bid":30184830.0,"p":0.0089},{"bid":30442820.0,"p":0.0082},{"bid":30700810.0,"p":0.0076},{"bid":30958800.0,"p":0.007},{"bid":31216790.0,"p":0.0066},{"bid":31474780.0,"p":0.0062},{"bid":31732770.0,"p":0.0058},{"bid":31990760.0,"p":0.0055},{"bid":32248750.0,"p":0.0052},{"bid":32506740.0,"p":0.0049},{"bid":32764730.0,"p":0.0047},{"bid":33022720.0,"p":0.0045},{"bid":33280710.0,"p":0.0043},{"bid":33538700.0,"p":0.0042}],"train_contracts":5679,"trained_through":"2026-08-26"},{"key":"nj_dpmc|M1642-00|","title":"Chiller Replacement and Associated Repairs – Joseph Kohn Training Center, New Brunswick, Middlesex County, NJ","agency":"New Jersey Division of Property Management and Construction","city":"New Brunswick","url":"https://www.nj.gov/treasury/dpmc/Assets/Files/advertisements/project-construction-advertisements/M1642-00-BidResults.pdf","owner":"nj_dpmc","owner_label":"NJ DPMC","state":"NJ","trade":"hvac","opened":"2026-08-27","n_bidders":10,"low_bid":572000.0,"second_bid":863000.0,"engineer_estimate":911411.0,"winner":"Hanna's Mechanical Contractors, Inc.","bidders":[{"bidder":"Hanna's Mechanical Contractors, Inc.","amount":572000.0,"rank":1,"won":true,"vs_low":0.0},{"bidder":"Gaudelli Brothers, Inc.","amount":863000.0,"rank":2,"won":false,"vs_low":0.5087},{"bidder":"GBI, Inc. T/A Thermal Piping","amount":878000.0,"rank":3,"won":false,"vs_low":0.535},{"bidder":"Santorini Construction, Inc.","amount":895000.0,"rank":4,"won":false,"vs_low":0.5647},{"bidder":"Unitemp Mechanical Degrees","amount":896000.0,"rank":5,"won":false,"vs_low":0.5664},{"bidder":"SRJ Mechanical, LLC","amount":903000.0,"rank":6,"won":false,"vs_low":0.5787},{"bidder":"Phillips-Glenwood Construction, Inc.","amount":975757.0,"rank":7,"won":false,"vs_low":0.7059},{"bidder":"T.M. Brennan Service, Inc.","amount":976000.0,"rank":8,"won":false,"vs_low":0.7063},{"bidder":"LGB Mechanical","amount":998000.0,"rank":9,"won":false,"vs_low":0.7448},{"bidder":"Liberty Mechanical Contractors, Inc.","amount":1047000.0,"rank":10,"won":false,"vs_low":0.8304}],"you_index":4,"you":{"normal":896000.0,"p_normal":0.1753,"cost":799999.9999999999,"needed_vs_normal":-0.3616,"p_at_needed":0.9225,"target_bid":833280.0,"target_p":0.3213,"target_vs_normal":-0.07,"won_at_normal":false,"won_at_target":false,"money_left_at_target":null,"profit_at_target":null,"lowest_other":572000.0,"low_p10":595641.577541485,"low_p50":789819.4596088089,"low_p90":990859.8349033965,"low_in_band":false,"low_p50_ape":0.3808,"expected_bidders":5.99,"basis":"Bid spread from 24 hvac contracts in NJ, 23 of them from NJ DPMC. Market located from your own price and the engineer's estimate together (estimate offset and noise from 827 tabs that print one). Field size predicted from trade, state, county/city (new brunswick), owner (NJ DPMC), contract size and year."},"curve":[{"bid":627200.0,"p":0.8566},{"bid":636160.0,"p":0.8428},{"bid":645120.0,"p":0.8279},{"bid":654080.0,"p":0.8119},{"bid":663040.0,"p":0.7949},{"bid":672000.0,"p":0.7768},{"bid":680960.0,"p":0.7576},{"bid":689920.0,"p":0.7374},{"bid":698880.0,"p":0.716},{"bid":707840.0,"p":0.6937},{"bid":716800.0,"p":0.6703},{"bid":725760.0,"p":0.646},{"bid":734720.0,"p":0.6208},{"bid":743680.0,"p":0.5947},{"bid":752640.0,"p":0.568},{"bid":761600.0,"p":0.5407},{"bid":770560.0,"p":0.5129},{"bid":779520.0,"p":0.485},{"bid":788480.0,"p":0.4569},{"bid":797440.0,"p":0.4289},{"bid":806400.0,"p":0.4011},{"bid":815360.0,"p":0.3738},{"bid":824320.0,"p":0.3471},{"bid":833280.0,"p":0.3213},{"bid":842240.0,"p":0.2964},{"bid":851200.0,"p":0.2727},{"bid":860160.0,"p":0.2504},{"bid":869120.0,"p":0.2294},{"bid":878080.0,"p":0.2098},{"bid":887040.0,"p":0.1918},{"bid":896000.0,"p":0.1753},{"bid":904960.0,"p":0.1602},{"bid":913920.0,"p":0.1465},{"bid":922880.0,"p":0.134},{"bid":931840.0,"p":0.1228},{"bid":940800.0,"p":0.1127},{"bid":949760.0,"p":0.1035},{"bid":958720.0,"p":0.0953},{"bid":967680.0,"p":0.088},{"bid":976640.0,"p":0.0813},{"bid":985600.0,"p":0.0754},{"bid":994560.0,"p":0.07},{"bid":1003520.0,"p":0.0652},{"bid":1012480.0,"p":0.0609},{"bid":1021440.0,"p":0.0569},{"bid":1030400.0,"p":0.0534},{"bid":1039360.0,"p":0.0502},{"bid":1048320.0,"p":0.0474},{"bid":1057280.0,"p":0.0448},{"bid":1066240.0,"p":0.0424},{"bid":1075200.0,"p":0.0403},{"bid":1084160.0,"p":0.0383},{"bid":1093120.0,"p":0.0365},{"bid":1102080.0,"p":0.0349},{"bid":1111040.0,"p":0.0335},{"bid":1120000.0,"p":0.0321},{"bid":1128960.0,"p":0.0309},{"bid":1137920.0,"p":0.0298},{"bid":1146880.0,"p":0.0288},{"bid":1155840.0,"p":0.0278},{"bid":1164800.0,"p":0.027}],"train_contracts":5679,"trained_through":"2026-08-26"},{"key":"nyogs_all|47128-H|H","title":"Replace Fan Coil Units, Building 80, Phase II","agency":"NYS Office of General Services","city":"Dix Hills","url":"https://online2.ogs.ny.gov/dnc/contractorConsultant/esb/EsbBidResultsDetail.ASP?Project=47128#47128H","owner":"nyogs_all","owner_label":"NYS Office of General Services","state":"NY","trade":"hvac","opened":"2026-08-26","n_bidders":14,"low_bid":4447991.0,"second_bid":4973741.0,"engineer_estimate":null,"winner":"GDS MECHANICAL INC","bidders":[{"bidder":"GDS MECHANICAL INC","amount":4447991.0,"rank":1,"won":true,"vs_low":0.0},{"bidder":"Maric Plumbing & Heating, Inc.","amount":4973741.0,"rank":2,"won":false,"vs_low":0.1182},{"bidder":"Inshallah Mechanical Corp.","amount":5255000.0,"rank":3,"won":false,"vs_low":0.1814},{"bidder":"Premier Mechanical Services Inc.","amount":5294770.0,"rank":4,"won":false,"vs_low":0.1904},{"bidder":"Siba Contracting Corp.","amount":5509000.0,"rank":5,"won":false,"vs_low":0.2385},{"bidder":"RMS Industries of New York, Inc dba Reliance Mechanical","amount":5751991.0,"rank":6,"won":false,"vs_low":0.2932},{"bidder":"TAMEER INC","amount":5802991.0,"rank":7,"won":false,"vs_low":0.3046},{"bidder":"Intricate Tech Solutions Ltd","amount":5891000.0,"rank":8,"won":false,"vs_low":0.3244},{"bidder":"HVAC Incorporated","amount":6052991.0,"rank":9,"won":false,"vs_low":0.3608},{"bidder":"Traditional Air Conditioning","amount":6292000.0,"rank":10,"won":false,"vs_low":0.4146},{"bidder":"AWL Industries, Inc.","amount":6292991.0,"rank":11,"won":false,"vs_low":0.4148},{"bidder":"ACS System Associates, Inc.","amount":6547991.0,"rank":12,"won":false,"vs_low":0.4721},{"bidder":"Maric Mechanical Inc.","amount":7503783.0,"rank":13,"won":false,"vs_low":0.687},{"bidder":"Vital Plumbing, Inc.","amount":7599500.0,"rank":14,"won":false,"vs_low":0.7085}],"you_index":6,"you":{"normal":5802991.0,"p_normal":0.1547,"cost":5181241.964285714,"needed_vs_normal":-0.2335,"p_at_needed":0.7009,"target_bid":5338751.72,"target_p":0.3207,"target_vs_normal":-0.08,"won_at_normal":false,"won_at_target":false,"money_left_at_target":null,"profit_at_target":null,"lowest_other":4447991.0,"low_p10":3647272.8893587715,"low_p50":5081925.669191733,"low_p90":6340383.86319328,"low_in_band":true,"low_p50_ape":0.1425,"expected_bidders":6.71,"basis":"Bid spread from 322 hvac contracts in NY, 218 of them from NYS Office of General Services. Reference is your own normal price for this job. Field size predicted from trade, state, county/city (dix hills), owner (NYS Office of General Services), contract size and year."},"curve":[{"bid":4062093.7,"p":0.811},{"bid":4120123.61,"p":0.7968},{"bid":4178153.52,"p":0.7817},{"bid":4236183.43,"p":0.7656},{"bid":4294213.34,"p":0.7487},{"bid":4352243.25,"p":0.7308},{"bid":4410273.16,"p":0.712},{"bid":4468303.07,"p":0.6924},{"bid":4526332.98,"p":0.6719},{"bid":4584362.89,"p":0.6505},{"bid":4642392.8,"p":0.6283},{"bid":4700422.71,"p":0.6052},{"bid":4758452.62,"p":0.5814},{"bid":4816482.53,"p":0.5568},{"bid":4874512.44,"p":0.5315},{"bid":4932542.35,"p":0.5057},{"bid":4990572.26,"p":0.4795},{"bid":5048602.17,"p":0.453},{"bid":5106632.08,"p":0.4262},{"bid":5164661.99,"p":0.3995},{"bid":5222691.9,"p":0.3728},{"bid":5280721.81,"p":0.3465},{"bid":5338751.72,"p":0.3207},{"bid":5396781.63,"p":0.2956},{"bid":5454811.54,"p":0.2714},{"bid":5512841.45,"p":0.2483},{"bid":5570871.36,"p":0.2265},{"bid":5628901.27,"p":0.2062},{"bid":5686931.18,"p":0.1874},{"bid":5744961.09,"p":0.1702},{"bid":5802991.0,"p":0.1547},{"bid":5861020.91,"p":0.1407},{"bid":5919050.82,"p":0.1281},{"bid":5977080.73,"p":0.1169},{"bid":6035110.64,"p":0.1069},{"bid":6093140.55,"p":0.0979},{"bid":6151170.46,"p":0.0899},{"bid":6209200.37,"p":0.0828},{"bid":6267230.28,"p":0.0764},{"bid":6325260.19,"p":0.0707},{"bid":6383290.1,"p":0.0656},{"bid":6441320.01,"p":0.0611},{"bid":6499349.92,"p":0.057},{"bid":6557379.83,"p":0.0533},{"bid":6615409.74,"p":0.0499},{"bid":6673439.65,"p":0.0469},{"bid":6731469.56,"p":0.0442},{"bid":6789499.47,"p":0.0417},{"bid":6847529.38,"p":0.0394},{"bid":6905559.29,"p":0.0374},{"bid":6963589.2,"p":0.0355},{"bid":7021619.11,"p":0.0338},{"bid":7079649.02,"p":0.0322},{"bid":7137678.93,"p":0.0308},{"bid":7195708.84,"p":0.0295},{"bid":7253738.75,"p":0.0283},{"bid":7311768.66,"p":0.0271},{"bid":7369798.57,"p":0.0261},{"bid":7427828.48,"p":0.0252},{"bid":7485858.39,"p":0.0243},{"bid":7543888.3,"p":0.0235}],"train_contracts":5667,"trained_through":"2026-08-25"},{"key":"nyogs_all|Q1868-H|H","title":"Abate/Replace Flooring & Ceiling","agency":"NYS Office of General Services","city":"Stormville","url":"https://online2.ogs.ny.gov/dnc/contractorConsultant/esb/EsbBidResultsDetail.ASP?Project=Q1868#Q1868H","owner":"nyogs_all","owner_label":"NYS Office of General Services","state":"NY","trade":"hvac","opened":"2026-08-26","n_bidders":3,"low_bid":490000.0,"second_bid":561300.0,"engineer_estimate":null,"winner":"Ur Builders Inc","bidders":[{"bidder":"Ur Builders Inc","amount":490000.0,"rank":1,"won":true,"vs_low":0.0},{"bidder":"S & O Construction Services, Inc.","amount":561300.0,"rank":2,"won":false,"vs_low":0.1455},{"bidder":"ACS System Associates, Inc.","amount":696100.0,"rank":3,"won":false,"vs_low":0.4206}],"you_index":1,"you":{"normal":561300.0,"p_normal":0.2563,"cost":501160.71428571426,"needed_vs_normal":-0.127,"p_at_needed":0.4682,"target_bid":538848.0,"target_p":0.3133,"target_vs_normal":-0.04,"won_at_normal":false,"won_at_target":false,"money_left_at_target":null,"profit_at_target":null,"lowest_other":490000.0,"low_p10":318470.70974692993,"low_p50":498706.1837134631,"low_p90":806341.9040383588,"low_in_band":true,"low_p50_ape":0.0178,"expected_bidders":4.32,"basis":"Bid spread from 322 hvac contracts in NY, 218 of them from NYS Office of General Services. Reference is your own normal price for this job. Field size predicted from trade, state, county/city (stormville), owner (NYS Office of General Services), contract size and year."},"curve":[{"bid":392910.0,"p":0.7561},{"bid":398523.0,"p":0.7426},{"bid":404136.0,"p":0.7286},{"bid":409749.0,"p":0.7142},{"bid":415362.0,"p":0.6993},{"bid":420975.0,"p":0.6839},{"bid":426588.0,"p":0.6681},{"bid":432201.0,"p":0.6518},{"bid":437814.0,"p":0.6352},{"bid":443427.0,"p":0.6181},{"bid":449040.0,"p":0.6007},{"bid":454653.0,"p":0.5829},{"bid":460266.0,"p":0.5649},{"bid":465879.0,"p":0.5466},{"bid":471492.0,"p":0.5282},{"bid":477105.0,"p":0.5095},{"bid":482718.0,"p":0.4908},{"bid":488331.0,"p":0.4721},{"bid":493944.0,"p":0.4534},{"bid":499557.0,"p":0.4348},{"bid":505170.0,"p":0.4163},{"bid":510783.0,"p":0.3981},{"bid":516396.0,"p":0.3803},{"bid":522009.0,"p":0.3628},{"bid":527622.0,"p":0.3457},{"bid":533235.0,"p":0.3292},{"bid":538848.0,"p":0.3133},{"bid":544461.0,"p":0.298},{"bid":550074.0,"p":0.2833},{"bid":555687.0,"p":0.2695},{"bid":561300.0,"p":0.2563},{"bid":566913.0,"p":0.2439},{"bid":572526.0,"p":0.2322},{"bid":578139.0,"p":0.2213},{"bid":583752.0,"p":0.211},{"bid":589365.0,"p":0.2014},{"bid":594978.0,"p":0.1924},{"bid":600591.0,"p":0.184},{"bid":606204.0,"p":0.1762},{"bid":611817.0,"p":0.1689},{"bid":617430.0,"p":0.162},{"bid":623043.0,"p":0.1556},{"bid":628656.0,"p":0.1497},{"bid":634269.0,"p":0.1441},{"bid":639882.0,"p":0.1389},{"bid":645495.0,"p":0.134},{"bid":651108.0,"p":0.1294},{"bid":656721.0,"p":0.1251},{"bid":662334.0,"p":0.1211},{"bid":667947.0,"p":0.1173},{"bid":673560.0,"p":0.1138},{"bid":679173.0,"p":0.1105},{"bid":684786.0,"p":0.1073},{"bid":690399.0,"p":0.1044},{"bid":696012.0,"p":0.1016},{"bid":701625.0,"p":0.099},{"bid":707238.0,"p":0.0966},{"bid":712851.0,"p":0.0942},{"bid":718464.0,"p":0.092},{"bid":724077.0,"p":0.09},{"bid":729690.0,"p":0.088}],"train_contracts":5667,"trained_through":"2026-08-25"},{"key":"boston_pfd|PFD-7308-hvac-2026-08-20|","title":"City Hall Automatic Switch","agency":"City of Boston Public Facilities Department","city":"Boston","url":"https://docs.google.com/spreadsheets/d/1eunkTAqkteGtvIXC156yG8yvKcbtebKgZK_m-ukjbNc/edit?usp=sharing","owner":"boston_pfd","owner_label":"Boston Public Facilities","state":"MA","trade":"hvac","opened":"2026-08-20","n_bidders":6,"low_bid":115650.0,"second_bid":130000.0,"engineer_estimate":null,"winner":"General Air Conditioning & Heating, Inc","bidders":[{"bidder":"General Air Conditioning & Heating, Inc","amount":115650.0,"rank":1,"won":true,"vs_low":0.0},{"bidder":"Davison Co, Inc.","amount":130000.0,"rank":2,"won":false,"vs_low":0.1241},{"bidder":"Apex Corporation Incorporated","amount":141150.0,"rank":3,"won":false,"vs_low":0.2205},{"bidder":"Finbarr Mechanical","amount":145000.0,"rank":4,"won":false,"vs_low":0.2538},{"bidder":"Enterprise Equipment Co, Inc.","amount":178450.0,"rank":5,"won":false,"vs_low":0.543},{"bidder":"CAM H.V.A.C & Construction Inc","amount":238250.0,"rank":6,"won":false,"vs_low":1.0601}],"you_index":2,"you":{"normal":141150.0,"p_normal":0.3208,"cost":126026.7857142857,"needed_vs_normal":-0.1807,"p_at_needed":0.6486,"target_bid":142561.5,"target_p":0.3056,"target_vs_normal":0.01,"won_at_normal":false,"won_at_target":false,"money_left_at_target":null,"profit_at_target":null,"lowest_other":115650.0,"low_p10":86362.81075446177,"low_p50":132644.5807776413,"low_p90":null,"low_in_band":true,"low_p50_ape":0.1469,"expected_bidders":3.52,"basis":"Bid spread from 85 hvac contracts in MA, 68 of them from Boston Public Facilities. Reference is your own normal price for this job. Field size predicted from trade, state, county/city (boston), owner (Boston Public Facilities), contract size and year."},"curve":[{"bid":98805.0,"p":0.8023},{"bid":100216.5,"p":0.7922},{"bid":101628.0,"p":0.7816},{"bid":103039.5,"p":0.7705},{"bid":104451.0,"p":0.7588},{"bid":105862.5,"p":0.7466},{"bid":107274.0,"p":0.7338},{"bid":108685.5,"p":0.7204},{"bid":110097.0,"p":0.7066},{"bid":111508.5,"p":0.6922},{"bid":112920.0,"p":0.6773},{"bid":114331.5,"p":0.662},{"bid":115743.0,"p":0.6462},{"bid":117154.5,"p":0.6299},{"bid":118566.0,"p":0.6131},{"bid":119977.5,"p":0.5959},{"bid":121389.0,"p":0.5781},{"bid":122800.5,"p":0.56},{"bid":124212.0,"p":0.5414},{"bid":125623.5,"p":0.5226},{"bid":127035.0,"p":0.5036},{"bid":128446.5,"p":0.4843},{"bid":129858.0,"p":0.4651},{"bid":131269.5,"p":0.4458},{"bid":132681.0,"p":0.4267},{"bid":134092.5,"p":0.4077},{"bid":135504.0,"p":0.3892},{"bid":136915.5,"p":0.3711},{"bid":138327.0,"p":0.3536},{"bid":139738.5,"p":0.3368},{"bid":141150.0,"p":0.3208},{"bid":142561.5,"p":0.3056},{"bid":143973.0,"p":0.2913},{"bid":145384.5,"p":0.278},{"bid":146796.0,"p":0.2656},{"bid":148207.5,"p":0.2541},{"bid":149619.0,"p":0.2434},{"bid":151030.5,"p":0.2335},{"bid":152442.0,"p":0.2244},{"bid":153853.5,"p":0.216},{"bid":155265.0,"p":0.2083},{"bid":156676.5,"p":0.2011},{"bid":158088.0,"p":0.1945},{"bid":159499.5,"p":0.1884},{"bid":160911.0,"p":0.1828},{"bid":162322.5,"p":0.1775},{"bid":163734.0,"p":0.1727},{"bid":165145.5,"p":0.1681},{"bid":166557.0,"p":0.1639},{"bid":167968.5,"p":0.16},{"bid":169380.0,"p":0.1564},{"bid":170791.5,"p":0.153},{"bid":172203.0,"p":0.1498},{"bid":173614.5,"p":0.1468},{"bid":175026.0,"p":0.144},{"bid":176437.5,"p":0.1414},{"bid":177849.0,"p":0.1389},{"bid":179260.5,"p":0.1366},{"bid":180672.0,"p":0.1345},{"bid":182083.5,"p":0.1324},{"bid":183495.0,"p":0.1305}],"train_contracts":5661,"trained_through":"2026-08-19"},{"key":"nyogs_all|47427-H|H","title":"Provide Central Air Conditioning & Upgrade Bathrooms, Building 110","agency":"NYS Office of General Services","city":"New York","url":"https://online2.ogs.ny.gov/dnc/contractorConsultant/esb/EsbBidResultsDetail.ASP?Project=47427#47427H","owner":"nyogs_all","owner_label":"NYS Office of General Services","state":"NY","trade":"hvac","opened":"2026-08-19","n_bidders":8,"low_bid":8254615.0,"second_bid":8629615.0,"engineer_estimate":null,"winner":"Pen Enterprises, Inc.","bidders":[{"bidder":"Pen Enterprises, Inc.","amount":8254615.0,"rank":1,"won":true,"vs_low":0.0},{"bidder":"TAMEER INC","amount":8629615.0,"rank":2,"won":false,"vs_low":0.0454},{"bidder":"Infinity Contracting Services Corp","amount":8922000.0,"rank":3,"won":false,"vs_low":0.0808},{"bidder":"ENL Mechanical Incorporated","amount":9394000.0,"rank":4,"won":false,"vs_low":0.138},{"bidder":"Dynamic Mechanical Contractors, Inc.","amount":9479000.0,"rank":5,"won":false,"vs_low":0.1483},{"bidder":"AWL Industries, Inc.","amount":9706615.0,"rank":6,"won":false,"vs_low":0.1759},{"bidder":"ACS System Associates, Inc.","amount":10424615.0,"rank":7,"won":false,"vs_low":0.2629},{"bidder":"C.D.E. Air Conditioning Co., Inc.","amount":12756099.0,"rank":8,"won":false,"vs_low":0.5453}],"you_index":3,"you":{"normal":9394000.0,"p_normal":0.1254,"cost":8387499.999999999,"needed_vs_normal":-0.1213,"p_at_needed":0.4035,"target_bid":8548540.0,"target_p":0.3129,"target_vs_normal":-0.09,"won_at_normal":false,"won_at_target":false,"money_left_at_target":null,"profit_at_target":null,"lowest_other":8254615.0,"low_p10":6033796.765472884,"low_p50":8112147.638981806,"low_p90":9903588.23798118,"low_in_band":true,"low_p50_ape":0.0173,"expected_bidders":8.23,"basis":"Bid spread from 320 hvac contracts in NY, 216 of them from NYS Office of General Services. Reference is your own normal price for this job. Field size predicted from trade, state, county/city (new york), owner (NYS Office of General Services), contract size and year."},"curve":[{"bid":6575800.0,"p":0.8234},{"bid":6669740.0,"p":0.808},{"bid":6763680.0,"p":0.7915},{"bid":6857620.0,"p":0.7738},{"bid":6951560.0,"p":0.7551},{"bid":7045500.0,"p":0.7352},{"bid":7139440.0,"p":0.7143},{"bid":7233380.0,"p":0.6924},{"bid":7327320.0,"p":0.6695},{"bid":7421260.0,"p":0.6456},{"bid":7515200.0,"p":0.6206},{"bid":7609140.0,"p":0.5948},{"bid":7703080.0,"p":0.568},{"bid":7797020.0,"p":0.5405},{"bid":7890960.0,"p":0.5124},{"bid":7984900.0,"p":0.4838},{"bid":8078840.0,"p":0.455},{"bid":8172780.0,"p":0.4261},{"bid":8266720.0,"p":0.3972},{"bid":8360660.0,"p":0.3686},{"bid":8454600.0,"p":0.3404},{"bid":8548540.0,"p":0.3129},{"bid":8642480.0,"p":0.2863},{"bid":8736420.0,"p":0.2609},{"bid":8830360.0,"p":0.2367},{"bid":8924300.0,"p":0.2139},{"bid":9018240.0,"p":0.1928},{"bid":9112180.0,"p":0.1734},{"bid":9206120.0,"p":0.1557},{"bid":9300060.0,"p":0.1397},{"bid":9394000.0,"p":0.1254},{"bid":9487940.0,"p":0.1125},{"bid":9581880.0,"p":0.1011},{"bid":9675820.0,"p":0.0909},{"bid":9769760.0,"p":0.0819},{"bid":9863700.0,"p":0.0739},{"bid":9957640.0,"p":0.0668},{"bid":10051580.0,"p":0.0606},{"bid":10145520.0,"p":0.0551},{"bid":10239460.0,"p":0.0502},{"bid":10333400.0,"p":0.0458},{"bid":10427340.0,"p":0.042},{"bid":10521280.0,"p":0.0386},{"bid":10615220.0,"p":0.0355},{"bid":10709160.0,"p":0.0328},{"bid":10803100.0,"p":0.0304},{"bid":10897040.0,"p":0.0282},{"bid":10990980.0,"p":0.0262},{"bid":11084920.0,"p":0.0245},{"bid":11178860.0,"p":0.0229},{"bid":11272800.0,"p":0.0215},{"bid":11366740.0,"p":0.0202},{"bid":11460680.0,"p":0.019},{"bid":11554620.0,"p":0.018},{"bid":11648560.0,"p":0.017},{"bid":11742500.0,"p":0.0161},{"bid":11836440.0,"p":0.0153},{"bid":11930380.0,"p":0.0146},{"bid":12024320.0,"p":0.0139},{"bid":12118260.0,"p":0.0133},{"bid":12212200.0,"p":0.0128}],"train_contracts":5643,"trained_through":"2026-08-18"},{"key":"nyogs_all|47688-H|H","title":"Provide Transitional Residence, South Campus","agency":"NYS Office of General Services","city":"Queens Village","url":"https://online2.ogs.ny.gov/dnc/contractorConsultant/esb/EsbBidResultsDetail.ASP?Project=47688#47688H","owner":"nyogs_all","owner_label":"NYS Office of General Services","state":"NY","trade":"hvac","opened":"2026-08-19","n_bidders":12,"low_bid":2500000.0,"second_bid":2983300.0,"engineer_estimate":null,"winner":"Pen Enterprises, Inc.","bidders":[{"bidder":"Pen Enterprises, Inc.","amount":2500000.0,"rank":1,"won":true,"vs_low":0.0},{"bidder":"GDS MECHANICAL INC","amount":2983300.0,"rank":2,"won":false,"vs_low":0.1933},{"bidder":"Infinity Contracting Services Corp","amount":3222933.0,"rank":3,"won":false,"vs_low":0.2892},{"bidder":"ANR Mechanical Corp.","amount":3338000.0,"rank":4,"won":false,"vs_low":0.3352},{"bidder":"Premier Mechanical Services Inc.","amount":3410077.0,"rank":5,"won":false,"vs_low":0.364},{"bidder":"Traditional Air Conditioning","amount":3582000.0,"rank":6,"won":false,"vs_low":0.4328},{"bidder":"Zoi Contracting Inc.","amount":3736300.0,"rank":7,"won":false,"vs_low":0.4945},{"bidder":"ACS System Associates, Inc.","amount":3792300.0,"rank":8,"won":false,"vs_low":0.5169},{"bidder":"AWL Industries, Inc.","amount":3820000.0,"rank":9,"won":false,"vs_low":0.528},{"bidder":"ENL Mechanical Incorporated","amount":3940000.0,"rank":10,"won":false,"vs_low":0.576},{"bidder":"TAMEER INC","amount":4340106.0,"rank":11,"won":false,"vs_low":0.736},{"bidder":"Planet Mechanical Corp.","amount":4809900.0,"rank":12,"won":false,"vs_low":0.924}],"you_index":5,"you":{"normal":3582000.0,"p_normal":0.1236,"cost":3198214.2857142854,"needed_vs_normal":-0.3021,"p_at_needed":0.7684,"target_bid":3223800.0,"target_p":0.3025,"target_vs_normal":-0.1,"won_at_normal":false,"won_at_target":false,"money_left_at_target":null,"profit_at_target":null,"lowest_other":2500000.0,"low_p10":2143594.5512275198,"low_p50":3019482.3334706174,"low_p90":3799890.577838857,"low_in_band":true,"low_p50_ape":0.2078,"expected_bidders":8.33,"basis":"Bid spread from 320 hvac contracts in NY, 216 of them from NYS Office of General Services. Reference is your own normal price for this job. Field size predicted from trade, state, county/city (queens village), owner (NYS Office of General Services), contract size and year."},"curve":[{"bid":2507400.0,"p":0.7638},{"bid":2543220.0,"p":0.7463},{"bid":2579040.0,"p":0.7279},{"bid":2614860.0,"p":0.7087},{"bid":2650680.0,"p":0.6888},{"bid":2686500.0,"p":0.668},{"bid":2722320.0,"p":0.6465},{"bid":2758140.0,"p":0.6243},{"bid":2793960.0,"p":0.6013},{"bid":2829780.0,"p":0.5776},{"bid":2865600.0,"p":0.5533},{"bid":2901420.0,"p":0.5285},{"bid":2937240.0,"p":0.5033},{"bid":2973060.0,"p":0.4779},{"bid":3008880.0,"p":0.4523},{"bid":3044700.0,"p":0.4267},{"bid":3080520.0,"p":0.4012},{"bid":3116340.0,"p":0.3758},{"bid":3152160.0,"p":0.3508},{"bid":3187980.0,"p":0.3263},{"bid":3223800.0,"p":0.3025},{"bid":3259620.0,"p":0.2794},{"bid":3295440.0,"p":0.2573},{"bid":3331260.0,"p":0.2362},{"bid":3367080.0,"p":0.2163},{"bid":3402900.0,"p":0.1975},{"bid":3438720.0,"p":0.1801},{"bid":3474540.0,"p":0.164},{"bid":3510360.0,"p":0.1493},{"bid":3546180.0,"p":0.1358},{"bid":3582000.0,"p":0.1236},{"bid":3617820.0,"p":0.1125},{"bid":3653640.0,"p":0.1025},{"bid":3689460.0,"p":0.0934},{"bid":3725280.0,"p":0.0853},{"bid":3761100.0,"p":0.0779},{"bid":3796920.0,"p":0.0714},{"bid":3832740.0,"p":0.0654},{"bid":3868560.0,"p":0.0601},{"bid":3904380.0,"p":0.0554},{"bid":3940200.0,"p":0.0511},{"bid":3976020.0,"p":0.0472},{"bid":4011840.0,"p":0.0437},{"bid":4047660.0,"p":0.0406},{"bid":4083480.0,"p":0.0377},{"bid":4119300.0,"p":0.0352},{"bid":4155120.0,"p":0.0328},{"bid":4190940.0,"p":0.0307},{"bid":4226760.0,"p":0.0288},{"bid":4262580.0,"p":0.0271},{"bid":4298400.0,"p":0.0255},{"bid":4334220.0,"p":0.024},{"bid":4370040.0,"p":0.0227},{"bid":4405860.0,"p":0.0214},{"bid":4441680.0,"p":0.0203},{"bid":4477500.0,"p":0.0193},{"bid":4513320.0,"p":0.0184},{"bid":4549140.0,"p":0.0175},{"bid":4584960.0,"p":0.0167},{"bid":4620780.0,"p":0.016},{"bid":4656600.0,"p":0.0153}],"train_contracts":5643,"trained_through":"2026-08-18"},{"key":"nyogs_all|47688-P|P","title":"Provide Transitional Residence, South Campus","agency":"NYS Office of General Services","city":"Queens Village","url":"https://online2.ogs.ny.gov/dnc/contractorConsultant/esb/EsbBidResultsDetail.ASP?Project=47688#47688P","owner":"nyogs_all","owner_label":"NYS Office of General Services","state":"NY","trade":"plumbing","opened":"2026-08-19","n_bidders":5,"low_bid":2482000.0,"second_bid":2695500.0,"engineer_estimate":null,"winner":"Rocon Corp","bidders":[{"bidder":"Rocon Corp","amount":2482000.0,"rank":1,"won":true,"vs_low":0.0},{"bidder":"Vital Plumbing, Inc.","amount":2695500.0,"rank":2,"won":false,"vs_low":0.086},{"bidder":"Skountzos Plumbing & Heating Corp.","amount":2827000.0,"rank":3,"won":false,"vs_low":0.139},{"bidder":"Eastern Plumbing & Mechanical Contracting, Inc.","amount":3422600.0,"rank":4,"won":false,"vs_low":0.379},{"bidder":"Eagle 1 Mechanical","amount":3457600.0,"rank":5,"won":false,"vs_low":0.3931}],"you_index":2,"you":{"normal":2827000.0,"p_normal":0.1503,"cost":2524107.1428571427,"needed_vs_normal":-0.122,"p_at_needed":0.3262,"target_bid":null,"target_p":null,"target_vs_normal":null,"won_at_normal":false,"won_at_target":null,"money_left_at_target":null,"profit_at_target":null,"lowest_other":2482000.0,"low_p10":1475281.482722406,"low_p50":2307073.857978286,"low_p90":3178854.4592691497,"low_in_band":true,"low_p50_ape":0.0705,"expected_bidders":7.02,"basis":"Bid spread from 127 plumbing contracts in NY, 105 of them from NYS Office of General Services. Reference is your own normal price for this job. Field size predicted from trade, state, county/city (queens village), owner (NYS Office of General Services), contract size and year."},"curve":[{"bid":1978900.0,"p":0.6684},{"bid":2007170.0,"p":0.6508},{"bid":2035440.0,"p":0.6328},{"bid":2063710.0,"p":0.6144},{"bid":2091980.0,"p":0.5956},{"bid":2120250.0,"p":0.5764},{"bid":2148520.0,"p":0.5569},{"bid":2176790.0,"p":0.5372},{"bid":2205060.0,"p":0.5172},{"bid":2233330.0,"p":0.4972},{"bid":2261600.0,"p":0.4771},{"bid":2289870.0,"p":0.457},{"bid":2318140.0,"p":0.4369},{"bid":2346410.0,"p":0.4169},{"bid":2374680.0,"p":0.3971},{"bid":2402950.0,"p":0.3775},{"bid":2431220.0,"p":0.3582},{"bid":2459490.0,"p":0.3393},{"bid":2487760.0,"p":0.3209},{"bid":2516030.0,"p":0.3029},{"bid":2544300.0,"p":0.2855},{"bid":2572570.0,"p":0.2687},{"bid":2600840.0,"p":0.2525},{"bid":2629110.0,"p":0.2371},{"bid":2657380.0,"p":0.2224},{"bid":2685650.0,"p":0.2084},{"bid":2713920.0,"p":0.1953},{"bid":2742190.0,"p":0.1829},{"bid":2770460.0,"p":0.1712},{"bid":2798730.0,"p":0.1604},{"bid":2827000.0,"p":0.1503},{"bid":2855270.0,"p":0.1408},{"bid":2883540.0,"p":0.132},{"bid":2911810.0,"p":0.1239},{"bid":2940080.0,"p":0.1163},{"bid":2968350.0,"p":0.1093},{"bid":2996620.0,"p":0.1028},{"bid":3024890.0,"p":0.0967},{"bid":3053160.0,"p":0.0911},{"bid":3081430.0,"p":0.0859},{"bid":3109700.0,"p":0.0811},{"bid":3137970.0,"p":0.0767},{"bid":3166240.0,"p":0.0726},{"bid":3194510.0,"p":0.0688},{"bid":3222780.0,"p":0.0652},{"bid":3251050.0,"p":0.0619},{"bid":3279320.0,"p":0.0589},{"bid":3307590.0,"p":0.056},{"bid":3335860.0,"p":0.0534},{"bid":3364130.0,"p":0.0509},{"bid":3392400.0,"p":0.0486},{"bid":3420670.0,"p":0.0465},{"bid":3448940.0,"p":0.0445},{"bid":3477210.0,"p":0.0426},{"bid":3505480.0,"p":0.0409},{"bid":3533750.0,"p":0.0392},{"bid":3562020.0,"p":0.0377},{"bid":3590290.0,"p":0.0363},{"bid":3618560.0,"p":0.0349},{"bid":3646830.0,"p":0.0337},{"bid":3675100.0,"p":0.0325}],"train_contracts":5643,"trained_through":"2026-08-18"}],"summary":{"n_contracts":12,"n_bids":100,"you_mean_p_normal":0.1697,"you_median_needed_vs_normal":-0.148,"low_in_band":11,"low_p50_median_ape":0.1401,"you_won_at_normal":0,"target_priced":9,"you_won_at_target":1,"target_expected_wins":2.8,"target_mean_p":0.3111,"field_mae":2.95,"note":"Over only these contracts; a dozen openings is an illustration, not a score. The scores are the holdout sections above."}},"headline":{"test_contracts":1320,"test_bids":7728,"test_years":[2025,2026],"train_years":[2013,2024],"brier_model":0.1328,"brier_base":0.1433,"brier_model_ci":[0.1271,0.1388],"brier_diff_ci":[-0.0117,-0.0092],"brier_one_over_predicted_n":0.1334,"brier_one_over_true_n":0.115,"brier_field_known":0.115,"auc_model":0.6969,"auc_model_ci":[0.6843,0.7092],"auc_field_known":0.7686,"auc_one_over_true_n":0.7685,"ph_contracts":291,"ph_bids":1063,"ph_auc":0.6051,"ph_auc_ci":[0.5735,0.6379],"ph_brier":0.1943,"ph_brier_base":0.2028,"ph_brier_diff_ci":[-0.0128,-0.0044],"ph_brier_one_over_true_n":0.1601,"ph_brier_field_known":0.1602,"warehouse_contracts":5752,"warehouse_bids":29404,"warehouse_first":"2013-10-24","warehouse_last":"2026-09-30","winning_bids_usd":14800228658.77,"states":["MA","NJ","NY","OH","PA"],"ph_median_gap":0.113,"ph_money_left_usd":197812794.24,"low_bid_own_median_ape":0.158,"low_bid_similar_median_ape":0.6812,"low_bid_engineer_median_ape":0.2173,"policy_normal":{"wins":243,"win_rate":0.2394,"profit":53793800.0,"money_left":71271518.0,"mean_p":0.2769,"median_markup":0.12,"profit_ci":[40212619.746,69166542.8894],"win_rate_ci":[0.2233,0.2569]},"policy_profit_max":{"wins":93,"win_rate":0.0916,"profit":44108358.0,"money_left":46177623.0,"mean_p":0.1604,"median_markup":0.3475,"profit_ci":[29449524.0394,59524048.7422],"win_rate_ci":[0.0755,0.109],"profit_vs_normal":-0.18,"profit_vs_normal_ci":[-0.353,-0.0072]},"policy_target_30":{"wins":260,"win_rate":0.2562,"profit":48829796.0,"money_left":93369295.0,"mean_p":0.302,"median_markup":0.096,"profit_ci":[34822120.6769,66951523.2464],"win_rate_ci":[0.2356,0.2774],"profit_vs_normal":-0.0923,"profit_vs_normal_ci":[-0.197,0.0119]},"low_bid_own_naive_median_ape":0.1578,"low_bid_own_coverage":0.8985,"curve_by_shift":[{"shift":-0.3,"predicted":0.65,"observed":0.6828,"observed_lo":0.6636,"observed_hi":0.7036,"brier":0.2152},{"shift":-0.2,"predicted":0.5062,"observed":0.5026,"observed_lo":0.4835,"observed_hi":0.521,"brier":0.2421},{"shift":-0.1,"predicted":0.3367,"observed":0.3131,"observed_lo":0.2976,"observed_hi":0.3249,"brier":0.2034},{"shift":-0.05,"predicted":0.2533,"observed":0.2349,"observed_lo":0.2228,"observed_hi":0.2459,"brier":0.1684},{"shift":0.0,"predicted":0.1847,"observed":0.1709,"observed_lo":0.1619,"observed_hi":0.1793,"brier":0.1328},{"shift":0.05,"predicted":0.1392,"observed":0.1244,"observed_lo":0.1164,"observed_hi":0.1325,"brier":0.1024},{"shift":0.1,"predicted":0.1112,"observed":0.095,"observed_lo":0.0877,"observed_hi":0.1025,"brier":0.0809},{"shift":0.2,"predicted":0.0806,"observed":0.0633,"observed_lo":0.0568,"observed_hi":0.0704,"brier":0.0559}],"curve_auc":0.8097,"curve_auc_shift_only":0.7755,"rolling_years":9,"rolling_beats_base":8,"rolling_beats_field_only":3,"rolling_pooled":{"model":0.151,"model_field_known":0.1258,"base_rate":0.1589,"one_over_true_n":0.1258,"one_over_predicted_n":0.1482},"replay_n":12,"replay_summary":{"n_contracts":12,"n_bids":100,"you_mean_p_normal":0.1697,"you_median_needed_vs_normal":-0.148,"low_in_band":11,"low_p50_median_ape":0.1401,"you_won_at_normal":0,"target_priced":9,"you_won_at_target":1,"target_expected_wins":2.8,"target_mean_p":0.3111,"field_mae":2.95,"note":"Over only these contracts; a dozen openings is an illustration, not a score. The scores are the holdout sections above."}},"owner_labels":{"nyogs_all":"NYS Office of General Services","dasny":"DASNY","nyc_sca":"NYC School Construction Authority","sucf":"State University Construction Fund","panynj":"Port Authority of NY and NJ","njsda":"NJ Schools Development Authority","nj_dpmc":"NJ DPMC","pa_dgs":"Pennsylvania DGS","psu":"Penn State","phl_sd":"School District of Philadelphia","pgh_sd":"Pittsburgh Public Schools","ofcc":"Ohio Facilities Construction Commission","boston_pfd":"Boston Public Facilities","worcester":"City of Worcester","ohio_higher_ed":"Ohio public universities"},"production_model":"ptw-20261001T220731","seconds":74.7,"reproduce":"python scripts/backtest_report.py"}