Competitive positioning
How to read bid-market signals and when to move price. This page does not change the cost-floor math — that stays in pricing.
Reading bid-market signals
You do not get a public tape of every bid. What you can observe:
| signal | where | how to read it |
|---|---|---|
| Fill rate | GET /v1/sellers/{id}/trades | Asks that expire with remaining == capacity are above the market |
| Time-to-first-fill | trade created_at vs ask created_at | Fills inside one TTL (300s) mean you are at or under the crossing bid |
| SLA breaches | SLA | A cheap ask that trips the breaker is removed from the book |
Buyer max_price | not visible | Infer only from whether you fill |
Poll trades on the cadence you already use for trade history. A single empty TTL is noise; three consecutive unfilled asks in the same window is a price signal.
What makes a listing attractive
Buyers match on model_id and price. Everything else is a constraint you absorb:
| lever | buyer cares because | you set it by |
|---|---|---|
| SLA | first token 2000ms + 100ms/token | hardware + batch size, not an ask field |
| Geography | their latency to your endpoint_url | where the box lives (operator-managed) |
| Workload shape | burst vs sustained | capacity and refresh cadence |
| Price | max_price must be ≥ your price | margin and ask |
A listing that cannot hold the SLA at the offered capacity will not stay on the book. Size capacity from the walkthrough, not from a desire to look large.
When to adjust ask price
| condition | action |
|---|---|
| Three consecutive asks expire unfilled in one availability window | Cut price 10%, not below the incremental floor |
Fills arrive in < 30s and remaining hits 0 before TTL | Raise price 10%, re-check next window |
| Circuit breaker trips | Stop cutting price; reduce capacity or tokens/s until SLA holds |
| Power tariff changes | Recompute power cost, then price |
| Hardware is fully amortized / spare-only hours | Switch to the incremental floor in spare capacity |
| Book is empty and you are the only ask | Do not raise above the 35% margin cap in target margin without a fill history |
Never set price below incremental power + overhead. That is the two failure modes the brief names: underpricing (ignoring real costs) and overpricing (not reading fills).