Open to Buy: Proving the Math Actually Works

A deep dive into the retail planning formula, the elegant carry-forward mechanism, and why the report looks confusing even when it’s exactly right.

Posted on February 17, 2026 · 10 min read

Open to Buy is one of those concepts that sounds simple — how much money do I have left to spend on inventory this month? — but becomes surprisingly subtle the moment you try to project it across multiple future periods. We recently took a deep look at how the Open to Buy reports work in VMX. The formula turned out to be correct. The logic turned out to be elegant. And the user confusion turned out to be completely understandable.

This is that story.

What Open to Buy Actually Means

Retailers live and die by inventory. Too little, and you miss sales. Too much, and your cash is locked up in stock that’s gathering dust. Open to Buy is the tool that keeps you in the Goldilocks zone.

The formula, in cost dollars, is:

The Formula
OTB = Planned COGS + Desired Ending Inventory − Starting Inventory − On Order

In plain English: how much do I need to receive this period, minus what’s already coming?

Each term has a clear job:

  • Planned COGS — what you expect to sell at cost. Based on historical averages by month or week.
  • Desired Ending Inventory — how much you want to have left at the end. The target buffer.
  • Starting Inventory — what you have right now (period 1) or what you should have (future periods).
  • On Order — committed POs arriving this period. Already spoken for.

The Target Buffer: Forward Months of Supply

The most interesting design choice is how “Desired Ending Inventory” is calculated. The report doesn’t use a static dollar figure — it uses Forward Months of Supply: whatever you’re going to sell over the next N months, that’s how much you want on hand at the end of this month.

Why This Makes Sense
If your average monthly COGS is $20k and you want 4 months of supply on hand at all times, your ending inventory target is the next 4 months of projected COGS: e.g., $20k + $22k + $18k + $20k = $80k. This naturally scales with seasonal demand — spring buying season automatically sets a higher target.

Your department’s “Ideal Annual Turns” setting translates directly: 4 turns/year → 12 ÷ 4 = 3 months of forward supply. You can adjust this per department under Admin → Departments.

The Chain: How Periods Link Together

The multi-period report covers 24 months out. Each row’s Starting Cost is set to the previous row’s Ending Cost — the target, not a projection of actual inventory. This is the key design choice that makes everything work, and also causes most of the confusion.

“Future periods assume you purchased the prior period’s Open to Buy. If you did, you’ll have exactly the target inventory. If you didn’t, re-run the report with current inventory.”

This is the standard OTB assumption, used by every professional planning tool. The report tells you what to buy. If you follow it, it stays correct. If you don’t, refresh it.

The Carry-Forward: Where It Gets Clever

What happens when OTB is negative? You’re overstocked — you shouldn’t buy anything. But the chain, which assumes you’re always at target, would naïvely suggest you’re back to normal next month. That would be wrong.

VMX solves this with a carry-forward: when OTB goes negative, the excess overstock is carried into the next period and subtracted from that month’s buying budget. This is not an approximation — it’s algebraically exact.

Proving It: A Concrete Example

Let’s say current inventory is $110k, target is $80k (four months supply at $20k/month COGS), and there’s nothing on order.

MONTH 1 Overstocked Feb 2026
Starting (actual inventory)$110,000
Planned COGS$20,000
Ending Target (4×$20k)$80,000
On Order$0
Raw OTB = $20k + $80k − $110k−$10,000
→ Clamped to $0. Carry −$10k into Month 2.Don’t buy anything.
Actual ending inventory (sold $20k, bought nothing)$90,000
MONTH 2 Still digesting overstock Mar 2026
Report’s Starting Cost (Month 1 target)$80,000
Actual Starting Inventory$90,000 ← different!
Planned COGS$20,000
Ending Target$80,000
Raw OTB = $20k + $80k − $80k$20,000
Apply carry from Month 1: $20k + (−$10k)$10,000
Final OTB (matches real answer!)$10,000 ✓
Why They Match — The Algebra
OTB with carry = (COGS₂ + Target₂ − Target₁ − Order₂) + (COGS₁ + Target₁ − Starting₁ − Order₁)
= COGS₂ + Target₂ − Starting₁ + COGS₁ − Order₁ − Order₂

