Ranking a trading record against Bitcoin

Sharpe · Version 1 · 23 October 2026

Abstract

Sharpe ranks crypto traders by how far their trading beat holding Bitcoin, and by how much of that lead the evidence can support. Each day a record's return is compared with Bitcoin's over the same UTC day, in logs. The mean of those daily differences, divided by their standard deviation, is the information ratio against Bitcoin (Goodwin 1998). We subtract half of its standard error, estimated without assuming that returns are normal (Mertens 2002), annualise the result and call it XBD. XBD places a record on an absolute ladder whose centre, the Bitcoin line, is XBD 0: a record at or above it ended its scored days ahead of holding Bitcoin by enough to clear half its own uncertainty. With the rank we report Confidence, the probability that the record's true excess over Bitcoin is above zero (Bailey and López de Prado 2012), and how many days a record of its shape would need to establish its edge.

This paper sets out every rule that turns a record's days into a rank: what counts as a day's return, which days are left out and why, the equations, the ladder and the minimums a record must meet, with what we have and have not measured. Two parts are described without being disclosed in full. The checks against trading with yourself are described by what they look for and not by how they decide, and how the engine reads trades and chooses prices is not set out. Anyone holding a record's daily returns and Bitcoin's can recompute its score from what is here. The method is the one Sharpe uses today, and it may change as Sharpe grows.

1What a rank claims

A board that ranks traders by profit answers the question of who made the most. It cannot say whether the money came from skill, from the size of the account or from a fortnight of luck, and most boards that rank crypto traders rank by profit, by win rate or by return on investment. Sharpe asks how much edge over holding Bitcoin a trader's record can defend, given how much evidence it has and what that evidence looks like.

The answer is an inference about the record. Two records with the same profit can rank far apart if one made it steadily over ninety days and the other made it in three days and gave part of it back, because the second has less evidence behind it and its rank says so.

1.1 What is measured

A record is everything the engine can read of one trader over the window: the trades and holdings of a wallet anyone has added to the board, or of the wallets and exchange accounts a member has connected. The window is the ninety days the record is measured over. The unit inside it is the scored day, a UTC calendar day on which the record has a return and Bitcoin has a closing price (section 2).

On each scored day the record's return is compared with Bitcoin's in logs (equation 3). The mean of these daily excess returns, divided by their standard deviation, is the information ratio against Bitcoin. XBD, short for excess over Bitcoin, discounted, is that ratio annualised less half its standard error (section 3), and Edge is XBD placed on the ladder of tiers (section 4).

It is not a Sharpe ratio. A Sharpe ratio measures return per unit of total risk against cash, and against cash a record that carried three times Bitcoin's risk for three times its return would look strong. Measured against Bitcoin it scores unremarkably, which is the intended reading, since a bigger bet on Bitcoin is not an edge over it. No beta is estimated either. Crypto betas move too much to be estimated honestly from ninety days of returns, and an information ratio with its beta fixed at one needs none (Goodwin 1998).

Size does not enter the ratio. A trader making fractions of a cent with perfect consistency has the same ratio as one making real money with the same consistency, which we checked in the engine rather than assumed, and so size is gated from outside the statistics by the minimum of $50 at work on a typical day (section 5).

1.2 The Bitcoin line

Edge 2,000 is XBD 0, and the app calls it the Bitcoin line. Every record at or above the line ended its scored days ahead of holding Bitcoin, by enough that its lead clears half its own uncertainty. The sentence is true by construction. In logs the mean daily excess is positive exactly when the record compounded to more than Bitcoin over the same days, and a positive XBD asks for more than a positive mean.

The line is also a probability. XBD is at least zero exactly when the daily information ratio is at least half its standard error, which happens exactly when Confidence, Φ(IR / SE), is at least Φ(½) = 69.1%. The Bitcoin line and a Confidence of 69.1% are one line.

1.3 Why a benchmark, and why Bitcoin

A return on its own mostly measures the market. In a month when crypto rises, nearly every account that held anything is up, and ranking by return would rank traders by how much of a rising market they happened to hold. A benchmark takes the market out: each day the record is measured by what it did beyond what the market did.

The benchmark has to be something the trader could have done instead, and for a crypto trader that is not cash. Against cash, anyone who bought and held through a rising year would look skilled and their trading would never enter the comparison. The alternative to trading crypto is holding crypto.

Of everything a trader could have held, Bitcoin is the reference. It is the largest crypto asset by market value, with the longest and deepest market, it trades on every exchange and chain the method reads, and the rest of the market moves with it. Over six months of daily prices, the returns of almost nine in ten of the tokens we price whose own market traded most days moved in the same direction as Bitcoin's: Ether and Solana closely, with correlations of 0.89 and 0.85, and smaller tokens loosely, with a median of 0.19. Studies of the whole market find the same common factor running through crypto returns (Liu, Tsyvinski and Wu 2022). Any other single coin, XRP or Ether among them, would be one bet among many rather than the market's reference.

The textbook alternative is an index of the whole market, and the market factor in those studies is one. An index needs weights, a rule for which coins it holds and a schedule for rebalancing them, and each is a choice we would have to defend that would change over time; no trader holds an index as simply as they hold Bitcoin. Bitcoin needs nothing estimated, being one price series with no model and no beta, and the result explains itself: the record beat holding Bitcoin, allowing for risk, or it did not. Goodwin (1998) found that the choice of benchmark mattered more than any other choice in computing an information ratio.

We also considered measuring each position against simply holding that position. That measures how a trade was managed once it was opened, which for most traders is close to nothing, and it cannot say whether trading did better than staying in the market.

Bitcoin's return on a day is its close over the previous day's close, less one, on the same UTC calendar days as the record's, and a day without both closes is not scored. In a rising market Bitcoin is a harder opponent, and most records then show a negative excess, correctly (section 8.4).

1.4 Why ninety days

The window is the day a record is scored as of and the 89 days before it. It rolls. Each day one day enters and the oldest leaves, and there is no season reset because the window is the reset.

The length is a trade-off, and figure 1 shows both of its sides. A longer window holds more days, and more days measure a steady edge more precisely. Simulated on the day shapes of real records, a trader with a strong edge, a true annual information ratio of 2, out-scores a trader with none 75% of the time over ninety days, 83% over 180 and 92% over a year; and a day's result moves Edge less as the window lengthens, about a quarter as much at a year as at ninety days.

Strong edge (ratio 2)Good edge (ratio 1)Out-scores a trader with no edge50%60%70%80%90%100%306090120180365Window length, daysSharpe's window
Edge began 90 days agoEdge stopped 90 days agoNever had oneShown at Diamond or above0%20%40%60%80%306090120180365Window length, daysSharpe's window
Figure 1. What a longer window buys and what it costs, simulated on the day shapes of real records. Above: how often a trader with an edge out-scores one with none, by the length of the window. Below: how often a trader is shown at Diamond or above when their edge began or stopped ninety days ago, against a trader who never had one. Past 180 days a window credits the edge that has stopped more often than the one that has begun.
The numbers
Window, daysStrong edge out-scores noneGood edge out-scores noneDiamond+: edge began 90 days agoDiamond+: edge stopped 90 days agoDiamond+: never had one
3065.1%57.7%48.5%28.2%28.2%
6070.9%61.0%54.7%25.0%25.0%
9075.1%63.4%60.0%23.5%23.5%
12078.5%65.5%53.1%31.2%22.0%
18083.3%68.8%44.4%44.4%20.3%
36591.5%75.8%30.9%69.4%16.3%

That gain holds only while a trader's edge lasts as long as the window. Markets change and strategies stop working, and a long window goes on scoring a trader on months that no longer describe them. In the same simulation, a trader whose edge stopped ninety days ago is still shown at Diamond or above 69% of the time by a one-year window, against 24% by a ninety-day one, which is the rate for a trader who never had an edge; and a trader whose edge began ninety days ago reaches Diamond 60% of the time over ninety days but 31% over a year. A window credits an edge that has stopped for as long as the window lasts.

Whether real traders' edges last a quarter or a year is a question about traders rather than about the formula, and it has not been measured. Ninety days is our choice between the two errors. It answers within a quarter to a change in how a trader trades, and it pays for its smaller sample three ways: with the discount, with the Confidence shown beside every rank on the leaderboard, and with the mark a Diamond or Master record carries when it holds its tier for two windows running, 180 days of evidence. At ninety days the Bitcoin line asks for an annual information ratio of about 1.0, a level that Grinold and Kahn, whom Goodwin (1998) quotes, call exceptional.

1.5 What a rank does not claim

A rank describes ninety days that have already happened. Split in time, a record's score orders records by what follows, mostly at the bottom of the ladder; whether a rank at the top predicts a better next ninety days is not established (section 7.4). A rank also covers only what the engine can read, which is the trades and holdings of connected accounts and of wallets on the chains it supports (section 8.3).

Nor is it a judgement of the trader. A record that cannot yet be measured is unplaced, which is different from ranking low (section 5).

2A scored day

Every later step counts scored days, so the rules for a single day decide more of a rank than any equation that follows them. This section gives those rules: how a day's profit and its return are formed, what happens to a holding that has no market price, how much of a record has a price, and which days are left out.

2.1 The day's profit

Days are UTC calendar days. The engine rebuilds a record's positions from its trades and values them at each day's closing prices, and the day's profit is

pnlt=(Vt−Vt−1)−Ct−Ft+Ht(1)\mathrm{pnl}_t = (V_t - V_{t-1}) - C_t - F_t + H_t \tag{1}

where VtV_t is the value of the positions at day tt's close, CtC_t is the net money moved into positions during the day (purchases less sales, a holding sent away counting as sold for its value when it left), FtF_t is any fee paid outside a trade, such as a failed transaction's, and HtH_t is the move of the coin a wallet holds as cash, set out below. A purchase moves money into a position and a sale moves it back out, so neither is profit in itself. A gain is counted while the position is held, as its price moves.

