Extend my banking example:
Looking at the number of active loans in a bank...
A level: Product type (Mortgage, Auto Loan, Credit Card, ect.)
B level: Source of product (New Customer, Returning Customer, Loan Aquired from another bank, ect.)
C level: Loan deliquency (Current, 1-29 DPD, 30-59 DPD, ect.)
Combining all these levels into a large 3 dimensional matrix, you can have the active number of accounts of every cross section (Acquired, current, credit card or 30-59 DPD, auto loan, new customer). You multiply this 3D matrix by a similar 3D matrix that contains the average monthly roll rates for each Ai, Bi, Ci state to every other state to forecast where in the matrix next months accounts will be located. Do actually do the math, I usually use multiple arrays and do loops in whichever programming language you have handy.
http://www.danzig.us/java_class/dimensions.html
http://www.mathworks.com/help/matlab/math/multidimensional-arrays.html
http://math.hws.edu/javanotes/c7/s5.html
Example to find a single node in forecasted matrix (A1, B1, C1) assuming just a 3x3 matrix
Probability of (A1,B1,C1) rolling to (A1,B1,C1) * # accounts in (A1,B1,C1) +
Probability of (A2,B1,C1) rolling to (A1,B1,C1) * # accounts in (A2,B1,C1) +
Probability of (A3,B1,C1) rolling to (A1,B1,C1) * # accounts in (A3,B1,C1) +
Probability of (A1,B2,C1) rolling to (A1,B1,C1) * # accounts in (A1,B2,C1) +
.
.
.
Probability of (A3,B3,C3) rolling to (A1,B1,C1) * # accounts in (A3,B3,C3) = total # accounts forecasted to be in (A1, B1, C1) next month.
Repeat this procedure for other 8 nodes in this matrix.
As you push any such set up through time it is essentially a Continuous-Time Markov Chain.
http://en.wikipedia.org/wiki/Continuous-time_Markov_process