• I'd prefer to use
    FIRST_VALUE(pts) OVER (Partition by Team ORDER BY Year ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
    since this performs better (does not spill to tempdb as it does with the default RANGE BETWEEN...).

    God is real, unless declared integer.