avocore engines

jobs billing shipping repricer ads optimizer public api api docs
πŸ“– Strategy guide β€” how each option behaves (read once, then collapse)

Core concepts

Buy Box (BB) β€” Walmart picks one seller per product to be the "default" offer on the product page. That seller gets nearly all the sales. Our repricer's job is to either win the BB or extract more margin while we already own it.

min_price / max_price β€” Hard guardrails. The repricer will never price below min or above max, no matter what the strategy decides. These are your safety net.

tick_interval_seconds β€” How often this policy is re-evaluated. Default 1800 (30 min). Walmart's own repricer cycles every 4–6 hours, so going under 900s (15 min) wastes API calls without faster results.

DRY / LIVE β€” In DRY mode the engine computes a decision and logs it but does not push the new price to Walmart. Always start a new SKU in DRY, watch decisions for 1–2 days, then flip to LIVE once you trust it.

Strategies

probe_up β€” Recommended default.
When you own the BB β†’ push price up by probe_step each tick (clamped to max_price). When a competitor takes the BB β†’ undercut them by beat_by. When no competitor at all and raise_when_alone=true β†’ jump to max.
Best for: maximizing margin while keeping the Buy Box. The engine keeps probing higher until you lose BB, then defends.

beat_buybox β€” Aggressive defender.
If a competitor owns the BB β†’ undercut them by beat_by. If you already own the BB at or below their price β†’ do nothing (no self-undercut spiral).
Best for: SKUs where you want to lock the BB at the lowest defensible price. No upward exploration β€” price will trend down over time.

match_buybox β€” Match exactly.
Set our price = BB price. If you already own the BB at or below it β†’ do nothing.
Best for: keeping pace with the BB without racing to the bottom. You'll tie for BB rotation rather than win it outright.

hold_at_max β€” Freeze.
Always price at max_price. Ignores all competition.
Best for: brand items where you don't want to price-compete, testing, or temporarily freezing a SKU's price.

walmart_native β€” Defer to Walmart's "Buy Box Price" strategy.
Our engine does not push prices for this SKU. Instead, when you save the policy we send a REPRICER_ELIGIBILITY feed to Walmart binding the SKU to Walmart's own Buy Box Price strategy with your min/max as guardrails. Walmart then manages the price within those bounds.
Best for: leveraging Walmart's internal optimizations (which sometimes see competitor data the API doesn't expose). Note: dry_run has no meaning here β€” Walmart pushes regardless. Walmart's first cycle takes 24–48h.

Field reference

beat_by β€” Used by beat_buybox and probe_up. How much to undercut a competitor's BB. $0.01 = beat by 1 cent.

probe_step β€” Used by probe_up only. How much to nudge price up per tick when we already own BB. $0.10 = try 10 cents higher each cycle. Bigger steps = faster margin discovery but rougher BB loss recovery.

raise_when_alone β€” When TRUE and there's no competitor visible at all, jump straight to max_price (free money). When FALSE, keep current price. Set FALSE if you suspect the API hides competitors and don't want to overshoot.

enabled β€” Master on/off. Disabled policies are kept for history but never tick.

Reading the decisions table

reason values you'll see: probe_up (pushed up because BB ours), beat_buybox (undercut competitor), match_buybox, no_change (already at target), no_competitor_raise (alone, jumped to max), clamped_max / clamped_min (would have gone past bound, capped instead), disabled, walmart_native.

push column: success (price actually updated on Walmart), failed (push attempt errored β€” see push_response), skipped (DRY mode β€” would have pushed), unchanged (decision was no_change).

create / edit policy

policies

inventory (catalog browser)

page 1

recent decisions