Requirements - The scenario generator will simulate multi-dimensional explicit paths though time for risk variables. Current version implements this. - The change in value of the variables from one step to the next will be driven by distribution functions, which can vary from one variable to the other. For example, an interest rate could be simulated using a lognormal distribution, whereas a foreign exchange rate could be simulated using normal distributions. The engine should be able to accommodate different types of distributions. Current version accomodates different distribution functions for different rates. - The available functional forms the distribution functions can take should encompass generic distribution types, such as normal, lognormal or binomial distributions and customized distributions, such as explicit parameterizations of historical data. The number of parameters needed to define the distribution should not be limited. Current version has a few standard distribution types, but some (e.g. binomial) still need to be implemented, which can be done in the first phase. It supports parameterizations of historical data with particular distribution functions. The number of parameters is currently limited? - The distribution functions will be dynamic, e.g. they will have an explicit time dependency. Current version has static distribution functions. In initial phase, we will investigate effort required to add time dependence. - The simulation process should be able to include a dynamic drift term in addition to the stochastic part. This drift term should account for collective effects, such as time value and mean reversion. The system should allow this term to be dependent on factors, such as the average value of the variable in a previous step. The default drift term will be given by the implied forward values of the risk variables, calculated under arbitrage free conditions. Not sure about this, but I assume it is already in the code, if not, we will add it in first phase. - The relationship between the variables will be defined in terms of a static correlation matrix. Future enhancements will include a time dependent correlation matrix. Current version allows static correlations. We will investigate the effort required to add time-dependent correlations during the first phase. - The simulated paths will be consistent at any time with the correlation structure as defined through the correlation matrix. Current version should implement this? - The scenario generator should be able at least to simulate 2000 variables. Current version assumes less than 500 variables, but it should be easily adaptable to more variables. In first phase we will extend to more variables and check how it scales. - The simulation horizon will vary between 1 day and 10 years and will be user-defined. Current version supports this. - The simulation steps should be user-defined and can be either constant or flexible. For example for the first month the steps could be daily, from the second month to the first year monthly and for the rest of the simulation yearly. Currently time-step is constant, will make it variable during first phase. - The development environment should be Microsoft NT. Sequential code runs on NT, will port parallel code to NT during first phase. - The simulation should be able to run in parallel mode. Parallel version exists. - The simulation process should be partitionable as a multi-threaded process on a single machine and a set of distributable processes on many machines. For initial phase, will implement parallel version on a single multi-processor machine. A distributed version is feasible, will be done later.