Inventory Reorder Point Skill
Reorder points, safety stock and order quantities for every SKU from a Shopify orders export, plus ABC classes, dead stock and overstock. $29 once.
View Inventory Reorder Point Skill
The low bid usually isn't the low bid once you plug what it left out. Level every bid to the same scope, see who is really lowest, and send each bidder the right questions.

| Situation | Code | Level |
|---|---|---|
| Stated total doesn't match the priced lines | bid_total_mismatch | error |
| Gap with no other bid or estimate to plug it | unpluggable_gap | error |
| Item missing or marked not bid (plugged) | missing_scope | warning |
| Item excluded (plugged) | excluded_scope | warning |
| Allowance under 75% of the typical price | low_allowance | warning |
| Price under 50% of typical: scope gap? | price_outlier_low | warning |
| Same item listed twice | duplicate_line | warning |
| Price over 150% of typical | price_outlier_high | info |
| Alternate or item not in the scope list | item_not_in_scope | info |
| Low bidder changes after leveling | low_bidder_changed | info |
examples/riverside-clinic-electrical/ is a fictional clinic fit-out electrical package: an 8-item scope with estimates and 3 bids written the way subs write them ("Rough-in & branch wiring" vs "Rough-in and branch wiring"), with a fire alarm exclusion, temp power not bid, a thin fixture allowance, a 4,800 fire alarm price, a rock-clause trenching price, an add alternate and a total that's 1,000 off. expected.json labels the leveled totals: the low base bid (Apex 119,400) becomes second at 138,900 and BrightLine wins at 129,900. The tests assert that in any row order and for each plug method.
Outputs in out/: bidders.csv (base, plugs, leveled total, rank), leveling_matrix.csv (items x bidders, plugs marked), findings.csv, report.md (with questions per bidder), summary.json. Exit 0 = ready to compare; 1 = errors to resolve; 2 = an input problem.

./run_tests.sh
python3 -m bidlevel --bids examples/riverside-clinic-electrical/bids.csv --scope examples/riverside-clinic-electrical/scope.csv \
--totals examples/riverside-clinic-electrical/bid_totals.csv --name "Riverside Clinic - Electrical" --out out/Python 3.9+ (tested on 3.10 and 3.13), no dependencies.
Zip, 15 KB, v1.0, 15 files. Use and modify it for yourself and for clients you serve; no resale or redistribution of the kit itself. Full terms in LICENSE.txt.
Level subcontractor bids in one command: plug exclusions and gaps, flag thin allowances and outlier prices, check totals, rank. $29 once, offline.
Reorder points, safety stock and order quantities for every SKU from a Shopify orders export, plus ABC classes, dead stock and overstock. $29 once.
View Inventory Reorder Point SkillCalculate sales commissions from a CRM deals export: tiered rates, accelerators, split deals, caps and clawbacks, with a statement per rep. $29 once.
View Sales Commission Calculator SkillRecipe costing with yield, food cost % per plate, menu engineering classes (Stars, Plowhorses, Puzzles, Dogs) and target prices from your sales mix. $29 once.
View Recipe Costing + Menu Engineering Skill