Ah, so the reason I didn't make them instance is because that is totally wrong to me from an OOP standpoint, since these are effectively standalone functions.  All params are passed in, and none of the instance state is used in the call.  So from that standpoint I thought it was awkward to require an instance to call a pure static function.

Since you know the codebase better than I, I'll defer to your judgement here... but it seems like YAGNI to me.  If we really needed to subclass in the future, wouldn't we just modify the group code at the same time to make the methods part of the provider?