Custom consolidation rules are not a good fit for the described purpose. That would bring along added complexity and impacting performance for something that can be solved easily by different means.
Another scenario such as the one Kamila suggested is an option too, though the total data volume stored in the app is larger than using an alternate hierarchy. In normal apps that is still perfectly fine though.
One could also use dynamic cube services (DCS). But again, that is more complex and I want to describe it as "shooting sparrows with a cannon" in the given context.