Disclosed is a method to dynamically allocate a number of data channels on a trunked radio system (100). The data activity is monitored during a predetermined time interval. If activity is above a predetermined maximum, an additional channel may be reserved for data use. Conversely, if data traffic is low, a data channel may be reallocated for voice message use. Moreover, should the amount of data traffic among the available data channels be unbalanced, the present method contemplates reassigning subscriber units (114 or 116) to the available data channels to balance the data traffic load, thereby providing superior access time and system performance.