Scoring

Highest return wins. That is the whole formula. Everyone starts a season with the same balance, under the same fill conditions, and finishes with whatever they finished with.

No minimum number of trades

One trade can win a season. That is deliberate, not an oversight. A trader who is right once and sizes it properly has done something, and a rule requiring thirty trades would mostly select for people with time rather than for people who are right.

Getting lucky is allowed. Being lucky twice is a different thing, which is what seasons are for.

Why not risk-adjusted

The original design scored return divided by maximum drawdown, which is the sort of formula that sounds serious. With no minimum trade count it is worthless: a single trade produces almost no drawdown, so the score approaches infinity and the winner is whoever traded least. The clever formula would have crowned the most cautious person in the room.

It was removed rather than patched, because every patch reintroduced a minimum.

Ties

Published in advance and hashed into the season's rules, because with a prize on the table a tie is the most contestable moment there is, and the wrong time to decide is after seeing who it affects.

  1. Higher return.
  2. Then the larger actual gain. Two traders can round to the same basis point while one genuinely finished ahead, and a tie-break should not be spent on a rounding artefact.
  3. Then whoever entered the season first.
  4. Then the lower wallet address. This one is arbitrary and it is meant to be, it exists so the order is total, because a ranking that reports two firsts cannot pay one.

Places are always distinct. Nobody shares a rank.

Open positions at the close

Anything still held is valued at the market price. A token whose price cannot be read is held at what it cost rather than marked to nothing, wiping a position because a network call failed would invent the number that decides who gets paid.

The rules cannot move

A season's entire ruleset, the scoring, the tie-breaks, the payout shape, the entry cost, the simulation conditions, and the conditions under which the season does not count , is encoded and hashed before anybody enters, and that hash is published with the season, so the rules it ran under can be recomputed and compared.

So the rules can be read, hashed independently, and compared against what the program recorded. Rules that could be adjusted after a result are not rules.

When a season does not count

A season is void only under conditions published in advance and measured, never judged: an extended price feed outage, a chain halt, any trade left uncommitted, any trade that will not rebuild from its own inputs, or the engine changing mid-season. Everything else stands, an unpopular winner, a lucky winner, a one-trade winner and a single entrant are outcomes, not faults.

A void season refunds every entrant in full and takes no cut. And once results are on chain a season can never be voided, however unpopular the winner, otherwise every condition above becomes a way to cancel a result somebody dislikes after seeing it.