A holding can also leave the wallet without a sale, sent to another address. It leaves as a withdrawal: its value goes out of the positions and into CtC_t, as a sale's proceeds would, and the capital reads it by the rule of section 2.2. That value is set by when the holding left. Units held at the previous close leave at the holding's price at that moment. Where its market has prices by the hour, the price at a moment τ\tau of the day runs in straight lines between known points,

P(τ)=pj+τ−τjτj+1−τj(pj+1−pj),τj≤τ≤τj+1P(\tau) = p_j + \frac{\tau - \tau_j}{\tau_{j+1} - \tau_j}\left(p_{j+1} - p_j\right), \qquad \tau_j \le \tau \le \tau_{j+1}

where the points (τj,pj)(\tau_j, p_j) are the previous close at midnight, the close of each hour in which the market traded, placed at the end of that hour, and the day's own close at the next midnight, which takes the place of the last hour's. An hour without a trade adds no point. With the two daily closes at its ends, the price at a moment always meets the values the day opens and closes with. Where the market has no prices by the hour, the closes are the only points, and the price is the straight line between them, P(τ)=Pt−1+f (Pt−Pt−1)P(\tau) = P_{t-1} + f\,(P_t - P_{t-1}), where Pt−1P_{t-1} and PtP_t are the holding's closing prices on the day before and on the day it left, and ff is the share of the UTC day that had passed when it left. Units sent just after midnight earn almost nothing beyond the previous close, and units sent just before midnight earn almost the whole day's move. Neither form is the price at the instant (section 8.3). A holding that had no market price at the previous close, and so was carried at cost (section 2.3), leaves at that cost.

Units that came into the wallet on the day they leave go out at what they came in at, which is the average cost of that day's purchases of the token, with any that arrived by transfer counted at the value given them on arrival. No close ever saw them in the wallet, so they leave with no gain. Valued at the day's close instead, a token bought and sent away within one day would be credited with a price it was never held at. On a record we hold, every token behind its gains had been bought and sent away on the same day, at closes 100 to 700 times what it cost.

A loss sent away is treated differently. On a day that closes below what such units cost, those sent to another address go out at the lower of their cost and their price at the moment they left, and never below the day's close. Their price at that moment comes from prices by the hour where the market has them, and otherwise from a straight line running from what they cost, when they were bought, to the day's close. At their cost, a token bought in the morning, watched as it fell and sent away before midnight would show nothing where keeping it would show the fall, and a trader who sent away every loser and kept every winner would never show a losing purchase. Sending them away can lower a day's reading and never raise it, and never lowers it past what keeping them to the close would.

Tokens that arrive by transfer are valued in at their arrival day's close, and the units of them sold before that close at what they sold for, since no close saw those units either. Units leave oldest first, those held at the previous close before those that came in that day, and a sale takes the units that arrived earliest.

When one token is bought with another rather than with cash, the token paid leaves by the same rules at the moment of the swap, except that units of it bought that day leave at their cost whatever the day's close. The token bought is costed at that same value, so the two sides cancel and the swap moves nothing into or out of the capital, and a fall carried through a swap is counted on the token bought, against its own prices. On the day a holding's market died, or on any day after, what is sent away of it leaves at zero, whatever the hour and however its units came in, so that sending it away cannot escape the loss that keeping it to that day's close would count (section 2.3); a token paid in a swap goes by its price at that moment and its costs instead, since the swap is itself a trade of it at that moment.

A wallet's cash is the money it trades with: dollars held as stablecoins, and the chain's own coin, SOL on Solana and Ether on Ethereum and Base. The coin held at a close is part of the capital the next day's profit is divided by (section 2.2), so its move to the next close is part of that profit. Dollars have no such move. Coin sent out of the wallet follows the rule for holdings. The units held at the previous close go out with the day's first sends and earn the coin's move only until they left, at its price at that moment, and coin that came in that day leaves at the day's close, the value it was counted in at. With qt−1cq^{c}_{t-1} the units of coin cc held at the previous close, PtcP^{c}_t its closing price in dollars, Pc(τ)P^{c}(\tau) its price at a moment as above, and uicu^{c}_i the units of qt−1cq^{c}_{t-1} in the day's iith send of it, made at τi\tau_i,

Ht=∑c[ qt−1c(Ptc−Pt−1c)−∑iuic(Ptc−Pc(τi))]H_t = \sum_{c} \left[\, q^{c}_{t-1}\left(P^{c}_t - P^{c}_{t-1}\right) - \sum_i u^{c}_i \left(P^{c}_t - P^{c}(\tau_i)\right) \right]

summed over the two coins, SOL and Ether. Each such send leaves the capital at its value at that moment, uic Pc(τi)u^{c}_i\,P^{c}(\tau_i), for the share wicw^{c}_i of the day still to run. On the straight line Ptc−Pc(τi)=wic (Ptc−Pt−1c)P^{c}_t - P^{c}(\tau_i) = w^{c}_i\,(P^{c}_t - P^{c}_{t-1}), and the coin earns the day's whole move on qt−1c−∑iuic wicq^{c}_{t-1} - \sum_i u^{c}_i\,w^{c}_i units. Counted as held until the close instead, coin sent away a minute after midnight would keep the whole day's move after it had gone, over a capital that no longer held it. Sending 90 of 100 SOL then, on a day SOL rose 10%, would read as a return of +936%.

Coin that arrives during a day is not in qt−1cq^{c}_{t-1}, so it earns nothing until the next day, and cash worth less than $1 in all is counted neither in the capital nor here. A swap from one form of cash to another is not a trade.

Profit therefore comes only from prices moving: those of positions while they are held, and that of the coin held as cash. A deposit can never be profit; it can only enlarge the capital that the profit is divided by, which makes the same profit a smaller return. Depositing to lift a result is the usual way to farm a trading competition, and here it lowers the result instead. A withdrawal is not profit either, since what leaves has earned only its move up to the moment it left; what came in and left on the same day gains nothing, and loses only what it had lost by the moment it left. Sitting in dollars while Bitcoin falls is a day of 0% against a negative day for Bitcoin, which is a day won; sitting in SOL or Ether is a day of that coin's move.

The day's profit also divides by holding, the coin held as cash among them, and the parts sum exactly to the whole. The app's Performance page shows that breakdown.

2.2 What the profit is divided by

The day's return is

rt=pnltKt(2)r_t = \frac{\mathrm{pnl}_t}{K_t} \tag{2}

where KtK_t is the capital at work during the day, counted from the open, cash included wherever the account's cash can be seen. The open matters because the day's closing value already contains the day's move, and dividing by it would shrink every good day: a true gain of 10% would read as 9.09%.

Money and holdings that arrive during the day count for the share of the day they stayed, which is the Modified Dietz convention (Dietz 1966). What leaves is counted differently. The capital the day opened with stays in KtK_t for the whole day, wherever it went, as if it had stayed in the wallet as cash, and only what arrived that day can leave the capital again, before anything the day opened with. With OtO_t the positions and cash at the previous close, and Nt(f)N_t(f) the day's net flow in by the share ff of the day gone, money and holdings in less money and holdings out, each valued as section 2.1 values it,

Kt=Ot+∫01max⁡(0,  Nt(f)) dfK_t = O_t + \int_0^1 \max\bigl(0,\; N_t(f)\bigr)\, df

before the floor below. A deposit and its withdrawal cancel for the time the money was there, so a million dollars in for one minute is a million dollars for one minute of the day. In this term, money that leaves and comes back reads as if it had never been sent.

With no money in, the capital is the open exactly, whatever left and whenever. Sending away a holding the day opened with then reads as selling it at its price at that moment and keeping the dollars. The timing of a withdrawal can neither shrink the capital nor enlarge it, and no day reads further from zero than its profit over the money it opened with. Take an account of $100,000 that sends $90,000 away at noon and doubles the $10,000 left. The day reads +10%, the $10,000 it made over the $100,000 it opened with, and the same day with the $10,000 lost reads −10%. Kept in the wallet, the $90,000 gives the same two readings. Each dollar left at work doubled or was lost, and the method gives that up so that a withdrawal made after seeing the day changes nothing.

Modified Dietz itself takes what leaves off the capital for the rest of the day, gain included. Where a holding that has risen since the open leaves and is most of the account, its capital falls toward nothing while the gain stays. Take an account of $101,000, $100,000 of it in one token, that sends the token away at 06:00, when it stands 32.5% above the previous close. Modified Dietz leaves $1,625 of capital under a gain of $32,500, a return of +2,000% on a day the account made 32.2%. With the open kept in the capital, the day reads +32.18%.

A return measured each day and chained from day to day, as section 3 chains it, is consistent with the daily rule of the Global Investment Performance Standards, which ask for a sub-period return at the time of each large cash flow "if daily returns are not calculated" (CFA Institute 2019, provision 2.A.24.c). No day is split.

The capital is never less than what the day put into positions, capped at the money the day opened with plus what the money arriving that day spent on positions while it was in the wallet. Without that floor, money deposited late in a day, spent at once and sold at a loss could read as a loss of more than everything at work, and records we hold carried days like that. Money that arrived and bought nothing does not raise the cap. Money sent away and returned counts as arriving again. Turn $10,000 over fifty times in a day for a loss of $2,000, beside $1,000,000 deposited at noon and withdrawn a minute later, and the day reads −18.7%: the loss over the $10,000 and the minute the million was there. With the deposit's whole value in the cap, the turnover would be the capital, and the day would read −4%.

A day that opens with nothing is read by the same rule where the account's cash was read at the previous close, and otherwise takes the money it put into positions as its capital. Either way a round trip within one day still has a base: $100 that arrives, buys a token and sells it for $110 is a day of +10%. Where $100,000 arrives just after midnight and $1,000 of it buys a token that loses nine tenths, the day reads −0.9%, which is what the account lost, and its winning twin +9%.

