The engine describes its own output in two clauses: top decile becomes the long book, bottom decile becomes the short book. The first clause is an execution problem you solve with a broker. The second is a market structure problem, and in crypto it decides whether the thing you backtested is a thing you can run.
On the crypto tab at capture the board ranked 171 assets, with 100 of them shown as outperforming the benchmark basket. A decile of 171 is seventeen names. So the short book as designed is seventeen crypto assets selected purely on relative weakness against Bitcoin, Ethereum, Solana, gold and the S&P 500. Before any of that becomes a position, somebody has to answer a question the board does not ask: on which venue, in what size, and at what carry can each of those seventeen actually be sold short.
What the bottom of a crypto ranking is made of
You can infer the shape of the bottom decile from the top, because the size distribution does not invert. On the crypto board at capture the top-ranked rows ran from OKB at a 2.38 billion dollar market cap down through Convex Finance at 196.51 million, Acurast at 41.43 million, XFee at 2.52 million and Hathor at 1.79 million. Twenty-four hour volume on the same rows ran from 40.34 million on OKB to 370.40 thousand on Eesee to 19.96 thousand on XFee. If that is what qualifying for the top of the ranking looks like, the weak end is not systematically deeper.
There is an operational trap ahead of that. The board also carries rows with a dash in place of price, market cap and every return column, showing a score of 0. IOTA, LCX, Horizen, APEX and Overtime all sat in that state at capture. Sort the board ascending on Score to reach the bottom decile and the first block you hit is the unscored rows, not the weakest ranked assets. An extract that takes the tail of an ascending sort without filtering the zero-score block is building a short book out of missing data. Filter on a scored row first, then take your decile.

The fields the board carries, and the one it does not
The crypto tab shows Asset, Type, Price, Mkt Cap, Vol 24h, Score, Conviction, Phase, 1D, 7D, 30D, 90D, ATH %, #Out, Avg Out and an Action cell with a trade button. Not one of those is a borrow field. There is no perpetual listing flag, no funding rate, no borrow rate, no utilisation figure and no locate. That is a scope boundary rather than a defect. The module ranks relative strength across a benchmark basket, and it does that on both legs symmetrically, which is precisely why the asymmetry has to be imposed from outside.
So the eligibility layer is yours to build and yours to maintain. In practice that is a table keyed on symbol, refreshed on the same cadence as the ranking, carrying perpetual availability by venue, spot margin borrow availability, an indicative borrow or funding cost, and a hard size cap. The ranking is a daily artifact. Your eligibility table has to be at least as fresh, because a name that was borrowable at last quarter's review is not evidence about today.
The eligibility pass, ordered to kill names fastest
Run the cheapest disqualifiers first so the expensive checks only touch survivors.
- Is there a perpetual on a venue your desk is approved to trade? For most institutional crypto books this is the only practical short instrument, and it removes the majority of a microcap decile in one pass.
- If there is no perp, is there spot margin borrow, at what indicative rate, and what does the utilisation look like? A name available at a punitive rate is available in the same sense that a bid one percent wide is a bid.
- What position size does the venue's open interest and the asset's daily turnover support at your participation cap? A 19.96 thousand dollar daily tape does not carry an institutional short at any borrow cost.
- Is the row actually a crypto asset? The crypto tab at capture carried MicroStrategy quoted as an Ondo tokenized stock, ranked as crypto with a score of 69. A short there is equity exposure in a token wrapper, which is a different risk, a different approval and probably a different desk.
The exchange selector on the toolbar helps with the first cut and only the first cut. Restricting the board to approved venues narrows the ranked set to names you could in principle reach. It is not a borrow check and should never be documented as one.
What the surviving spread actually is
Do the arithmetic on the residual. Suppose seventeen ranked short candidates go into the pass and four come out with usable perps at acceptable carry. If the sleeve holds equal notional per leg, each surviving short now carries four times the weight it was designed to carry. You have replaced a diversified short book with four concentrated single-name shorts chosen not by conviction but by which names happened to have derivatives listed. That is a selection process, and it is not yours.
The usual alternative is to hedge the residual with the benchmarks themselves. That is defensible, but be explicit about what it converts the strategy into. Short Bitcoin, Ethereum and Solana against a long book of ranked names and the short leg is the benchmark basket, so the sleeve is now a bet on selection within crypto rather than a market neutral spread. The benchmark panel at capture shows what that costs in a strong tape: over the trailing seven days Bitcoin was up 21.87 percent, Ethereum 29.22 percent and Solana 24.89 percent. A proxy short against those moves is a real cash cost that arrives before any selection edge does.
The third option is to run the sleeve long only and size it down, which is often the honest answer. It has the advantage of being describable in one sentence to an allocator, and the disadvantage of leaving the beta in.
Documenting the leg you did not put on
When the sleeve underperforms, the review question is whether the model was wrong or the implementation was partial, and you cannot answer that retrospectively from a position file. Capture it at each rebalance instead: the ranked short list the engine produced, the subset that cleared eligibility, and the specific reason every rejected name failed. Then the gap between the paper spread and the traded spread is a measured quantity you can attribute, rather than an argument.
Do that for two or three quarters and a second fact becomes visible, which is the one worth escalating. Unshortable names are not a random sample of the decile. They are disproportionately the smallest, thinnest and least covered assets, which in relative strength work is exactly the cohort where the raw signal tends to look strongest. So the eligibility filter is not noise around the strategy, it is a systematically adverse cut into it, and any capacity estimate built on the unfiltered backtest is overstating what the desk can hold. State that in the strategy document at the outset, in basis points where you can, because the alternative is discovering it in a drawdown review with a room that thinks the model stopped working.