User configurable reports

the plan is to pilot/QA on this on prod so I'm putting it out for code review now. I'm guessing it's easiest to review as a whole, though the commits should represent ~atomic actions.

I think it's good to merge whenever code review passes.
another magic number 7. mentioned this before, but tagging here because this PR is huge and this might get missed if it should be replaced with something else (a named constant?)