2.3 A holding without a market price

Some of what a trader holds has no market price the engine can use. Such a holding is carried at cost: valued at what was paid for it until it is sold, when its gain or loss is counted once. An unknown is never valued at zero, because that would invent a loss that did not happen.

Valued at zeroCarried at cost−5%0%+5%Day 1−5%Day 2, boughtDay 3+6%+1%Day 4, sold
Figure 2. An account of $10,000 buys $500 of a token with no market price on day 2 and sells it for $600 on day 4. Valued at zero while unpriced, the purchase reads as a loss and the sale as a gain six times the $100 made. Carried at cost, the gain lands once, where it was realised.
The numbers
DayValued at zeroCarried at cost
Day 10%0%
Day 2, bought−5%0%
Day 30%0%
Day 4, sold+6%+1%

Figure 2 shows the difference on the smallest case that exhibits it. An account of $10,000 buys $500 of a token that has no price and sells it for $600 two days later. Valued at zero while unpriced, the four days read 0%, −5%, 0% and +6%, which is a loss on the purchase that nobody suffered and a gain on the sale six times the $100 actually made. Carried at cost they read 0%, 0%, 0% and +1%. The invented pair does its worst damage to the ratio's denominator. We simulated 90 days of an account holding eight priced tokens and one unpriced one, with the unpriced position from $250 to $2,500. Carrying it at cost instead of at zero lowered the measured daily volatility by up to 72%, which means that much of it had been fabricated, and the fabricated volatility had pulled every ratio toward zero, so that a good record measured worse and a losing one better than it was. Carrying at cost cannot promote a record onto the board either, because coverage, which decides that, is unchanged (section 2.4).

The rule gives something up, and we state it plainly. A token that collapses while it has no price stays at cost until it is sold, so its loss shows late, or not at all if it is never sold (section 8.3). The coverage minimum bounds how much of a record can rest on holdings like that.

A holding whose market has died is a different case. It is valued at zero from the day the market died, since that loss is one the market made and not a gap in what the engine can see. A token with no market at all to sell into is treated the same way, from the day after the record last traded or moved it.

2.4 Coverage

Each scored day has a coverage, the share of the money in the record's traded holdings that had a market price that day. A holding weighs the larger of what it cost and what it was last worth. Cost is the floor because it is the one figure known for every traded holding, so a million units of a token nobody can buy weigh no more than was paid for them. The last value counts a holding that grew, so a priced token bought for $100 and now worth $1,000 weighs $1,000. A holding without a price today is weighed at the last price it had, never at a guess of what it is worth now.

An account holding four priced tokens worth $20 each, beside a token bought for $5,000 that has no price, has a coverage that day of $80 in $5,080, under 2%. Four of its five holdings are priced, but almost all of its money is unseen, and the money is what the day's return is measured on.

Only holdings a trade acquired are counted. Airdrops and tiny balances that a wallet never chose stay in its value but not in its coverage. Counted the other way, every active Solana wallet we sampled was refused for tokens its owner had never bought. A holding carried at cost counts as unpriced, since otherwise every traded holding would read as priced and the minimum would test nothing.

A record's coverage is the mean of its scored days' coverage. A day holding nothing has full coverage, and rightly, since its return is exact. A median fails in either of its forms. Taken over all days, it lets an account that sat in cash on more than half of them hide every day it held something unpriced, so that a record with dozens of partly unpriced days reads as fully priced. Taken over only the days that held something, it refuses an account that held nothing on most days because a few of the rest were unpriced. The mean reads both as they are.

2.5 Days left out, and why

The engine never scores a day it cannot defend. A day it leaves out keeps its reason, and the trader can see it. Table 1 lists every reason.

Table 1. Days left out, and why.

ReasonWhenWhy
A price came or wentA holding kept across both days had a price on one day and not the otherThe change would measure what the engine could see, not what the trader did
Price not in yetHoldings worth at least 1% of the account have no price yet for the day, or what left the wallet during it, at least 1% of the capital it opened with, has no price yet for its hourScored early, the day would read as unchanged against Bitcoin's move, or value what left by the straight line that its hour's price replaces
Unknown costTokens whose purchase was never seen were sold for more of the day's capital than the record's cap allowsBeyond the cap, what the unseen cost could hide is more than the record's own uncertainty allows for
Unknown capitalThe capital at the open is not known, or the day lost more than its capital, or, on a capital under $50, gained more than itSpot trading cannot lose more than everything at risk, so a bigger loss means money arrived that the engine did not see; under $50, a gain bigger than the capital is read the same way
Nearly nothing at workUnder $1, or under 1% of the record's own typical funded capital (its 75th percentile funded day)A return on almost no capital measures rounding
Nothing at workNo capital at allThere is no return, which is different from 0%
TodayThe day the record is scored as ofBitcoin's close has not settled
No Bitcoin closeEither of Bitcoin's two closes is missingA return against a missing benchmark would treat Bitcoin as unchanged

The floors for capital were measured. Days with less than a cent at work carried returns as high as +75,470%, and nothing lay between a cent and a dollar, which set the $1 floor. Across funded days, returns thinned out between 0.5% and 1% of a record's 75th percentile funded day, which set the relative floor.

A gain has a floor of its own. A loss larger than the capital is impossible in spot trading, but a gain larger than the capital is not, since gains compound within a day: $100 doubled, sold and doubled again is a day of +300% on $100 that the engine saw in full. The gain side is therefore a judgement, and it was measured. Gains above +100% were 0.8% of scored days on the records we hold, and about a third of them sat on a capital under $50, among them days of +133% to +1,176% on capitals of $1.58 to $7.27. Leaving out a gain larger than a capital under $50 left out none of the large gains, on records read in full, that were sold the same day or still held the next, and it moved no ranked record's tier. The $50 is the capital minimum of section 5.1, and the two are one number.

Three of the reasons need a longer account. A day whose holdings changed from priced to unpriced, or the reverse, measures what the engine could see rather than what the trader did, and on a record whose last known price for a token ran out, it produced a day of −100% that never happened. A day whose price has not yet been fetched would read as unchanged if it were scored, 0% against Bitcoin's move, which is a loss the trader never made. It waits instead, provided the holdings waiting make up at least 1% of the account. Below that a holding moves the day by less than 1% of its own move, and the 1% line is a judgement rather than a measurement. A holding that rose while unpriced is weighed at its last close, not at its cost, so it cannot slip under the line by having been cheap. The day counts as soon as the price arrives. What left the wallet during a day waits in the same way for its prices by the hour, when it is worth at least 1% of the capital the day opened with. Once the hour's prices are fetched, what they show is final. Where the market has none for that day, so is the straight line.

To find what a trader paid for what they held or sold during the window, a record is read from ninety days before the window opens. A sale of tokens whose purchase the engine still never saw has known proceeds and an unknown cost. It is counted at break-even. The tokens are treated as deposited at the moment of the sale, at the sale's own price, so the sale makes no profit and its proceeds join the capital as any deposit does (section 2.1). Whatever the tokens gained or lost before they were sold is missing from the record, in either direction, and no profit is invented. Leaving the whole day out would discard everything else the day measured for the sake of what is usually a small part of it. On the records we sampled, the median such sale was between 0.1% and 0.5% of its day's capital, and leaving every such day out would cost about one ranked record in twenty its 25 scored days.

What break-even can hide is bounded by a cap that each record sets from its own trading. Suppose that every day carrying such a sale hid a gain or loss as large as the record's own sales of tokens it saw bought make at their 95th percentile, ρ95\rho_{95} of what they were sold for, all in one direction, and that the unseen sales came to a share cc of the capital on a share uu of the record's days. The mean daily excess would then move by u c ρ95u\,c\,\rho_{95}. The cap holds that movement to half the standard error of the mean, the same half that equation 10 takes off for uncertainty, so the cap is c=s/(2T u ρ95)c = s/(2\sqrt{T}\,u\,\rho_{95}). Its ss and TT are those of equation 4, taken from the record with every such day left out. A day whose unseen sales come to more than cc of its capital is left out, and that is the unknown cost of Table 1. Without a sale of its own to learn ρ95\rho_{95} from, a record has no cap, and all of its days with such a sale are left out.

Leaving a day out must not become a way to hide it. A trader able to attach a large enough sale of unseen tokens to a losing day could otherwise remove that day at will, so the record is also scored with every such sale counted at break-even and no cap, and the lower of the two scores is published. For about half of the ranked records with days beyond the cap, the lower score is the one that counts them.

2.6 The edges of the window

The day a record is scored as of is never itself scored, because Bitcoin's close for it has not settled. The first day of the window is measured against the day before it, which is not scored either. Without that day, a long-held position would empty all of its earlier gains into the first day of the window; on a test record the first day read +400% against a true +2.04%.

A day of exactly −100% is scored. A position can go to zero.

2.7 The worked example's days

The worked example of sections 3 and 4 is one real record from the Wallets board, anonymised as bc1fc4a5: no address and no dollar amounts are published. It was valued on 90 days from 11 August to 8 November 2026. The last of them, the day it was scored as of, is not scored, and eleven other days, five of them in October, were left out because a price came or went. That leaves 78 scored days.

3From days to a score

This section turns a record's scored days into XBD. The equations are given in the order the engine computes them, then the reason for each choice, then the cases the engine refuses, and last the worked example with every intermediate value. Every formula here is the published one, used unmodified, so that each can be checked against its source (section 9).

3.1 The equations

Let TT be the number of scored days, rtr_t the record's return on day tt and btb_t Bitcoin's return on the same day. The daily excess return is the difference of their logs,

