NightWatch Labs, updated 2026-10-21
A Guardrail rating answers one narrow question about a perpetual market that tracks an index or an ETF: is it a usable way to hold that exposure today, or is it too thin? The answer is produced by a fixed rule, not by an opinion. Anyone with the stored inputs can recompute it and get the same result. This page lays out the inputs, the thresholds and the way they combine.
The rated universe is the set of index and ETF perpetuals that NightWatch relays from the trade.xyz markets on Hyperliquid. Each one has a declared reference, such as a broad index, a sector ETF, a leveraged ETF or a country ETF, and the reference is marked verified or pending. The rating looks at the perpetualâs trading conditions. It does not predict the price, it does not judge the reference, and market news is never an input. The ratings are listed on the index perps page.
| Rating | Meaning |
|---|---|
| usable | Every checked metric is inside its comfortable range. |
| thin | At least one metric is outside the comfortable range but not in the worst band. |
| avoid | At least one metric is in the worst band, the reference is unverified, or the history is too short. |
| insufficient | Fewer than 20 samples in the window, or spread and depth could not be measured. No rating is invented. |
A scanner takes a snapshot of each marketâs order book about every 15 minutes by default. For each snapshot it records the spread in basis points and the depth: the dollar size resting within 2% of the mid price on the bid side and on the ask side. Medians over a 14-day window are used rather than averages, so one odd snapshot cannot move the result. The same medians are computed for the whole window and for four session buckets, which follow the New York clock and adjust for daylight saving:
Each bucket needs at least 20 samples to be rated. Also recorded are the 24-hour notional traded, the maximum leverage, and the funding drag: the absolute value of the mean funding rate, scaled to a year. The funding drag uses a 30-day window for the rule and a 7-day figure for display.
| Metric | Comfortable (usable) | Worst band (avoid) | In between |
|---|---|---|---|
| Spread, median | 15 bps or less | above 40 bps | thin |
| Depth within 2%, the smaller side | 100,000 USD or more | below 25,000 USD | thin |
| Session share of the day's notional | 10% or more | below 2% | thin |
| 24-hour notional (whole window only) | 10 million USD or more | below 1 million USD | thin |
| Funding drag per year | 15% or less | above 40% | thin |
The session share is the median, across weekdays, of how much of each dayâs trading happened in that session, so a market that is only active in one session shows up as thin in the others. Weekends are exempt from the share test, because a weekend is a whole day and not a slice of one. The 24-hour notional test applies only to the whole-window rating; the session buckets use the share test in its place.
Every metric gets a level: 0 for comfortable, 1 for in between, 2 for the worst band. The rating is set by the single worst level present, and ties are broken by a severity score, so the rating always names the metric that decided it. One bad number is enough. That is deliberate: a tight spread does not rescue a market with no depth.
Three more entries join the same comparison. If the reference is not verified, a level-2 entry named reference is added, so the market cannot rate better than avoid. If the first scan is under about seven days old, or there are fewer than 20 samples in the last seven days, a level-2 entry named provisional is added. And the NW Grade letter for the market is mapped to a level: A and B are comfortable, C is in between, D and F are the worst band.
NW Grade is the site-wide liquidity letter from A to F, computed by a single calculator for every market NightWatch scans. It scores a depth risk and a spread risk and weights them 70% and 30%. Depth risk rises as depth within 2% falls below a floor of 500 USD; spread risk rises as the spread approaches 1.5%. Internally the calculator produces a finer scale from A plus to F; Guardrail uses the first letter. For the perpetuals it is calculated from the 14-day median spread and the summed bid and ask depth.
Two measures are displayed without affecting the rating. The tracking gap compares the perpetualâs price at the moment the reference closes with the referenceâs official close, for each trading day in the last 14 days, and reports the median and the worst day; it needs at least five days and says âinsufficientâ below that. The gap risk measures how far the perpetual moved between a reference close and the next open, over at least five closed stretches. Both are explicit that they are context, not inputs.
Every rating carries one sentence naming the deciding number, for example that a market is thin outside US regular hours because of its depth in the Asia session. If the regular session is better than the whole-window rating, the sentence points at the worst other session. The sentence is generated from the same stored numbers as the rating.
The rating is recomputed on each scan cycle, but a new row is stored only when the rating changes or when six hours have passed since the last row. Stored rows are never edited. In parallel the system asks the house AI model the same question and stores its answer and the level of agreement next to the ruleâs result. The rule decides; the modelâs answer is shown for comparison. Until a month of agreement records is published, every rating carries the label âjudged by the house AI, calibration pendingâ.
Exchange-level grades use a separate rule and are shown on /exchanges by venue code.
A rating describes trading conditions at the time of computing. Informational only, it is not a view on any asset.
Informational only, not investment advice. See the risk disclosure.