4 answers
So I ended up with a slightly different but working solution that has other advantages. The issue I was having is that I wanted a way to segment opportunities both in their stage and record type. In many cases we count pledged opportunities in our results but those would not be counted in a roll up. I also wanted to differentiate between tickets and sponsorships for events in the rollup fields as well. So what I ended up doing was creating a custgom object and using a workflow to create and update that object with the same fields. I linked those objects to campaigns and opportunities and that gave me the ability to do rollup of segmented data. It also gave me a better looking campgain page that shows sponosorships distinct from opportunities.