I think a custom field is probably the best way to accomplish this. If you're adding the field on a project form, this would be the formula:
Then you can set up grouping by that field. If you don't already have it set up, I'd recommend having a "Admin Use" form onto all templates. That way, when you have a reporting field like this one, you can pop it into the admin form and it already exists on all jobs, so it's just a matter of recalculating the expressions.