Hi Kris
You can achieve this requirement using different approaches;
I have got two ideas, just check whether it will work out for you.
1. 0Batchno as time based characteristics but whereas tracking history will be hard.
2. Use an Infocube for reporting and load data from 0Batchno to the cube. Here we will have to use logic’s daily like delete & load store only the request of last day of the month. So just check for the logic as per your requirement.
Also you'll have to use either 0Fiscper or 0Calday along with 0Batchno and its attributes. Use a field routine to populate the period data by which you can track history.
Regards,
Sakthi