et=ln⁡(1+rt)−ln⁡(1+bt)(3)e_t = \ln(1 + r_t) - \ln(1 + b_t) \tag{3}

and a day of exactly −100% enters at a floor, a loss of 99.99%, since the logarithm of zero is undefined. Only days with both returns enter. The mean excess and its sample standard deviation, with Bessel's correction, are

eˉ=1T∑t=1Tet,s=1T−1∑t=1T(et−eˉ)2(4)\bar{e} = \frac{1}{T}\sum_{t=1}^{T} e_t, \qquad s = \sqrt{\frac{1}{T-1}\sum_{t=1}^{T}\left(e_t - \bar{e}\right)^2} \tag{4}

and the daily information ratio is their quotient,

IR=eˉs(5)\mathrm{IR} = \frac{\bar{e}}{s} \tag{5}

which is Goodwin's (1998) definition with beta fixed at one. Nothing in it is estimated beyond the two moments. Its uncertainty depends on the shape of the excess returns, through their skewness and kurtosis, standardised by the population deviation σ\sigma:

γ3=1T∑t=1T(et−eˉσ)3,γ4=1T∑t=1T(et−eˉσ)4,σ=1T∑t=1T(et−eˉ)2(6)\gamma_3 = \frac{1}{T}\sum_{t=1}^{T}\left(\frac{e_t - \bar{e}}{\sigma}\right)^{3}, \qquad \gamma_4 = \frac{1}{T}\sum_{t=1}^{T}\left(\frac{e_t - \bar{e}}{\sigma}\right)^{4}, \qquad \sigma = \sqrt{\frac{1}{T}\sum_{t=1}^{T}\left(e_t - \bar{e}\right)^2} \tag{6}

Here γ4\gamma_4 is the raw kurtosis, 3 for a normal distribution. Mertens (2002) gives the variance of the estimated ratio without assuming normal returns, through the factor

f=1−γ3 IR+γ4−14 IR2(7)f = 1 - \gamma_3\,\mathrm{IR} + \frac{\gamma_4 - 1}{4}\,\mathrm{IR}^2 \tag{7}

as Opdyke (2007) states it in his equation 6 and Bailey and López de Prado (2012) use it. The standard error of the daily ratio is then

SE=fT−1(8)\mathrm{SE} = \sqrt{\frac{f}{T - 1}} \tag{8}

Both are annualised by the square root of 365, because crypto trades on every day of the year:

IRann=365  IR,SEann=365  SE(9)\mathrm{IR}_{\mathrm{ann}} = \sqrt{365}\;\mathrm{IR}, \qquad \mathrm{SE}_{\mathrm{ann}} = \sqrt{365}\;\mathrm{SE} \tag{9}

and XBD is the annual ratio less half its annual standard error,

XBD=IRann−12 SEann(10)\mathrm{XBD} = \mathrm{IR}_{\mathrm{ann}} - \tfrac{1}{2}\,\mathrm{SE}_{\mathrm{ann}} \tag{10}

The half is a discount. It is not a confidence level, and XBD is never "95% confident" or any other percentage; the one probability in the method is Confidence (section 4.4).

3.2 The conventions in equations 6 and 7

Mertens' factor is written in population moments with raw kurtosis, and both conventions matter. With excess kurtosis in its place, a normal distribution would give f=1−14IR2f = 1 - \tfrac{1}{4}\mathrm{IR}^2 instead of the correct 1+12IR21 + \tfrac{1}{2}\mathrm{IR}^2, and at an information ratio of 1 the standard error would come out 29.3% too small. That error overstates every record's certainty without anything looking wrong, so a test in the engine pins the identity: γ3=0\gamma_3 = 0 and γ4=3\gamma_4 = 3 must give exactly 1+12IR21 + \tfrac{1}{2}\mathrm{IR}^2. Standardising the moments by the sample deviation of equation 4, rather than the population deviation, shrank both of them, by 28% on a small sample and about 2% at ninety days, and since both feed the uncertainty that too would have flattered traders.

The factor carries the shape of a record into its uncertainty. Negative skew and fat tails make ff larger, so a record of many small wins and a rare large loss reads as less certain than its raw ratio suggests. Positive skew makes ff smaller.

3.3 More days, less discount

TT sits in the denominator of equation 8, so the discount shrinks as a record lengthens and three spectacular weeks cannot outrank a year of steady edge without any extra rule to say so. For a record of normal shape the discount is about 1.0 of annual ratio at ninety days, 0.5 at a year and 0.35 at two years (figure 3).

Discount, in annual information ratio0.00.51.01.52.02590180365Scored daysThe window1.951.010.710.50
Figure 3. The discount in equation 10, half the annual standard error, against the number of scored days, for a record of normal shape. It is 1.95 at the 25-day minimum, 1.01 at ninety days and 0.50 at a year; longer than ninety days is shown for scale.
The numbers
Scored daysDiscount
251.95
901.01
1800.71
3650.50

3.4 Why logs

The excess in equation 3 is a difference of logs rather than of returns, because the mean of simple returns runs ahead of the compounded result by about half their variance (Messmore 1995). A day of −50% needs a day of +100% to recover, and the simple mean counts that pair as +25%. Averaged in simple returns, a record that swung hard would read as skilled even when the swings cost it money. In logs the mean day is ahead of Bitcoin's exactly when the record compounded ahead of Bitcoin, and the score follows what the money did. The geometric excess return is the form Bacon (2008) recommends for comparing returns over many periods, and the mean of log returns belongs to the class of measures that Goetzmann, Ingersoll, Spiegel and Welch (2007) show to be proof against manipulation.

The difference is large. Simulated on the day shapes of real records, a trader with no compounded edge over Bitcoin reached Master in both windows about one time in seven when the excess was simple, and under one time in thirty in logs, while a strong trader kept about half of their chance (section 7.3). Logs also change the shape that equation 7 sees. Big winning days shrink and big losing days grow, so the positive skew that would lower a lottery-shaped record's uncertainty shrinks, and in most records turns negative. The worked example keeps some. Its skewness is +7.15 in simple returns and +4.14 in logs, and its factor ff 0.352 and 0.778.

A record that compounded to less than Bitcoin is also held below the Bitcoin line by rule (section 4.2). In logs the rule can only act on a day of exactly −100%, which enters equation 3 at its floor.

3.5 Why a half

Ranking on the one-sided 95% lower bound, IRann−1.645 SEann\mathrm{IR}_{\mathrm{ann}} - 1.645\,\mathrm{SE}_{\mathrm{ann}}, would subtract about 3.3 from the annual ratio at ninety days, an amount set by how much history a record has rather than by how well it traded. Bronze would need a sustained annual ratio of about 1.6, and a trader who beat Bitcoin with a ratio of 0.33 would sit low in Iron, at Edge 307. XBD subtracts half the standard error instead and reports the certainty separately, as Confidence. We tested discounts of 0, ¼, ½, 1 and 1.645 standard errors by splitting records in time and scoring each earlier half against its later half. The larger discounts predicted the later half slightly better, by less than 0.02 in rank correlation, and a half is kept for the reason above: a larger discount ranks how much history a record has.

Nor is the ratio corrected for its small-sample bias. The bias is real, and on the records we hold it runs one way: records with rare large wins read low. But neither Bao's (2009) correction nor one by resampling predicted a record's later half better than the ratio uncorrected, so the formula is used as published.

3.6 What the engine refuses to score

Some records return a reason instead of a number:

  • fewer than 2 scored days;
  • no tracking error, a record that moved exactly with Bitcoin;
  • a shape for which equation 7 gives f≤0f \le 0.

The second is tested against the data's own scale. Sixty identical returns leave a floating-point deviation of about 6.6×10−196.6 \times 10^{-19}, which would give an information ratio of 1.5×10151.5 \times 10^{15} and a Confidence of 1: a market-making bot certified as the best trader alive. The third is refused rather than clamped, because clamping would report near certainty from an estimate that has just failed. For moments computed from real data it cannot occur, since kurtosis is always at least the square of skewness plus one.

An annual ratio above 10 is not refused. It is verified before it is published (section 5.4).

3.7 The worked example

Record bc1fc4a5 (section 2.7), scored as of 8 November 2026, is set out in Table 2. Its 90 days, with Bitcoin's return on each, are published with this paper as worked-example.json, and a test in the engine reproduces every value in the table from them.

Table 2. The worked example, step by step.

