R² is 0.83 — a reasonably reliable fit; the betas and the split below are worth reading at face value.
Note: the net move here (+38.3pp) is small relative to the systematic and idiosyncratic swings underneath it — they're largely offsetting each other, which is why the idiosyncratic share below exceeds 100% (it's dividing by a small net, not an error). Read the pp values themselves as the meaningful numbers here, not the ratio.
Of XOM's +38.3pp move over this window, +47.4pp (124% of the total magnitude) is idiosyncratic — not explained by riding market, sector, or rate moves. The rest (-9.1pp) came from systematic exposure: market -9.1pp, sector -0.0pp, rate -0.0pp.