Ballast
Somnia testnetDocsLanding pageDashboardRepo

Refusals

Ballast declined far more often than it bought, and every refusal is on chain with the reason it gave. That is the product working, not a gap in it.

On this page
  1. A refusal is a decision
  2. Every reason
  3. What the run refused
  4. Unpriceable exposure

A refusal is a decision#

A system that shows you only what it did is hiding what it chose not to do. Over the recorded history Ballast opened 258 covers and refused 13,248 times — about 51 refusals for every purchase.

Every one of those is an event on chain carrying its reason, and they are all readable on Activity. None of them is an error.

Every reason#

ReasonWhat it means
No exposureNo measured spot position in that asset, so there is nothing to cover. Ballast sizes against what it can read, never against a number you type.
No liquidityThe Down book was empty. Refused rather than mispriced — a price invented from an empty book is not a price.
Cover too expensiveDown priced above 0.90, where the size needed to make you whole diverges. Paying it would cost more than the fall it covers.
Below minimum lotThe affordable size rounds to zero on the venue's lot grid. Buying the next lot up would exceed your premium ceiling.
No headroomA ceiling you set was already committed in that window. The limit did its job.
Placement failedThe purchase reverted — the pool refused the order, or it ran out of gas partway. The rest of the batch continued; one failure does not take the others down.
Already coveredThis window already holds cover for this account. Buying twice would double the premium for the same protection.
Policy inactive or expiredNo active consent, so no action. This is the engine having no authority rather than choosing not to use it.
Would misrepresentThe position would deliver nothing it could honestly describe as the cover requested.
No open priceThe window's opening price was never recorded, so there is no strike to measure a fall against.
Attempts exhaustedThree attempts, and the book never became priceable. The window is marked given up rather than left pending forever.

What the run refused#

Counted from the frozen record, 1–11 September 2026 — the same source the dashboard reads, so these cannot disagree:

ReasonTimes
No exposure7,043
No liquidity3,792
Below minimum lot1,411
Placement failed453
Cover too expensive385
Would misrepresent160
Policy inactive or expired4
Given up after three attempts7,374
The largest category is the least interestingMost refusals are no exposure: the engine is woken for every window dreamDEX rolls across every series, and the account holds a position in only one of them. That is the subscription being broad, not the engine being indecisive.

Unpriceable exposure#

A separate state, and the one the interface handles most carefully. When the Down book is one-sided there is no price to size against.

  • What is true: your position and your policy are unchanged, and your collateral is untouched.
  • What Ballast sees: a book it cannot price. The exposure source returns not-priceable rather than a guess.
  • What happens next: it waits. The window is retried up to three times, and if the book never forms it is given up with that reason recorded.

The dashboard says unpriceable — the book is one-sided rather than showing a number, and so do these docs: the worked examples on What it is and What it pays refuse to render a table when the live book cannot price one.