Skip to content
PRICING

What a plan changes, exactly

Every row below is a limit the site's code enforces, rendered from the same constants the code reads (ENTITLEMENTS.md). If it is not in a row, no plan sells it.

WHAT MONEY BUYS THAT RUNNING IT YOURSELF DOES NOT

A signed statement about a plan

attestations_per_day

The Ed25519 private key never leaves this deployment, so nobody else can produce one — and anyone can check it, free, at /verify or offline with the CLI. The proof pack puts it in the shape you would actually send: the plan, both exports, the statement and a README that tells the recipient how to check every part without us.

Plans kept, and addressable by their hash

plan_history

A plan you can point somebody at months later, without running a service to keep it. Self-hosting gets you the same artifacts; keeping, backing up and serving them is the part you would be operating.

A credential you can hand to an integration

api_keys

Your WMS, your CI job or an agent calls /api/v1 with a key whose owner you can downgrade or revoke in one place. The alternative is standing up and securing the endpoint yourself.

Planning on our hardware, at a stated rate

compute_per_min

Orders of thousands of cases, from a phone, a spreadsheet macro or a hosted agent with no machine of its own. Limits are published per plan and enforced in code, not discovered under load.

URScript and CSV exports from the API

exports

Convenience, and it says so: the files are byte-identical to what `palletizer export` writes for free. You pay to not run the CLI in the loop, never for a different engine.

FREE
$0
A signed-in account. Without one, the “No account” column of ENTITLEMENTS.md applies.
Cases per optimize request
500
Pallets per order, in one request
3
Compute requests per minute
60
Model-written answers per day (assistant, co-pilot)
20
Plans kept in history
—
Exports from the site and API (URScript pose list, placement CSV)
—
API keys for /api/v1
—
API-key requests per day
—
Signed verification attestations per day
—
Create an account
PRO
$1,190/mo
per account · billed annually
+ Ontario HST (13%) ≈ $155 · $1,345/mo incl. tax
Cases per optimize request
2,000
Pallets per order, in one request
50
Compute requests per minute
120
Model-written answers per day (assistant, co-pilot)
200
Plans kept in history
500
Exports from the site and API (URScript pose list, placement CSV)
urscript, csv
API keys for /api/v1
2
API-key requests per day
5,000
Signed verification attestations per day
200
CELL
Quoted
Invoiced, after a pilot. Set by the operator; no card checkout.
Cases per optimize request
5,000
Pallets per order, in one request
200
Compute requests per minute
300
Model-written answers per day (assistant, co-pilot)
500
Plans kept in history
5,000
Exports from the site and API (URScript pose list, placement CSV)
urscript, csv
API keys for /api/v1
10
API-key requests per day
50,000
Signed verification attestations per day
2,000
Start with a pilot
PILOT (30 DAYS)
Fixed scope
Cell's limits for 30 days, then Free — the kill date is in code. Scope in the statement of work.
Cases per optimize request
5,000
Pallets per order, in one request
200
Compute requests per minute
300
Model-written answers per day (assistant, co-pilot)
500
Plans kept in history
5,000
Exports from the site and API (URScript pose list, placement CSV)
urscript, csv
API keys for /api/v1
10
API-key requests per day
50,000
Signed verification attestations per day
2,000
Request a 30-day pilot
NOT METERED BY ANY PLAN
  • — The engine, the CLI and the MCP server — Apache-2.0, on your own machines, with no limits from this page
  • — Planning in the browser on /demo, and checking a plan file on /plan
  • — Downloading any plan as its JSON artifact, which `palletizer validate` and `palletizer export` accept

The site's exports are the files palletizer export writes, byte for byte; a paid plan buys the convenience of the hosted API and history, not a different engine. The API is described at /api/v1/openapi.json.

WHAT THE ENGINE IS WORTH IS ARITHMETIC

On the 300-case mixed reference order in this repository (examples/orders/mixed_order_300.csv), the engine packs 6 pallets where the first version of the splitter used 7, with every pallet admissible — against a lower bound of 4, which is published next to every result so you can see what is left. That figure is recomputed from the shipped engine on every test run.

What a pallet is worth is your number, not ours — freight, wrap, labour, a truck slot. This project has no customers and no measured savings, so it does not put a currency figure on that. Do the arithmetic with your own inputs, or run your own order and compare it with what you ship today.

No plan authorizes robot motion — only the safety gate does, and it does not read your plan. Nothing here is certified. Canadian customers are charged Ontario HST (13%), calculated at checkout by Stripe Tax.