StepDailyAnnual
Scored days, TT78
Mean excess in logs, eˉ\bar{e}+1.4797%
Tracking error, ss24.9813%
Information ratio, IR0.059231.132
Skewness γ3\gamma_3, kurtosis γ4\gamma_4+4.14, 27.9
Mertens' factor, ff0.778
Standard error, SE0.10051.921
XBD = 1.132 − ½ × 1.9210.171
Tier and EdgePlatinum, 2,171
Confidence, Φ(0.05923 / 0.1005)72.2%
Days to establish602
95% lower bound−2.03
The recordHolding Bitcoin0%+100%+400%+900%11 AugSepOctNov+287.2%+22.1%+794%, 17 August−35.8% in a day
Figure 4. Record bc1fc4a5 compounded over its 78 scored days against holding Bitcoin over the same days, on a logarithmic scale. It ends ahead, at +287.2% against +22.1%, after climbing as high as +794% on 17 August. Most of the lead is one day, 16 August, of +435.6%: without it the rest compounds to −27.7%. With days that swing by 25% against Bitcoin's, it scores Platinum. Of the days before the one it was scored as of, 11 were left out because a price came or went.
The numbers
DayRecordBitcoinRecord, compoundedBitcoin, compounded
11 August−2.31%−0.59%−2.3%−0.6%
12 August−0.66%−0.19%−2.9%−0.8%
13 August+5.31%+0.02%+2.2%−0.8%
14 August+11.55%−0.71%+14.0%−1.5%
15 August+8.37%+0.07%+23.6%−1.4%
16 August+435.62%−0.29%+561.8%−1.7%
17 August+35.13%+2.62%+794.4%+0.9%
18 August−26.83%+0.31%+554.4%+1.2%
19 August−27.25%+7.14%+376.0%+8.4%
20 August−1.54%+5.36%+368.7%+14.2%
21 August+15.04%+7.28%+439.2%+22.6%
22 August−6.32%−1.62%+405.1%+20.6%
23 August+2.12%+0.88%+415.8%+21.6%
24 August−21.24%+1.61%+306.3%+23.6%
25 August+4.92%−0.58%+326.3%+22.9%
26 August−1.80%+0.64%+318.6%+23.6%
27 August−7.40%+1.58%+287.6%+25.6%
28 August+120.36%−3.03%+754.2%+21.8%
29 August−9.21%+0.51%+675.5%+22.4%
30 August−18.49%−0.73%+532.2%+21.5%
31 August−11.39%+1.16%+460.2%+22.9%
1 September−8.38%−1.48%+413.2%+21.1%
2 September−6.26%−0.12%+381.1%+21.0%
3 September+14.56%+5.12%+451.1%+27.2%
4 September+5.40%−1.96%+480.9%+24.7%
5 September+2.71%+0.20%+496.7%+24.9%
6 September+11.93%+0.64%+567.8%+25.7%
7 Septemberleft out−1.55%––
8 September−1.06%−0.82%+560.7%+24.7%
9 September−1.38%−0.21%+551.6%+24.4%
10 September−6.71%−2.23%+507.9%+21.6%
11 September+6.85%+0.88%+549.5%+22.7%
12 September−0.84%+0.07%+544.0%+22.8%
13 September+10.90%−0.60%+614.2%+22.1%
14 September−1.54%+1.79%+603.2%+24.2%
15 September−4.58%−3.31%+571.0%+20.1%
16 September+6.68%+0.74%+615.8%+21.0%
17 September+3.00%+0.27%+637.3%+21.3%
18 Septemberleft out+5.93%––
19 September+2.11%+0.44%+652.8%+21.9%
20 September+0.73%−0.09%+658.3%+21.8%
21 September+5.66%+6.70%+701.3%+29.9%
22 Septemberleft out−0.46%––
23 September−2.23%−2.11%+683.4%+27.2%
24 September−8.10%+0.01%+619.9%+27.2%
25 September−5.72%−0.35%+578.7%+26.8%
26 September+18.84%+0.38%+706.6%+27.2%
27 September+2.51%+0.05%+726.8%+27.3%
28 September−14.50%−1.19%+606.9%+25.8%
29 September−3.72%+0.22%+580.6%+26.1%
30 September−2.52%−0.10%+563.4%+25.9%
1 October+0.41%+1.55%+566.1%+27.9%
2 October−22.83%−0.41%+414.0%+27.4%
3 October+13.56%+0.28%+483.7%+27.7%
4 October−35.79%+2.08%+274.8%+30.4%
5 October+4.62%−0.88%+292.1%+29.2%
6 October−0.41%−0.24%+290.5%+28.9%
7 October−21.76%−2.65%+205.5%+25.5%
8 October−15.63%−1.90%+157.8%+23.1%
9 Octoberleft out+1.04%––
10 October−2.26%+0.44%+151.9%+23.7%
11 Octoberleft out+0.93%––
12 Octoberleft out−2.31%––
13 October+33.60%+1.66%+236.6%+25.7%
14 October+15.17%−1.85%+287.7%+23.4%
15 October−7.81%+0.69%+257.4%+24.3%
16 Octoberleft out−0.77%––
17 October−8.54%−0.15%+226.9%+24.1%
18 October−5.03%+0.77%+210.4%+25.0%
19 October+4.99%−0.21%+225.9%+24.8%
20 October−6.17%+1.34%+205.8%+26.5%
21 October−5.89%+1.31%+187.8%+28.1%
22 October−11.11%−3.23%+155.8%+24.0%
23 October−3.67%−0.28%+146.5%+23.6%
24 October−11.15%−0.38%+119.0%+23.2%
25 Octoberleft out−0.89%––
26 October+34.17%−0.06%+193.8%+23.1%
27 October+35.53%+0.99%+298.2%+24.3%
28 October−0.93%+0.56%+294.5%+25.0%
29 Octoberleft out−4.27%––
30 October+0.34%−0.77%+295.8%+24.0%
31 October+0.57%+0.32%+298.1%+24.4%
1 November+1.18%+1.04%+302.8%+25.7%
2 November−0.81%−1.99%+299.5%+23.2%
3 November+0.38%+0.86%+301.1%+24.3%
4 November+4.66%+4.00%+319.8%+29.3%
5 November−7.76%−5.54%+287.2%+22.1%
6 Novemberleft out−0.31%––
7 Novemberleft out+0.03%––

Over its 78 scored days the record compounded to +287.2% while Bitcoin compounded to +22.1% (figure 4), a lead of about 1.5% a day in logs. Most of it is one day. On 16 August the record returned +435.6%, and without that day the rest of its days compounded to −27.7%. Logs shrink that day, yet on its own it widens the record's swing against Bitcoin from 16% a day to 25%. Against swings that size a lead of 1.5% a day is evidence, not proof. Confidence is 72.2%, Tentative, and it would take 602 days of the same shape to establish it, though with half of its standard error taken off the record still scores Platinum, just above the Bitcoin line. Of its 78 days, 33 were ahead of Bitcoin. By 17 August it had compounded to +794.4%, and the weeks after, among them a day of −35.8% on 4 October, left it worth less than half of that peak. Averaged in simple returns instead of logs, the same days would measure Master at an XBD of 1.62, and the gap between the two readings is the variance drag of section 3.4.

4The ladder

XBD is a number on an open scale, and a ladder turns it into something a trader can read at a glance, a tier and an Edge within it. This section gives the bands, the Bitcoin line at their centre, what the top tiers ask for beyond the number, the two figures reported with a rank, and how Edge moves from one day to the next.

4.1 The bands

Each tier below Master owns 500 Edge, so that the number alone says the tier. Within a band, Edge rises in a straight line from the band's floor and is rounded down, so that no band's top ever reads as the next band's line. For a record whose XBD lies between the floors XkX_k and Xk+1X_{k+1} of band kk, whose Edge floor is EkE_k,

Edge=⌊Ek+500 XBD−XkXk+1−Xk⌋(11)\mathrm{Edge} = \left\lfloor E_k + 500\,\frac{\mathrm{XBD} - X_k}{X_{k+1} - X_k} \right\rfloor \tag{11}

and from Master upward there is no ceiling, Edge being 3,000+1,000 (XBD−1)3{,}000 + 1{,}000\,(\mathrm{XBD} - 1), rounded. Edge rises with XBD everywhere, so ordering records by Edge orders them by XBD. Table 3 gives the floors and figure 5 draws the whole mapping.

Table 3. The bands.

TierXBD fromEdge fromEdge per point of XBD
Iron−50154
Bronze−1.75500667
Silver−11,0001,000
Gold−0.51,5001,000
Platinum02,0001,000
Diamond0.52,5001,000
Master13,0001,000, with no ceiling
Challengerseats among Masters (section 4.3)
EdgeIronBronzeSilverGoldPlatinumDiamondMaster01,0002,0003,0004,000−5−1.75−1−0.500.512XBDThe Bitcoin lineWorked example, 2,171
Figure 5. Edge against XBD, computed by the engine's own mapping. Each tier below Master owns 500 Edge, so the tiers near the Bitcoin line are narrow in XBD, where a small difference decides a tier, and Iron's is wide. Below an XBD of −5 every record is Edge 0, and above Master there is no ceiling. The dot is the worked example, Platinum 2,171.
The numbers
TierXBD fromEdge from
Iron−50
Bronze−1.75500
Silver−11,000
Gold−0.51,500
Platinum02,000
Diamond0.52,500
Master13,000

Below an XBD of −5 every record shares Edge 0. At that depth the ranking between records is not information anyone needs, and −5 says, roughly, that the trader would have done better holding Bitcoin and doing nothing. The floor is a choice, not a measurement.

The ladder is absolute. A record's tier depends on its own days and on no one else's, with the single exception of Challenger, so that the many below the top are measured against a fixed standard and only the few at the very top contest a limited number of seats.

4.2 The Bitcoin line

Edge 2,000 is XBD 0, the Bitcoin line of section 1.2. A record at or above it ended its scored days ahead of holding Bitcoin by enough that its lead clears half its own uncertainty, and the same line is a Confidence of 69.1%. A record that compounded to less than Bitcoin over its scored days is held at Edge 1,999, the top of Gold, whatever equation 10 gives, and its page says why. The hold can only act where a day of −100% entered at its floor (section 3.4), since in logs a record that compounded behind has a negative mean excess and so a negative XBD.

4.3 What the top asks for

Diamond and Master each ask for more than an XBD.

Master needs 80 of the window's 90 days scored, eight ninths of the window. A Master-level record with fewer shows the Edge it measured, and its Master title is marked as pending, with the days it has and the days it needs. The allowance is for days the engine cannot score through no fault of the trader. Were all 90 required, a single such day would keep a Master-level record from the title for ninety days, and at a rate of one such day in a hundred it would hold back about 60% of Master-calibre records.

A Diamond or Master record whose window before measured the same tier is marked as two windows running. One window is weak evidence, because luck rarely repeats. Simulated on the day shapes of real records, with skill defined on the compounded result, a trader with no edge measured Master-level in one window 16.9% of the time and in both windows 2.9% of the time; a strong trader measured it in one window 50.4% of the time and in both 25.2% (figure 7). The second window is shown rather than required. A rank describes the window it is measured on, and a trader who does not repeat it gives way to one who does; the mark, and the Confidence beside every rank on the leaderboard, tell a reader how much evidence stands behind it. Record 414a7130 measured an XBD of 1.63 over 86 days with a Confidence of 93.8%. It is Master, and it carries no mark, because the window before did not measure Master.

