Named parts, not one number
A pool is not a single balance. Available, reserved, operational and contingency are tracked separately, so “how much is there” and “how much can be used” are different questions with different answers.
Conversion and settlement both draw on a position that has to be real, measured and defensible. BINK keeps one pool per currency, divides it into parts that mean different things, and writes down every movement against it.
One record per supported currency. Balances are whatever has been moved in — no capacity figure is published.
A pool’s status is not a judgement — it is the answer to where its balance falls against two thresholds it carries itself. Both are configurable per pool, and changing one is an audited action like any other.
A conversion that crosses a threshold re-derives the status immediately and raises the alert as part of the same flow, rather than waiting for a sweep to notice.
No level is drawn. A pool holds whatever has been moved into it, and showing a fill here would be inventing a balance.
The balance change and the record of it are one operation. Either both happen or neither does — which is what makes the event history a reliable reconstruction of the pool.
Three things, and no others. Each one leaves the same kind of trace, so the history does not distinguish between an automatic movement and a deliberate one except by its recorded reason.
These are BINK’s own operating pools. There are no external liquidity providers, correspondent banks or market sweeps behind them, and none are claimed.
A treasury position is only as good as the evidence behind it. Everything here is derived from balances that exist, converted at rates that were actually used.
A pool is not a single balance. Available, reserved, operational and contingency are tracked separately, so “how much is there” and “how much can be used” are different questions with different answers.
Each pool carries its own alert and minimum levels. Status is derived from them rather than assessed by eye, and the levels themselves are set through an audited change.
A movement is applied as a database-level increment inside a transaction, so two movements arriving together cannot both act on the same starting balance.
Every movement writes an event carrying the balance before and after. The history is added to, never edited, so a pool’s balance can be reconstructed from its events.
Coverage, currency concentration and survival horizon are evaluated against defined thresholds, with repeat alerts suppressed inside a cooldown window.
Positions are captured hourly and daily from real balances, normalised to a single currency through live rates, and projected forward with a stated confidence rather than a bare number.
Liquidity sits underneath the product surfaces rather than beside them, so it is worth being exact about who touches it and how.
Set the alert threshold high enough that a pool is flagged while there is still room to act, rather than at the point it can no longer cover what is asked.
Track committed and held amounts apart from free balance, so “how much is there” and “how much can be used” never have to be the same answer.
Rebalance from one pool to another with a sufficiency check first, writing both sides and both events together or not at all.
Reconstruct how a pool reached its current balance from its own event history, without depending on a report that was generated at the time.
Liquidity is the layer underneath the movement surfaces rather than a product of its own.
Every movement recorded, every threshold explicit, and every cross-currency figure converted before it is summed.