That’s an interesting topic, but there are not so many ways to do this kind of dimensioning. The Data dimensioning is very difficult to estimate, and is very related to the vendor you’re using.
You can start your analysis with looking at the # Used PDCH at busy hour (beware, not the # Allocated).
If this value is high, for example > 6 PDCH, then you will assume that you need only 6 PDCH in this cell.
If number if less than 6 PDCH, then assume you need this actual # of PDCH in the cell. With a minimum of 3 PDCH.
Then, look at the TCH traffic and how much HalfRate ratio you could do in this cell, compute the # of TCH needed to carry the traffic. I usually apply a ratio of 80% of possible HR. So it means that whatever the number of FR timeslots you need to carry the current amuont of traffic (erlang B law), divide this number by 1.8 in order to know how many TS would be needed if 80% of HR is reached.
Add 1 timeslot for BCCH, few timeslots for SDCCH (based on the measured sdcch traffic), and you’re all set :
#PDCH needed + #TCH FR needed + 1 BCCH + x SDCCH. That’s as simple as that.
You could also try to push the 2G PS Traffic to the 3G layer, by changing your 2G/3G settings.