A Diamond or Master record that goes idle decays. A Diamond banks up to 28 idle days, and each active day adds 7 to the bank; once the bank is empty it loses 50 Edge a day. A Master banks up to 14, each active day adds 1, and an empty bank costs it 75 a day. Idle means no trade and nothing held. SOL or Ether in a wallet counts as held when it makes up at least half of the day's capital, since its move is part of the day's profit (section 2.1); dollars do not count, and nor does the little coin a wallet keeps to pay its fees. A trade every day is never required, because holding a position is a decision and a rule that forced trades would reward overtrading. Decay stops at 2,499, the top of Platinum, and lifts when the trader is active again.

Challenger is a number of seats, not a score. It is 1% of ranked traders, rounded down, so that a small board has none. One per cent of nine traders would not be an elite tier, only a rounding artefact. The seats go to the Masters that have their 80 days and whose 95% lower bound is above zero,

IRann−1.645 SEann(12)\mathrm{IR}_{\mathrm{ann}} - 1.645\,\mathrm{SE}_{\mathrm{ann}} \tag{12}

highest Edge first, and are decided again each time the board is recalculated. The bound is the place in the method where a strict test belongs, among records that have already cleared every other rule, and it is used nowhere else. A Challenger stands above every Master on the board; within the seats, and below them, records are ordered by Edge. Of several wallets one trader runs together (section 6.4), only the strongest can take a seat.

A Master record can also be held at Diamond 2,999 by the checks of section 6.

4.4 Confidence and days to establish

Two figures are reported with a rank, and neither is ranked on. Confidence stands beside every rank on the leaderboard, and both are on a trader's own Performance page. Confidence is the probability that the record's true excess over Bitcoin is above zero,

Confidence=Φ ⁣(IRSE)(13)\mathrm{Confidence} = \Phi\!\left(\frac{\mathrm{IR}}{\mathrm{SE}}\right) \tag{13}

which is the probabilistic Sharpe ratio of Bailey and López de Prado (2012) at a threshold of zero. Φ\Phi is computed by Abramowitz and Stegun's (1964) formula 7.1.26, whose error is at most about 1.5×10−71.5 \times 10^{-7}. We do not rank by it because a probability tops out: two traders at 99.9% tie, however different their records. Confidence is shown in five bands. Established is 95% or more, Likely 80%, Tentative 60% and Unproven 40%; below 40% the evidence points the other way, and the band is Trailing. "Likely" means at least 80%, and nothing more.

Days to establish is the number of scored days a record of this shape would need before its ratio cleared the one-sided 95% level,

T∗=⌈1+f(1.645IR)2⌉(14)T^{*} = \left\lceil 1 + f\left(\frac{1.645}{\mathrm{IR}}\right)^{2} \right\rceil \tag{14}

the minimum track record length of the same paper. It is defined only when the ratio is positive, since no quantity of evidence establishes an edge that is not there. Figure 6 shows how quickly it grows as the ratio falls. For a record of normal shape, an annual ratio of about 3.4 establishes itself within the ninety-day window, and one of 1.0 takes 991 days. The worked example's Confidence is 72.2%, Tentative, and its days to establish are 602 against the 78 it has.

Scored days to establish25903651,0004,00012345Annual information ratioThe window, 90 days3.4
Figure 6. Days to establish (equation 14) against the annual information ratio, for a record of normal shape, on a logarithmic scale. A ratio of 3.4 establishes itself inside the ninety-day window; one of 2 needs 250 days and one of 1 needs 991.
The numbers
Annual information ratioDays to establish
1991
2250
3113
465
542

4.5 How Edge moves

Edge is not awarded day by day. Each day the window is scored again, with one day entering and the oldest leaving, and the change in Edge is the change in the whole record's XBD. We measured how far that moves by sliding the windows of real records through the engine a day at a time. Above Iron, half of all overnight moves were under 62 Edge, three in four under 145 and nine in ten under 321, the largest was 1,715, and about one move in six changed the tier. In Iron the median move was 10, because its band is wide. A new day within the trader's own usual range moved Edge by about 43, and one that fell one to two of their standard deviations outside it by about 471. The day that leaves the window ninety days later takes back what it brought. As a rule of thumb from the formula, rather than a measurement, a day one standard deviation better than the trader's own average adds about 200 Edge at ninety days.

5What qualifies

The method keeps two questions apart. One is whether a record can be measured well enough to rank; the other is how good it is. A record that fails the first is unplaced, as a player without enough games is unplaced, and the app says "not on the board yet" with the reason. Failing the first question is not a low score and is never shown as one.

5.1 The three minimums

A record is ranked when it meets three minimums, checked in the order of Table 4. The order matters: pricing and capital are checked before days, so that a record time alone will never qualify is never told it is on course for a tier.

Table 4. The minimums.

MinimumValueCounted as
Value of traded holdings priced60%the mean coverage of the scored days (section 2.4)
Capital at work on a typical day$50the median capital of the scored days
Scored days25days with a return and a Bitcoin close

Each value was tested by measuring what it does to records we hold.

The day minimum asks how short a record can be before its tier means something. From records with at least 45 scored days we cut blocks of a given length and set each block's score against the score of the rest of the record. Even ten days order records against the rest of themselves, because two things carry from one stretch of a record to the next: how widely a trader's days swing, and a steady loss to Bitcoin. Both sort the bottom of the ladder, where most records sit, and say little about the top. Of the blocks that read Diamond or above, four in five belonged to records whose other days read Gold or below at 10 days, and seven in ten at 25. A block placed two or more tiers too high 17% of the time at 10 days and 14% at 25 and at 30, and thirty days made almost a third more records wait. The top of the ladder is guarded less by days than by Confidence (section 4.4) and the 80 scored days a Master needs (section 4.3).

The pricing minimum came from hiding prices on records that were well priced. Records priced at 85% or better had tokens removed from their prices, the least traded first and then in random orders, carried at cost as an unpriced holding would be, and were scored again. A record kept the tier it had when fully priced 94% of the time between 80% and 100% coverage, about nine times in ten between 60% and 80%, and 84% of the time between 50% and 60%. What changes at 60% is the size of a miss: a record moved two or more tiers about one time in thirty between 60% and 80%, and one time in twelve below 60%. Diamond and Master records kept their tier about nine times in ten above 70%, seven in ten between 60% and 70%, and about half below. A holding carried at cost still books its whole profit when it is sold, so hiding the price of a token that was bought changes when its gain lands rather than whether it lands.

The capital minimum is a choice, and the records it turns away do not draw the line by themselves. Below $50 at work on a typical day, scores spread no wider than ranked records' do, and Diamond or Master readings are no more common; the few there trade thousands of times. Small records read lower on the ladder on average, which is what costs do to a small account. At $10 a day a few cents of fees and tiny balances move a day by whole percents, so the day says more about its costs than its decisions. The floor is also the price of farming many small wallets in the hope that one gets lucky.

5.2 A record short of days

A record that meets the pricing and capital minimums but is short of days is scored and not ranked. The tier it is on course for is shown with the days it still needs, for example "not on the board yet, 13 more scored days to go", and it does not appear on the board until it has them. The tier on course obeys the Bitcoin line like any other. A record short of pricing or capital has no tier at all.

Trade count, win rate and volume are not minimums. They are shown as descriptions of a record and never ranked on.

5.3 What is refused

The three refusals of section 3.6, fewer than 2 scored days, no tracking error and a factor f≤0f \le 0, each return a reason and no number.

5.4 A ratio above the plausible range

An annual information ratio above 10 lies far beyond what professional investors sustain: Grinold and Kahn (2000) call a ratio of 1 exceptional for an active manager. Refusing a record above it would refuse the rare genuine one with the implausible, so it is verified instead. It must have the 80 scored days that Master asks for (section 4.3), and it is published at the lowest of three scores:

  1. the full record;
  2. the record rebuilt from realised profit alone, which no price can inflate;
  3. the record without its single best day.

There is no tuned threshold. A record passes by holding up under all three readings, and one short of 80 days is shown on course at what its evidence supports.

6Integrity

A record can be real in every number and still not be its trader's skill. The rest of the method cannot see two such cases. One is trading with yourself: selling into your own second wallet or account at a price nobody else would pay. The profit is real cash. Only its source is not a stranger, and the matching loss sits in a record that is never scored. The other is trading a token you created, from a second wallet that buys it in its first minutes and sells to the buyers who come after. Those sales are real as well, and what they rest on is knowing of the launch before anyone else.

Records are checked for both. We describe what the checks look for and not how they decide, because a published rule is a route around it.

6.1 On a chain

On a chain, the check reads who was on the other side of a record's trades, and whether the trader and they are connected by money. It reads the same of the tokens behind a record's gains and the wallets that created them. Buying at launch is not held against a record. Its gains and its losses are real trades at real prices, and a record that wins that way is ranked like any other. A wallet added to the board by its address is checked in the same way.

6.2 On an exchange

An exchange's order book names no counterparty, so on an exchange the check reads the markets a record profits in, for signs that its profit came at prices only a partner would pay. A flag lifts when those signs are gone, and a false alarm is cleared by a person.

6.3 What a flag does

A flagged record keeps its score and is shown at Diamond 2,999 instead of Master. Only its owner is told, on their own page, and the public sees Diamond. A flag is an accusation, and the site shows it only to the person it is about.

6.4 Programs

Wallets added to the board by their address are also read for signs that a program trades them, meaning software that places orders on its own. A program's record is still a record of real trades, so it keeps its score, its tier, its place on the board and the seat it earns. Of several wallets one trader runs together, only the strongest can take a seat (section 4.3).

