Credit risk models are difficult to implement in an actionable form. While near realtime results are required for pricing credits, making origination decisions and optimizing portfolio allocation, the complexity of credit models (which are often employed on portfolios spanning millions of exposures) typically requires either expensive Monte Carlo simulations or the imposition of inflexible assumptions to compute the portfolio loss distribution. The contribution of this paper to the credit risk literature is twofold: Credit Suisse's CreditRisk+ framework is significantly generalized, and an algorithm from the option pricing literature is introduced to retain precision and speed for the computation of the loss distribution even for very large portfolios. This generalization allows for time-dependent portfolios, fully accounts for granularity and concentration within the credit portfolio and does not rely on assumptions of asymptotically large credit portfolios. The algorithm allows even a standard laptop to precisely compute an entire bank's loss distribution. The core results of this paper are as follows: the model uses a stochastic process as the state variable yet retains tractability; the model integrates liquidity risk into the credit loss distribution; the algorithm from the option pricing literature is leveraged for efficient computation.