Lark Research · Benchmark

Introducing LarkBench

A benchmark for AI purchasing in a simulated wholesale distributor.

October 2026 · Results · Design · Explore a season · Limitations

LarkBench tests how well AI models handle a simulated distributor buyer's job: what to order, how much, and when, week after week, while demand moves around and vendors ship late. We want to know two things: how much profit today's models leave on the table, and whether they beat representative ordering rules.

Summary

Profit kept by models and ordering rules, as a share of demand margin
Figure 1. Difficulty-weighted scores on the same 160 books × 3 draws. Bars compare models with the careful rule and ERP reorder point; whiskers show 95% intervals across books.

1Motivation

At a distributor, the buyer decides what's on the shelves. Margins are thin and stock ties up a lot of cash, so mistakes cost real money either way: buy too little and customers go elsewhere, buy too much and the money sits in the warehouse. Many distributors let their ERP suggest orders with a reorder point, which just says "when stock drops below this level, order more." A good buyer earns their keep on everything that rule misses: a truck that's late or never comes, demand that shifts for good, a big one-off job, an item the vendor is dropping, a rep's tip that turns out to be wrong.

LarkBench tests how AI models handle realistic purchasing scenarios across a vendor’s full product line, including business constraints and edge cases such as order minimums, free-freight thresholds, pack sizes, spending limits, late deliveries and bad data. Each model manages 15 to 30 products at a simulated distributor. We measure how much profit it keeps after costs and compare its results with rule-based buyers.

2Benchmark design

2.1 Environment

A book is one vendor's product line at a simulated distributor: 15 or 30 items, each with at least a year of sales history, normal starting stock and some open POs. A season is 26 weeks, with one ordering decision a week. Customers order every week. If something is out of stock the order waits, it may get cancelled, and a customer who gets shorted too often stops ordering. The vendor has an order minimum, a free-freight threshold, pack sizes and lead times, and shipments can come late, come short, or not come at all. The 30-item books also have a weekly spending limit.

The benchmark covers a broad set of real-world purchasing problems and edge cases. The scenarios draw on public statistics, research papers and trade reporting, trends we have observed among our customers, and conversations with more than 50 distributors. We set how often they occur in the simulator using published numbers where available and stated assumptions otherwise.

Each scheduled disruption leaves a clue in the information the buyer can access, such as a change in sales, a vendor notice, or an unconfirmed purchase order. Across the benchmark, products go through a full 26-week season without a scheduled disruption about half the time.

Business edge cases and expected outcomes
What happensThe clueThe right move
A shipment comes late, short or not at allsilent the PO is never confirmed; the vendor will say where it is if askedAsk the vendor and reorder in time
Demand goes up or down for goodsilent the sales historyTell a real shift from a noisy week
A big one-off customer orderannounced it shows up on the books weeks aheadHave the stock before it ships
The vendor drops an itemannounced a notice with the last order dateSell it down without getting stuck with leftovers
A price increaseannounced a notice with the date it startsBuy some ahead, not a year's worth
Tips from customers, reps and the vendorrumored right about 65% of the time, more or less depending on who said itTrust each source as much as it has earned
Substitutes and look-alikessilent the item descriptionsOnly count a substitute if it really is one
Bad datasilent units that don't match, dead PO lines, renamed itemsCheck before you trust it
A supply crunchsilent late and short deliveries keep piling upKeep extra on hand and chase the vendor early

2.2 Model interface

Each week, the model reviews a simulated ERP screen showing inventory, open orders, recent sales and suggested purchases. It can investigate with look-ups and send vendor questions, answered the following week. It then places one PO and writes a note for next week. All models have the same interface and limits within each setup.

Example ERP screen
Week 1 of 2623 Jan 2026 · 182 days left
Vendor
V5459
Products
15
Quoted lead time
10 days
Order minimum $105 · $10 fee below minimum · Free freight at $300+
ItemOn handOn orderSales4 / 13 / 52 weeksERP suggestsStatus
Nitrile gloves, large, box of 100Item 320 BX2 / 29 / 11714 BX—
Floor scraper blade 4 inItem 502 PK (2)0 / 0 / 0—
Out of stockPO line past due
Circuit breaker 20A single poleItem 13012 EA (1)8 / 21 / 69—
Out of stock
Copper coupling 3/4 inItem 1400 EA19 / 95 / 25524 EA
Out of stock
Excerpt from a practice book · 4 of 15 products shown

We compare three setups:

2.3 Scoring

score = Σ(weight × net profit) ÷ Σ(weight × demand margin)

Demand margin is the margin on all customer orders at list prices and costs. Net profit is earnings after costs, including an adjustment for the inventory, open orders and waiting customers left at week 26.

The adjustment uses another 26 weeks of simulated trading to account for future overstock and shortages. Losses count in full, and scores can exceed 100%.

All 160 books contribute to our difficulty-weighted score. We give 40 harder books three times the weight, selected using separate calibration runs. Books with larger demand margins also contribute more.

2.4 Baselines

We compare the models with three non-AI purchasing strategies:

The screen-only planner provides a reference score; it is not a proven optimum.

3Results

Scores show how much of the margin on all customer orders the buyer keeps after costs. 100% means keeping the full margin at the listed buying and selling prices; 63.6% means $63.60 in net profit for every $100 of that margin. Discounts can push scores above 100%.

Model or baselineScore
GPT-6.1 Sol63.6%
Gemini 4 Argon58.3%
Claude Opus 5.557.6%
Careful rule56.3%
ERP reorder point37.7%
Screen-only planner (reference)59.5%

Table 1. Difficulty-weighted scores on the same 160 books × 3 draws. Each AI model completed one full run using look-ups.

Sol leads the other models and the careful rule under the current scoring method. Opus and Gemini score close to the careful rule, with no clear difference in this evaluation. All three models outperform the ERP reorder rule.

