The current second price auction used in cow protocol rewards the winner of the auction a function of the difference between its score, and the second best score. There’s an asymmetry here though, while the best score is measured after the solver attempts to settle the auction, the second score is optimistic - it assumes the second best solver would be able to settle his solution if it had the chance to do so.
When the best solver fails to submit its solution, it is penalized by -S2, where S2 is this optimistic value.
This dune query uses last 2 weeks of data to compute the probability of revert on an auction (10%), and the probability of revert on an auction when another solver also reverts on that auction (80%). This gives an proxy that treating the second best settlement for granted might be over optimistic.
This post is just to highlight the issue, but since it is not nice to just point at problems, here’s a lame idea: use instead
E(S2) = p(settling) * S2
where p(settling) would be some protocol maintained estimate of the current probability of settling.
If not mistaken the current penalty for a given tx is max(-score, -0.01). So it’s not the difference between score and second best score.
I’d argue that the primary purpose of the penalty is to avoid overbidding by solvers (if they have nothing to lose, why not bid high just in case the price moves that way). The financial incentive of such a bid is therefore proportional to the volume of the trade, much more than surplus. So I’d suggest instead indexing the penalty on volume, maybe by using the 2bps volume fee cowswap now has:
So indeed for the simple case of a single winner/single solution case, what @marco_at_quasi mentioned is correct. E.g., if you are the only one making a bid, i.e., if the reference score is zero, then even if you report a score of 1 trillion dollars and you revert, your penalty will be zero.