Real OTB for Month 2 = COGS₂ + Target₂ − (Starting₁ − COGS₁ + Order₁) − Order₂
= COGS₂ + Target₂ − Starting₁ + COGS₁ − Order₁ − Order₂

Identical. The carry-forward is not an approximation — it’s exact.

On Order: The Right Interaction

A PO arriving in Month 2 correctly reduces Month 2’s OTB — “don’t buy $30k because it’s already coming.” If that PO pushes Month 2 into negative OTB territory, the carry-forward propagates forward to Month 3. This is correct retail planning behavior.

Three Things That Look Wrong (But Aren’t)

The logic is sound. But the way it displays can be confusing. Here are the three things that trip people up most:

1
The carry number appears on the wrong row. A gray parenthetical like (10.00) on Month 1’s OTB column is the amount being carried into Month 2 — but it shows up on Month 1’s row. A buyer scanning the column reads it as “Month 1 OTB is negative ten dollars.” It isn’t — it’s a deduction applied to next month.
2
A blank OTB cell is ambiguous. When OTB is exactly zero — either because you’re perfectly stocked, or because a negative was clamped — the cell shows nothing. Visually identical. A buyer can’t tell whether to celebrate or worry.
3
Future “Starting Cost” is the target, not projected actual. Row 0 (the current period) shows your real inventory. Rows 1–23 show what you should have if you follow the plan. Same column header, completely different meaning. The chain only makes sense once you understand this.

Making It More Obviously Correct

The formula doesn’t need to change. The display does. Here are four targeted improvements we’re working on:

Fix 1 — Highest Impact

Move the carry indicator to the row where it lands

The gray carry amount should appear in Month 2’s Starting Cost cell — as a sub-line reading “incl. $10k carry from overstock” — not on Month 1’s OTB cell. This makes the flow of money visible as it actually moves.

Fix 2 — Highest Impact

Color the OTB cell when overstocked (clamped)

When OTB is clamped from negative, show the actual negative amount in a light red cell. A buyer needs to know why there’s nothing to spend — “overstocked by $10k” is very different from “perfectly stocked.”

Fix 3 — One Liner

Add a dagger to the Starting Cost column header

Label it “Starting Cost †” with a footnote: † Months 2+ show target inventory assuming you purchase each period’s Open to Buy. Sets expectations for the whole table.

Fix 4 — Optional Polish

Show Effective Starting Cost when carry is active

When a carry is active, show $80k target with a small annotation “(effective $90k).” Lets a careful buyer trace the math by hand and verify it adds up.

What the table would look like with fixes 1 & 2

Month COGS Ending Cost Starting Cost † On Order Open to Buy
Feb 2026 20,000 80,000 *110,000 overstocked $10k
Mar 2026 20,000 80,000 80,000
incl. $10k carry
10,000
Apr 2026 20,000 80,000 80,000 20,000
May 2026 22,000 84,000 80,000 15,000 7,000

† Future months show target inventory, assuming you purchase each prior period’s Open to Buy.

Conclusion

The Open to Buy report implements the correct retail planning methodology. The carry-forward mechanism is not a patch — it’s algebraically equivalent to tracking actual projected inventory. The on-order interaction is correct. The seasonal averaging is correct. The chain linking is correct.

What’s not always clear is why the numbers look the way they do. The gray parenthetical on the wrong row, the ambiguous blank cell, the unlabeled starting-cost assumption — these are display issues, not logic bugs. And display issues are what turn a correct report into a confusing one.

A report that’s right but looks wrong is only half as useful as one that’s right and looks right.

The fixes are small. The clarity improvement will be significant. We’ll have these improvements out in the next update.


Questions about Open to Buy or how to set up your department turn targets? Reply to this email or reach us at help@vmxllc.com.


Thanks for taking the time to read about what we've been up to! Let us know if you're interested in seeing more. We love getting to show what we've built!

Andy Hanna
Written by

Andy Hanna

Founder, VMX

Let's Get in Touch!


Ready to streamline your garden center?
Give us a call or send us an email to schedule a demo of VMX POS®!