Figure 2 compares three setups on the same 50 books. Rule-based suggestions raised the recorded scores modestly. Showing records up front helped Opus in this run and made little difference for Sol and Gemini. The setups supply different information, so this comparison does not isolate the value of tools.

SetupScoreEstimated cost
per season
GPT-6.1 Sol
With look-ups62.6%$3.98
Formula → AI63.3%$3.97
One screen62.6%$2.32
Claude Opus 5.5
With look-ups57.7%$3.45
Formula → AI59.5%$3.01
One screen60.2%$4.53
Gemini 4 Argon
With look-ups59.0%$6.55
Formula → AI61.0%$6.37
One screen58.7%$4.54
Figure 2. Three setups for each model on the same 50 books × 3 draws, one run each. Scores use difficulty weighting on this subset; the main results use all 160 books. Costs are average estimated API charges per 26-week season, including prompt caching, failed requests and allowances for uncertain charges.

Run-to-run variation

ModelRun 1Run 2Run 3
GPT-6.1 Sol66.1%65.8%65.1%
Claude Opus 5.559.5%62.8%61.4%
Gemini 4 Argon60.2%60.6%60.6%
Careful rule60.9% (no randomness)

Table 2. Each model played the same 20 books × 3 draws three times, with Run 1 taken from the main evaluation. Scores use the same difficulty weighting. These books are easier than the full set, so compare scores within this table.

4Where the profit goes

After the runs, we analyzed where the models lost sales and incurred costs that reduced their profit. We split what each model didn't keep into five parts: sales missed because the shelf was empty, the cost of holding stock, customers kept waiting, other operating costs (ordering, freight and fees, net of discounts), and the end-of-season adjustment from section 2.3, which charges for excess stock and for a short shelf alike.

Figure 3. Losses and costs per $100 of margin on customer orders, using the same weighted results as Figure 1. The five categories plus net profit add up to $100, within rounding.

Per $100 of margin on customer orders, all three models lose about $10–$12 to missed sales. Holding stock costs Sol $10.00, Opus $12.90 and Gemini $13.50. End-of-season adjustments cost another $4.60 for Sol, $8.00 for Opus and $10.30 for Gemini, reflecting both excess stock and shortages. The logs show several recurring mistakes:

  1. Buying years of stock at once. In one season a model meant to buy about 64 fittings, ordered 64 cases of 12, and lost money on the season. Orders with more than a year's supply of an item come up 3.4 times a season for Gemini, 1.4 for Opus and 1.3 for Sol; about a third of them were ordered in cases.
  2. Cutting back too little when demand drops. Starting four weeks after a lasting demand drop, the median ordering pace is 30% of its old level for Opus, 42% for Gemini and 55% for Sol. The careful rule also stays at 55%. Of the 129 drops eligible for this comparison, 59 (46%) have a linked note that correctly describes the drop; notes can also be absent or wrong.
  3. Ordering the same item over and over. Big reorders while there's still plenty on the shelf or on the way. One model ordered the same item five times in one season, 720 units in total. Ordering one item 4 times in 5 weeks happens 1.4 times a season for Opus, 0.9 for Gemini and 0.3 for Sol.

5Explore a season

The replay below rebuilds full seasons on two practice books from the models' logs. Pick a book and a model or baseline to see what it looked up each week, what it ordered and why, what happened to stock and sales, and what the season threw at it. The moments below jump straight to the week.

Book 2 · wk 1

The vendor says a gauge is being discontinued, with last orders by week 11. All three models and both baselines run it down without getting stuck with leftovers.

Book 2 · wk 6–11

Breaker demand drops 30% with no warning. Sol cuts back in this example; across the scored demand drops it responds less than the other models. Gemini orders 20 more while it still has 31, about 22 weeks of stock.

Book 2 · wk 11–13

A customer books nine clamps, two weeks out. All three models see it. None of them has the clamps when the order ships.

Book 2 · wk 13–16

A customer books 22 washers, three weeks out. Every model and baseline has them ready.

SOL · PRACTICE BOOK 2 · WEEK 13
Linked clamp stock already covers its nine-unit booking.

The substitute didn't fill the order, and nine units of sales were lost.

6Limitations

Next, we plan to evaluate the 52-week version already built and test more models.

Run details
  • Models: GPT-6.1 Sol (gpt-6.1-sol), Claude Opus 5.5 (claude-opus-5-5) and Gemini 4 Argon (gemini-4-argon), high reasoning effort, 64,000-token output limit, accessed through each provider's API.
  • Look-up setups: six tools (item card, open POs, vendor questions, note search, related items and vendor terms), with up to five rounds per week, 10 look-ups plus one per item, and 60,000 characters of answers. Vendor answers arrive the following week.
  • Secret books: 160 books (3,600 item-seasons), half 15-item and half 30-item, 3 draws each. Environment version 2.3.0; code revision 6cccaf7.
  • Scoring details: demand margin includes orders from customers who later leave, at the list prices and costs in force at the time. Net profit includes sales and all operating costs, net of discounts. A standard buyer with true demand and lead-time information runs 26 further weeks from the final stock, open POs and waiting customers, and from a freshly stocked reference shelf on the same demand. The profit difference is added as the end-of-season adjustment, accounting for carrying costs, sell-down, write-offs and shortages. Lost sales are counted once.
  • An order that can't be read counts as a week with no order. Provider replies that terminate as malformed or undeclared native function calls get up to two retries; this is not a general retry of every invalid order.
  • Intervals: 95% percentile bootstrap over books, each with its three draws (2,000 resamples, the same for every row); differences are paired on the same book-draws. They don't cover run-to-run variation.
  • Aggregate results: JSON. The code repository is private for now.