6.5 Defences elsewhere in the method

Most of what protects the board is not in this section, and each of these rules is set out where it belongs:

  • a deposit is never profit, and a holding that came in and was sent away on the same day leaves at what it came in at (section 2.1);
  • a holding without a market price is carried at cost, so a price nobody could get cannot make a gain (section 2.3);
  • only holdings a trade acquired count toward coverage, so airdrops cannot pad it (section 2.4);
  • a gain larger than a capital under $50 is not scored (section 2.5);
  • a day left out for a sale whose purchase was never seen cannot lift a record, because the lower of the two scores is published (section 2.5);
  • a record that moves exactly with Bitcoin is refused (section 3.6);
  • a Challenger seat needs Master's 80 scored days (section 4.3);
  • the $50 minimum puts a price on farming many small wallets in the hope that one gets lucky (section 5.1);
  • a ratio above 10 is published at the lowest of its full, realised-only and best-day-removed scores (section 5.4).

7Evidence

This section reports what the method has been tested against: simulations of what one window of evidence can show, the measurements behind individual rules, and whether the score predicts anything. Results are given as rates, with an interval wherever the sample gives one.

The measurements on real records use the records ranked on the board when they were taken: wallets gathered from public swap activity on Solana, Ethereum and Base without regard to their results, each read in full from its chain. They are not a random sample of traders, and no exchange account was among them. Record-level data is not published: the wallets were added without their owners' consent, and a record's daily returns could be matched to its wallet on a public chain. The worked example (section 3.7) is the one record published in full.

7.1 What one window can show

We simulated traders on the day shapes of real records. Each simulated trader drew ninety days, with replacement, from one record's scored days, with that record's own edge over Bitcoin removed and, for a skilled trader, an edge of a known size put back. The engine scored every draw unchanged, many thousands of times for each kind of trader. Skill is defined on the compounded result, which is what beating Bitcoin means.

Diamond or above, one windowMaster in both windows0%20%40%60%23.5%2.9%No edge40.7%10.0%Annual ratio 159.8%25.2%Annual ratio 2
Figure 7. Simulated traders drawn from the day shapes of real records and scored by the engine. Bars show how often each reached Diamond or above in one ninety-day window, and how often they reached Master in both windows, which earns the mark of two windows running. Skill is defined on the compounded result.
The numbers
TraderDiamond or above, one windowMaster in both windows
No edge23.5%2.9%
Annual ratio 140.7%10.0%
Annual ratio 259.8%25.2%

Figure 7 gives the result. A trader with no edge reached Diamond or above in one window 23.5% of the time, one with a true annual information ratio of 1 reached it 40.7% of the time, and one with a ratio of 2, which is strong, 59.8%. One window separates skill from luck only weakly. A second window does most of the work: Master in both windows was reached by 2.9% of traders with no edge, 10.0% at a ratio of 1 and 25.2% at a ratio of 2. A record that holds its tier for two windows running is marked as such, and every rank on the leaderboard carries its Confidence (section 4.4). Section 1.4 sets out how these rates change with the length of the window.

7.2 Rules and the measurements behind them

Table 5. Rules and the measurements behind them.

RuleWhat was measuredFound
25 scored days to rankblocks of each length scored against the rest of their own recordof the blocks reading Diamond or above, four in five belonged to records whose other days read Gold or below at 10 days, seven in ten at 25
60% of the value of traded holdings pricedprices hidden on well-priced records, which were then scored againthe tier held 94% of the time at 80–100% coverage and nine times in ten at 60–80%; misses of two tiers or more one time in thirty at 60–80%, one in twelve below 60%
$50 typical capitalthe records the floor turns awayno wider spread and no more top readings than ranked records; those near the top traded thousands of times, and at $10 a day fees move a day by whole percents
Master at 80 of 90 daysMaster-level records with one unscorable dayat 90 of 90, a single such day would keep about 60% of Master-calibre records from the title
Coverage counts traded holdings onlyactive Solana wallets, every holding countedevery one refused for tokens its owner never bought
Unpriced holdings carried at costsimulated accounts with one unpriced tokenup to 72% of the measured volatility was fabricated at zero; no record promoted
A dead market is worth zerodays where a price came or wentmost were a token whose market had stopped
Under $1 at work is not a daydays with almost no capitalreturns up to +75,470% on less than a cent
A gain larger than a capital under $50 is not a daydays that gained more than their capitalabout a third sat on a capital under $50; the rule left out none of the large gains, on records read in full, that were sold or still held the next day, and moved no ranked tier
Under 1% of typical capital is not a dayfunded daysreturns thin out between 0.5% and 1% of the 75th percentile day
Capital never below what the day committeddays funded late and spent at oncewithout it, losses read as more than −100%
The money a day opened with stays in its capital whatever leavesconstructed days with a large outflowwith what left taken off the capital, a token up 32.5% sent beside $1,000 read +2,000% where the account made 32.2%
What arrived lifts the floor's cap only where it bought somethinga constructed day of turnover beside a deposit withdrawn a minute laterwith every deposit in the cap, a loss of 20% on the money at work read −4%
A day that opened with nothing is read as any otherconstructed days funded just after midnightread on what they committed, a fall of nine tenths on $1,000 of $100,000 read −90% where the account lost 0.9%
Units bought that day and sent away below cost count the lossconstructed days that sent a falling token awayat cost, a token sent after falling 99% read 0% where keeping it read −99%
A token sold the day it arrived enters at its saleconstructed days with an arrival sold within the hourat the arrival day's close, a day read +900% where the account made nothing
A waiting day must matter to the accountdays held back for a pricewithout a floor, a holding worth 0.005% of an account held back days
A sale never seen bought counted at break-even, within a capdays carrying a sale whose purchase was never seenthe sale was a median 0.1% to 0.5% of its day's capital; leaving every such day out would cost about one ranked record in twenty its 25 days
SOL and Ether held earn their movethe cash of ranked walletsthe median wallet's cash was 96% SOL on Solana and 99% Ether on Ethereum and Base
The first day measured against the day beforea long-held position+400% on the first day against a true +2.04%
Raw kurtosis in Mertens' factornormal returnsexcess kurtosis makes the error 29.3% too small at IR = 1
Moments on the population deviationsmall and ninety-day samplesthe sample deviation shrank them by 28% and 2%

7.3 Logs against simple returns

The same simulation, with skill defined on the compounded result, measured the effect of averaging simple returns instead of logs. A trader with no compounded edge reached Master in both windows about one time in seven on simple returns, because their mean credits about half the variance as edge in every window and a second window does not filter it out. In logs the rate is 2.9%, a fifth of what it was, while a strong trader keeps about half of their chance, 25.2% against 49.0% (section 3.4).

7.4 Does the score predict?

A rank is a statement about ninety days that have passed. Whether it carries information about the next ninety is a separate question, which we tested by splitting records in time and asking whether the score of each earlier half ordered records by their later half's compounded result against Bitcoin. It did: the rank correlation was 0.43, with a 95% interval from 0.34 to 0.51.

Most of that ordering is at the bottom of the ladder. Among records whose earlier half scored below the Bitcoin line the correlation was 0.46 (0.36 to 0.54); among those above it, 0.13 (−0.11 to 0.35), which does not establish it. Of the records whose earlier half measured Master, 31% beat Bitcoin over the later half (19% to 43%), against 19% of all records. A score below the line says something about what follows. A score at the top is evidence about the window it measures, and whether it carries forward is not shown. Each half held fewer days than a window, and a full window's score may predict better than this.

7.5 The ratio itself

On the records we hold, the ratio's small-sample bias is real and runs one way: records with rare large wins read low. Correcting it would raise a typical score by about 0.11. Neither Bao's (2009) correction nor one by resampling predicted a record's later half better than the ratio uncorrected; both did slightly worse (section 3.5).

Consecutive days lean on each other a little. The median lag-one autocorrelation was 0.02, and it was beyond chance in about three times as many records as chance alone would give, most of them positive. Wild days bunch together in about one record in five. Neither moves the uncertainty much: allowing for them, it was a median 0.98 to 1.04 times ours by each method we tried. The tails are heavy. Hill's tail index of the standardised days ran from 2.2 to 3.6, under the value of 4 below which classical inference about the ratio breaks down (López de Prado, Porcu, Zoonekynd and Engle 2026), and the right tail is the heavier. Our formula slightly understates the spread of the ratio, which resampling puts at a median 1.02 times ours and 1.23 times at the 90th percentile, and no alternative estimate of the uncertainty predicted a record's later half better.

7.6 One day's weight

We tested changes aimed at records carried by a single day, among them dropping the best day, capping it and requiring 80 days before Diamond, against rules written down before any result. None passed. What the tests established instead is that one day carries most records above Iron, and that one ninety-day window is weak evidence whatever the rule.

7.7 Set by judgement, not measured

  • Where the checks of section 6 act.
  • The Iron floor at an XBD of −5 (section 4.1).
  • The cut-offs of Confidence's bands at 95%, 80%, 60% and 40%, which are conventions published so that anyone can reproduce them.
  • The 1% line below which a holding without its price, or what left without its price by the hour, does not hold a day back (section 2.5).
  • Half the standard error, and the 95th percentile, in the cap on sales whose purchase was never seen (section 2.5).
  • The half of a day's capital at which SOL or Ether held in a wallet counts as held for decay (section 4.3).
  • Bitcoin as the benchmark, and ninety days as the window (section 1).

8Limits

This section collects what the method cannot claim and where it is weakest. Most of it has appeared earlier, beside the rule it limits, and is gathered here in one place.

8.1 What a rank does not claim

