The composed formula
A resolved prediction's XP is clamp(round(base_xp × difficulty_factor + (beat_rev + beat_eps) × consensus_confidence) + calibration_bonus, 0, 375). The raw components and the two frozen multipliers are all stored, so any score is fully reconstructable.
Base accuracy & difficulty
base_xp is the closeness of revenue and EPS to the reported actuals, 0–200. It is multiplied by a difficulty_factor in [0.5, 1.5] built from surprise volatility, consensus dispersion and coverage scarcity — frozen at the moment the prediction locks so later consensus drift can't change the score.
Beat-the-Street bonus & confidence
Each metric earns a signed ±25 bonus for landing closer to the actual than the Wall Street consensus did. That bonus is scaled by consensus_confidence in [0, 1], from analyst count and range tightness. With fewer than two analysts or no published range, confidence is 0 — there is no credible Street to beat, so the bonus vanishes and only difficulty-scaled accuracy pays.
Calibration bonus
If a prediction includes a confidence range and the actual lands inside it, a calibration bonus of up to 25 is added — larger when the band was tight relative to the consensus scale. Point-only predictions are unaffected.
Related
Plain-English version: beat-the-Street scoring explained. Try it in the earnings estimates game.