The network & the algorithms

Every fleet’s field data makes every other fleet sharper.

The hardest part of running vending isn’t the machine — it’s knowing how long a stop really takes, which corner is worth a cabinet, and what a slot should charge. We compute all three, and the operators who opt in make those answers better for everyone who comes after them.

Cross-fleet benchmarking

From the people, for the people — literally.

Route planning needs two numbers nobody has on day one: how many minutes a restock actually takes, and how fast a van really moves between stops in traffic. Guess them and every ETA you give a venue is wrong.

So participating operators pool those two field measurements — de-identified and in aggregate — and the platform uses the result as a middle tier: better than a guess, never allowed to override your own real data.

Pooled metric 1
Average restock service time
Pooled metric 2
Average effective drive speed

Which number gets used, in order

Tier 1 — always wins

Your own measured history

Once your drivers have completed enough real visits, your fleet is estimated from your fleet. Nothing from the network can override your own numbers — it is not a blend, it is a fallback.

Tier 2 — the network

The cross-fleet aggregate

Until you have that history, you inherit the platform-wide average built from every participating operator's completed visits. A brand-new operator's very first route is planned on numbers earned by fleets that already did the work.

Tier 3 — last resort

A static configured default

Only reached when the network aggregate hasn't cleared its minimum participation floor. It's a guess, and the system treats it as one.

What pooling does and doesn’t mean

Shared data only works if nobody can be reverse-engineered out of it.

A benchmark that leaks a competitor’s operation isn’t a benefit, it’s a liability. The limits below are enforced in the code that computes the numbers, not in a policy document describing intent.

Aggregate-only, by code shape

Every method returns exactly one blended number plus the sample counts behind it. There is no parameter on any of them that could request a per-operator or per-region breakdown — the capability doesn't exist to be misused.

A minimum crowd before anything counts

A figure isn't computed or used until a floor of distinct operators and distinct samples have contributed. A thin aggregate can never quietly become a proxy for one competitor's real numbers.

Opt-in, and covered in writing

Participation is a choice, disclosed in the Terms of Service and cross-referenced in the Privacy Policy — not something buried in a settings page after the fact.

Field telemetry, never commercial data

What's pooled is how long a restock took and how fast a van moved between stops. Not your prices, your margins, your suppliers, your customers, or where your machines are.

Scout — site selection

A 0–100 score you can argue with.

Search a city, or draw a polygon on the map, and every venue inside it comes back scored for the machine profile you’re placing — vending, battery rental, or collectibles. The weights are published, the inputs are named, and the output tells you which factors it couldn’t source.

  • Built from open map data plus area-level Census demographics
  • Profile-aware: a bar scores differently for batteries than for vending
  • Ownership read — independent vs. chain, and who can actually say yes
  • Competition and compliance checks folded into the score

Factor weights

of 100
Foot traffic (estimated)30
Visibility15
Demographics (Census)15
Repeat visit rate12
Competition nearby10
Review quality10
Safety / crime5
Parking5
Accessibility5
Nearby attractions5

Struck-through factors have no free, reliable data source. Rather than fake them, the model declares them unavailable and redistributes their weight across the rest — and says so in the output.

Merchandising intelligence

Measured demand, not vibes.

Every recommendation is derived from the restock engine’s own numbers — per-slot sales velocity, days of cover, and revenue per day. Same inputs the route planner uses, so the advice and the schedule never disagree.

STOCK_MORE

A fast seller is capacity-starved — it sells out between visits and you're leaving money in the van.

STOCK_LESS

A slow seller is tying up cash and shelf space that a proven product could be using.

SWAP

This machine's dead slots, matched against what actually sells across the rest of your fleet.

CHECK_MACHINE

Sales flatlined in a way demand doesn't explain — usually a jam, before a customer reports it.

PRICE

What demand says this slot should charge — a suggestion when dynamic pricing is off, a report of what's applied when it's on.

Dynamic pricing

Demand-aware pricing that can’t do anything reckless.

Scarce and selling fast, the price nudges up — which also slows the sellout until your next visit. Well-stocked and not moving, it marks down to convert stock back into cash. Every change is written to the audit log with its before, after, and reason.

It is off until you turn it on, per machine. Left off, the same engine still tells you what it would have charged, as a recommendation you can take or ignore.

The rails it cannot cross

+10%
Hard ceiling over base price
−15%
Hard floor under base price
1.15×
Never below unit cost, ever
7 days
Minimum history before any move
Prices land on clean boundaries
0
Adjustments on unproven slots

Customers see stable prices, not a stock ticker — and no demand signal, however strong, can push a slot below cost.

Join the network

The newest operator gets the whole network’s experience on day one.

That was the point of building it this way. Put your first machine in and you inherit what everyone before you learned in the field — no history of your own required.