A rank is not a prediction. Split in time, a record's earlier score ordered records by their later result at a rank correlation of 0.43, but mostly below the Bitcoin line. Above it the correlation was 0.13, with an interval that holds zero, so whether a top rank carries forward is not established (section 7.4).

Nor is a rank total return. XBD measures the mean day against Bitcoin, in logs, per unit of its spread and discounted for its uncertainty, and the record that made the most money is often not the record with the highest rank. A rank is also not a judgement of the person, and a record that is unplaced has not been ranked low (section 5).

8.2 Thin evidence

Ninety days of daily returns gives an uncertainty in the annual ratio of about ±2, one standard error, against about ±1 at a year. The discount and Confidence exist because of this and do not remove it. Confidence also describes one record on its own, not the chance that its trader is skilled. One record in twenty with no edge at all reads 95% or more, and because lasting skill is rare, most high readings on a board of many records are of that kind. Whether ninety days is the best length for the window has not been measured, because it turns on how long real traders' edges last (section 1.4). And every measurement in this paper comes from one market over a few months.

8.3 What the engine can see

The engine reads spot trading only. Exchange accounts are read for spot pairs, on-chain trades are swaps, and derivatives are not read; the rule that a day cannot lose more than its capital assumes as much. Supported today are wallets on Solana, Ethereum and Base, and accounts at Binance, Coinbase and Kraken.

A very active wallet's history can run past what can be read. Its record then says how far back it reaches, and trades before that point are not in it. An exchange account is measured from when it is connected, or from as far back as the exchange keeps the account's daily balances.

A holding with no market price is carried at cost (section 2.3). A token that collapses while unpriced therefore shows its loss late, when it is sold, or not at all if it never is, and the 60% coverage minimum bounds how much of a record this can affect. A sale whose purchase was never seen is counted at break-even (section 2.5), so whatever the tokens gained or lost before they were sold is not in the record. A token that arrived by transfer is valued in at its price on the day it arrived, where that day has one, and only what it did before arriving is missing. Where that day has no price, the token is never valued in: its sale is counted at break-even, and since it was never a holding with a cost, the coverage minimum does not see it. A record whose gains came from such tokens reads lower than it should.

SOL and Ether held as cash are valued from one close to the next, and coin sent away at the moment it left (section 2.1). A swap between the coin and dollars is not a trade, so its own price is not used, and on the day of such a swap the record misreads the coin's move between the swap and the close, on the amount converted, in either direction. How much this moves a record has not been measured. On an exchange, SOL and Ether are holdings like any other, and selling either for dollars is a trade there, where in a wallet it is a swap between two forms of cash. Both count the coin's move.

What leaves a wallet, by transfer or as the token paid in a swap, is valued at the moment it left, from the holding's prices by the hour (section 2.1), and that value is still an estimate. A holding whose market has no prices by the hour, which includes every token priced from its own trades (section 9), takes its price at the moment from a straight line between the day's two closes. On a day whose price keeps near that line, the estimate is close. On a day that strays far from it, the value of what left is wrong by the distance between the line and the price at that moment, which can lie on either side. Prices by the hour narrow that distance without closing it, since between two hourly closes the price is a straight line too, and the value of what left is wrong by the distance between that line and the price at the instant. Either error passes into both the day's profit and its capital, or, for a swap, into the cost of the token bought.

The capital of section 2.2 is an approximation as well, and it errs in the same way on a winning day and a losing one. When most of an account leaves early in a day, the rest of the day is read against the whole open: $90,000 sent away at noon from $100,000, with the $10,000 left doubled, reads +10% where each dollar still in the wallet made 100%, and its losing twin reads −10%. A day with nothing, or nearly nothing, at work is left out (Table 1).

8.4 The benchmark

Bitcoin is the opponent, and it changes. In a strong rally the line moves away from most traders together, and with fixed bands most records then sit below it at once. That is a choice. Tiers by percentile would keep the board's shape in any market, but a tier would then mean something different from one month to the next; fixed bands let the number alone tell a reader the rank, and let a tier mean the same thing in every market.

8.5 The shape of crypto returns

The tails of daily returns are heavy, with tail indices of 2.1 to 3.5 on the records we hold, below the value of 4 at which classical inference about the ratio breaks down (López de Prado, Porcu, Zoonekynd and Engle 2026). Our formula for the uncertainty slightly understates the spread that resampling finds, by a median of 4% and by 35% at the 90th percentile (section 7.5).

One day still weighs a lot. In logs the score no longer reads volatility as skill, but a single large day can still carry a record (section 7.6).

The small-sample bias of the ratio is real and runs one way on the records we hold. Correcting it did not predict better, so the formula is used as published (section 3.5). Days are treated as independent, though they lean on each other a little and wild days bunch in about one record in five; the effect on the uncertainty was small (section 7.5).

8.6 Integrity

The checks of section 6 read signs, not proof. They can miss what they look for and can flag what only resembles it, which is why a flag holds a title rather than a score, and why a false alarm is cleared by a person.

9What the method is built on

The statistics in this method are other people's, and each is used as published so that a reader can check it against its source. Table 6 lists them.

Table 6. Sources.

PieceSource
Excess return over a benchmark, and the information ratio with beta fixed at one (equations 3 to 5)Goodwin (1998); the scale of 0.5 as good and 1.0 as exceptional is Grinold and Kahn's (2000), as Goodwin quotes it
Bitcoin as the market's reference: a common factor runs through crypto returnsLiu, Tsyvinski and Wu (2022)
The excess in logs, so that its mean follows the compounded result (equation 3)Bacon (2008) on geometric excess returns; Messmore (1995) on the gap between the mean and the compounded return; Goetzmann, Ingersoll, Spiegel and Welch (2007) on measures proof against manipulation
The variance of the ratio without normal returns (equations 6 to 8)Mertens (2002), as Opdyke (2007) states it in his equation 6 and Bailey and López de Prado (2012) use it
Confidence, the probabilistic Sharpe ratio at a threshold of zero (equation 13)Bailey and López de Prado (2012)
Days to establish, the minimum track record length at z = 1.645 (equation 14)Bailey and López de Prado (2012)
The one-sided 95% lower bound (equation 12)standard
Annualising by the square root of periods per year (equation 9)standard; Lo (2002) on when it holds
Capital weighted within the dayDietz (1966), Modified Dietz
Daily returns chained from day to day, with no sub-period at a large cash flow (section 2.2)CFA Institute (2019), provision 2.A.24.c
The normal distribution functionAbramowitz and Stegun (1964), formula 7.1.26
The small-sample bias of the ratio, tested and not corrected (section 3.5)Bao (2009)
Heavy tails and the limits of classical inference (section 8.5)López de Prado, Porcu, Zoonekynd and Engle (2026)

The prices come from public markets. Bitcoin, Ether, SOL and Dogecoin close at Coinbase's daily candle, in dollars. Every other token closes at its market on its own chain, read through GeckoTerminal: data provided by CoinGecko. A token no such market prices closes at its own last trades before the day ends, read from the chain. A vault's share closes at the vault's own rate times the close of what it holds. Prices by the hour come from the same market as the daily close, at Coinbase's hourly candle for what Coinbase closes and at the hourly candle of the token's own market, read through GeckoTerminal, for what that market closes. A token priced from its own trades, and a vault's share, have no prices by the hour.

References

  • Abramowitz, M., and Stegun, I. A. (1964). Handbook of Mathematical Functions with Formulas, Graphs, and Mathematical Tables. National Bureau of Standards, Applied Mathematics Series 55. Formula 7.1.26.
  • Bacon, C. R. (2008). Practical Portfolio Performance Measurement and Attribution, 2nd edition. Wiley.
  • Bailey, D. H., and López de Prado, M. (2012). The Sharpe ratio efficient frontier. Journal of Risk 15(2), 3–44. doi:10.21314/JOR.2012.255.
  • Bao, Y. (2009). Estimation risk-adjusted Sharpe ratio and fund performance ranking under a general return distribution. Journal of Financial Econometrics 7(2), 152–173. doi:10.1093/jjfinec/nbn022.
  • CFA Institute (2019). 2020 GIPS Standards for Firms. CFA Institute. Provision 2.A.24.
  • Dietz, P. O. (1966). Pension Funds: Measuring Investment Performance. Free Press.
  • Goetzmann, W., Ingersoll, J., Spiegel, M., and Welch, I. (2007). Portfolio performance manipulation and manipulation-proof performance measures. Review of Financial Studies 20(5), 1503–1546. doi:10.1093/rfs/hhm025.
  • Goodwin, T. H. (1998). The information ratio. Financial Analysts Journal 54(4), 34–43. doi:10.2469/faj.v54.n4.2196.
  • Grinold, R. C., and Kahn, R. N. (2000). Active Portfolio Management, 2nd edition. McGraw-Hill.
  • Liu, Y., Tsyvinski, A., and Wu, X. (2022). Common risk factors in cryptocurrency. Journal of Finance 77(2), 1133–1177. doi:10.1111/jofi.13119.
  • Lo, A. W. (2002). The statistics of Sharpe ratios. Financial Analysts Journal 58(4), 36–52. doi:10.2469/faj.v58.n4.2453.
  • López de Prado, M., Porcu, E., Zoonekynd, V., and Engle, R. (2026). Signal-to-noise ratio inference under volatility clustering and heavy tails. SSRN 6568702.
  • Mertens, E. (2002). Variance of the IID estimator in Lo (2002). Working paper, University of Basel. Cited through Opdyke (2007) and Bailey and López de Prado (2012).
  • Messmore, T. (1995). Variance drain. Journal of Portfolio Management 21(4), 104–110. doi:10.3905/jpm.1995.409536.
  • Opdyke, J. D. (2007). Comparing Sharpe ratios: so where are the p-values? Journal of Asset Management 8(5), 308–336. doi:10.1057/palgrave.jam.2250084.