MG-ALFA supports point-to-point, and ratchet plan types, as well as both fixed and index based methods for the determination of the crediting rate. For the determination of the credited rate, the user may define an averaging method to apply to the index, a cap and/or floor to the index linked interest rate, a participation rate in the index gain, as well as a spread to the index. The supported methods for averaging are: None indicating that only the end of period value is used (no averaging), Monthly or the arithmetic average of all monthaversary index values since the last reset date, Quarterly or the arithmetic average of all end of quarter index values since the last reset date and Last3Months for the arithmetic average of the last three monthaversary index values.
What is DataSynapse GridServer and Seamless Distributed Processing?Seamless distributed processing is a term given to our integration with DataSynapse GridServer to provide advanced scenario based distributed processing. Seamless Distributed Processing (SDP) provides a more scalable solution to the Run Manager technology. Some of the advantages of SDP include:
- The ability to use any available machine on the grid since MG-ALFA does not need to be installed on the engines.
- Insurance that all processors are using the same version of the system and data and the ability to run jobs using different versions of the software.
- Automated fault processing and the ability to add and remove engines from the grid seamlessly and without disruption to the process.
- No manual effort required to segment the jobs or initiate MG-ALFA on the engines for distribution by scenario.
- Runs are distributed after the data files are built so there is no duplication of the initial set-up time.
Using this option requires licensing the GridServer technology; contact MG-ALFA Support for licensing information.
Can MG-ALFA solve for the minimum premiums as determined under the AXXX regulations?MG-ALFA solves for both the single and ART premiums on the fly for AXXX. For details, refer to the FlexPrem and ULJointLife sections of the line of business documentation.
I would like to create a variable a formula in mAV that references an mCash variable? Can MG-ALFA do this?Yes, MG-ALFA cellular processing modules can reference mCash items, if the following conditions are met:
- The mCash variable formula type is inv.
- The mAV formula references the mCash variable with cycle (c-1).
- The projection is not run in ILP mode.
For an example, view NIERNonLoan reference in iCurrPortfolio in the standard database.
In a given investment duration, I would like to force a sale of my entire portfolio, and have MG-ALFA purchase a set of different assets according to my investment strategy. Is there a way to have MG-ALFA accomplish this?Yes, this can be done using the non-cellular input variable MaxAssetAlloc and the Asset Group designation, located under the model definition. For your existing portfolio, you would assign those to have Asset Group = 1. You would also want to assign the new purchase assets to a different group (Asset Group =2). Then, you would set MaxAssetAlloc to 100% for Group =1 until you wanted to force the liquidation. At this point, set MaxAssetAlloc = 0% for Group 1 and 100% for Asset Group = 2, or the new purchase assets . You could force the liquidation as many times as desired by changing the MaxAssetAlloc for a given group from 100% to 0%.
I forgot to select a runtime report for my projection. Is there a way to print runtime reports based on a previously completed run without completely re-running the projection?If you would like to do a new print without recalculation, MG-ALFA will support this, as follows:
- Open the project file and navigate to the Run tab.
- Navigate to the row that corresponds to the run that you want to print from.
- Click the Copy button on the toolbar. This would add a new run request to the bottom of the grid.
- Navigate to the new row, and click on the button in the DataFile column. Select the number from the prior run that you want to use as the basis for your reports.
- Click the first column of the grid to edit the request to use different reports as desired.
MG-ALFA provides full support for FAS97, FAS120 and FAS60. For FAS60, both PGAAP (purchase GAAP) and HGAAP (historical GAAP) calculations are supported. For, FAS97 and FAS120, the GAAP calculations are done on the cohort level, with the user designating the GAAP cohort based on issue year and any other characteristic combination.
Once the DAC has been calculated according to base assumptions, the user also has the ability to perform sensitivity analysis on the projected DAC. The Modify toolbar button located under the Output File View section of the FAS97 or FAS120 valuation accesses this functionality. This feature provides the user the ability to shock a given parameter in the history file, and MG-ALFA will calculate the resulting DAC amortization after applying the modification. The user has the ability to either manually enter the parameters modeling the shock or change in the variable, or to use the Wizard to have the necessary modifications automatically calculated. Full details on this sensitivity test feature, can be found in the MG-ALFA GAAP tutorial (located at MGALFA/Ver##/System/Help).
I just ran 1000 stochastic scenarios and would like to do some analysis on the data. How do I do this in MG-ALFA?With the increasing demand for stochastic analysis, the ability to access and summarize large amounts of data efficiently has become a challenge. The Total Template reporting and analysis tool provides the flexibility, utility, and efficiency required. Once a scenario set has been run the following information is available on the TotalTemp analysis view:
- Percentiles (1%, 5%, 10%, 25%, 50%, 75%, 90%, 95%, and 99%) for projection horizons 1, 5, 10, 20, and 30 years. For a particular time horizon the resultant values for each scenario in the selected set are sorted in ascending order and the value for the associated percentile is obtained.
- The sample mean and standard deviation for projection horizons 1, 5, 10, 20, and 30.
- The 5%, 10%, 90% and 95% CTE (Continuous Tail Expectation) for projection horizons 1, 5, 10, 20, and 30 years.
- Additionally, Total Template reporting is not limited to the analysis view. This tool provides users with the ability to write selected information to a CSV file for easy access in spreadsheet and database applications.
For details on this feature, refer to the User Reference section "TotalTemp Report Templates".
My investment department just requested that I provide a duration for the liability for each of our lines of business. Can MG-ALFA help me do this?The standard USA, Japan and Korea formula databases include the ability to determine the option-adjusted market value (fair value) of liabilities, as well as the effective duration and convexity, at time zero and at other specified points during the projection.
Details on this feature can be found in the Line of Business documentation for a given line of business.
We have two UL products with secondary guarantee design features that need to be reserved for in accordance with Actuarial Guideline AXXX. Is possible to do this on MG-ALFA?There are two mutually exclusive types of secondary guarantees on flexible premium UL prevalent in the market today: Specified Premium and Shadow Account. MG-ALFA supports both of these designs.
Details on AXXX can be found in the Line of Business Documentation.
There is a table out on the SOA Web site that is not in the MG-ALFA standard table file. How do I get it incorporated into MG-ALFA?MG-ALFA provides a utility allowing for importing tables directly from the SOA table manager program. To do so, open an Atb file, and select the Liab tab. On the Liab tab, select the Import toolbar button. MG-ALFA table import functionality is compatible with versions 2 and 3 of the SOA table manager.
I have a model that I based on an annual issuance frequency. Recently, it was determined that this was not granular enough for a current project. Is there any way that MG-ALFA can help me expand the granularity of this model?One of the challenges in modeling is determining the appropriate degree of granularity for the task at hand. When a model has been constructed with an eye on long-term analysis and a short-term view is required, it is often necessary to expand the model to include a distribution of issues through the calendar year. An Expand toolbar button is available on the Liab tab of the AIN that is intended to be a mechanical means of expanding an annual in-force file to a more frequent basis.
When the user selects to Expand the in-force file, the existing AIL will not be modified. Rather, new AIL files will be created for each of the additional months requested. For example, if the original in-force file has an annual issuance frequency with a July issue month (mid-cycle) and quarterly issues are desired, four files will be generated where the issue months will be February, May, August, and November (mid-quarter). The user specifies which columns in the AIL to adjust, and these values will be 1/4th of the original value in the new AILs. In addition to the four new AIL files, the user can request the creation of new Lseg, Proj and Run definitions, along with a summation projection. Note that the user can request that the four new sets of issues be combined in one inforce file rather than four separate files.
I want to do a quick test of my in-force file where I only run the first line of my in-force file. Does MG-ALFA provide a quick utility to do this?A Test utility is available on the Run tab of the AIN file. If this is set to "Yes", then MG-ALFA will only use the first cell in each AIL and AIA file included in the projections. This utility will allow users to easily test a run of a large project without changing the overall setup to validate the setup. This feature may be used in conjunction with RunManager as well to facilitate a quick check on the setup of the entire request.
I work for a single-line company that only sells LTC. Is there any way to erase all of the extra variables from other lines of business from my database?This can be quickly and easily done in MG-ALFA. A Subset toolbar is available on the Liab tab of the database. This feature can be used to create a database with a single liability category, reducing runtimes and making it easier to navigate through the formula database.
Refer to the User Reference section "How can I make a SubSet of my database?" for more information on this utility.
I am running an in-force projection with some very old issues in my model. I notice that the time-zero processing takes a very long time. Is there any way to reduce or eliminate my time-zero processing time?The primary job of time zero processing is to provide values for the time prior to the start of the projection. The bulk of the time is spent in running full liability processing on all existing business cells, from issue up through the start of the projection to ensure that any references to prior values will be available during the projection.
The user has the option to limit the variables that will be calculated, eliminating unnecessary calculations and speeding up the processing time.
Refer to the User Reference section “Options for time zero processing”.
I have a model of the fixed portion of my variable annuity business in MG-ALFA. I used the DefAnn line of business to model this. I would now like to incorporate the separate accounts into my model. Is there a way to copy the cellular input from the DefAnn line of business over to the VarDefAnn input so I do not have to start over?The Import option within the cellular input of an AIN file accomplishes this goal. This utility allows for importation from either ARS files or AIN files. Selecting to import from an AIN file provides the option of copying data from one line of business to another.
Refer to the User Reference section "How can I import variables from one line of business to another?”
My factor files are getting to be very large. Are there options available to me for making my factor file more efficient and compact?Yes. MG-ALFA offers a variety of factor file management tools, including:
- Specification of the level of detail for data capture: An option is available on the projection setup that allows the user to control the size of factor files by only storing unique factors. The user specifies which characteristics will lead to different factors rather than storing factors for each model point.
- Annual storage: In the SFAS 60 factor calculation projection parameters, the user has an option to store factors on a monthly basis for n-projection years, and then switch to an annual storage thereafter. The specification for the number of years is defined in the cellular input, through the variable f60sMonSaveYears. Since this is a cellular input assumption, the Varies-by options allow the user to appropriately balance space requirements and precision. Once f60sMonSaveYears has been appropriately coded, the user can then turn compression on or off through the definition of the projection parameters associated with a F60FactCalc projection. Depending on the number of years selected for annual storage, this projection option can produce a significant reduction in the size of the resultant factor file.
- Single precision: When creating and using factor files in a projection, the option to select single or double precision floating point format is available. A single precision real number uses 4 bytes to store a numerical value, while a double precision real number uses 8 bytes. The advantage of single precision is that the size of the factor file created will be significantly smaller. The order of reduction is between 40 and 50%.
The precision to be used in the factor file is specified in the configuration parameters. To locate the configuration settings, select Options/Config from the File Menu. FfileSingle is used to determine the precision for factor files. The default value for this is No, indicating that double precision factor files will be created and used. - Data drop before the projection date: Since PGAAP factors calculated between the issue date and the purchase date are irrelevant, the system will drop these values from the factor file when the option f60sPgOpt is set to Yes. This reduction in extraneous data helps to curtail the size of PGAAP factor files.
Independent Liability Projections allow for the liabilities in a given model to run independent of the asset and cash modules. When a standard MG-ALFA projection is run, each liability cell is setup, run, and taken down once each cash cycle to allow for dependencies with results from the asset or cash calculations. This is referred to as vertical processing. Horizontal processing eliminates this overhead by processing the liabilities for the entire projection, then processing the asset and cash modules. Horizontal processing only works when there are no dependencies between the liabilities and the assets.
There is a significant amount of fixed overhead related to the setting up and taking down of cells, mainly in the areas of item initialization. Independent Liability Projections allow the user to select to use horizontal processing when possible to take advantage of the speed improvement. The overhead is reduced since each liability cell is setup once at the beginning of the projection and run for all cash cycles through the end of the projection. From this processing aggregate cash-level results are produced. When the liability cells are complete, normal cyclical processing is resumed for assets, cash and the higher modules.
How do I perform model-fit analysis in order to assure that my projection results are accurately reflecting my actual experience?Doing model fit analysis is a simple, clear-cut process in MG-ALFA. The analysis is done using the cell-inventory report functionality. To do the analysis simply execute the following set of steps:
- Add new input variables to contain the "actual" numbers to which you are trying to fit the model. Reserve in-force, premium in-force and insurance in-force are example of “actual" numbers for the model fit. Link these new input variables to the Ail file.
- Set up a cell-inventory report that contains the input items, and the corresponding modeled items.
- Run the run request in the Ain file with the cell-inventory report selected. This step will build the Amg and Am1 file for use in the model generator.
- Use the resulting Amg file to create an Am2 file to do model fit reports on the captured variables.
For more information on cell-inventory reports and how to use them in the model generator, refer to the User Reference section "Cell-inventory reports".
I would like to add stochastic behavior to other elements of my model besides interest rates. Is MG-ALFA able to do this?Yes. MG-ALFA can accomplish this using the RandomValue pre-defined function. RandomValue is a random value generator that returns a random number based on a binomial distribution generated by the number of trials, and the mean value given. For example, if you wanted to add stochastic mortality to a model, the sample call would be the following:
RandomValue(Exposure, qbasic(t))
Where
Exposure = (Lives(t, h –1 ) – Deaths(t, h-1) – lapses(t, h-1)) / Siz
The return value from this call is the random probability of death given a mean value of qbasic and a sample size of Exposure (number of policies).
I would like to understand the timing of surrenders in MG-ALFA.A brief review (from the definitions in the actuarial documentation):
- IMO – the issue month within the issue period, an integer between 1 and 12, inclusive
- ISP – the issue point within the issue month, where 0<=ISP<=1
- Timing – MG-ALFA takes the concept of timing very seriously. An ISP of 0 for IMO=1 is an issue at the beginning of month 1. Recognizing that there is no such thing as an issue exactly on the cusp of a calendar month (e.g., exactly midnight on the morning of 1/1), this issue must be in month 1 (i.e., issued at least one small fraction of a second into the month). Thus, if a cell's first month starts in January, it must end in February. (A cell cannot end its month in the same month it is issued.) Thus, an issue at the beginning of January does not finish its third policy month until at least one fraction of a second into April. Lapses occur at the end of the policy month. MG-ALFA knows that the lapses occur one second into the following projection month and captures the cash flows and interest effects to reflect this.
(Note that an ISP of 1 would result in an issue a fraction of a second before midnight of month 1, with the same logic proceeding from there.) - Evenly distributed lapses – For my new issue on 1/1, if wTimingOpt is set to uniformly distribute the annual lapse rate, (i.e. wTimingOpt = "Uniform"), there will be no lapses (or surrender benefits) in the first projection month, followed by 11 months of lapses over the first projection year. Each successive projection year will have one month of lapses corresponding to the prior year's annual lapse rate, and 11 month of lapses based on the current year's annual lapse rate.
- End of Policy Year Lapses – If wTimingOpt is set to "Annual", you will see no lapses until a fraction of a second into the first month of the second projection year for a 1/1 issue.
The intent of MG-ALFA is to force issues to be in the first cash cycle after the middle of the projection year for pricing projections. This means that on an annual run, issues will occur in month IMO. In a monthly run, issues will occur in July. In a quarterly run, issues will occur sometime between July and September, depending on IMO.
If you want January issues when running with a monthly projection mode, set the valuation month to July. You can then suppress the 6 initial zeros by changing the report template from, for example, u=1-20 to u=7-20. Another option is to run a new business projection.
What are the differences between the pricing and a projection project types?- Pricing offers the Profit Solve functionality.
- Pricing forces issue date, the user can't control with IMO unless running with an annual projection mode.
- Pricing provides results for each cell, as well as composite reports.
- Pricing results are on a per-unit basis.
- Projections allow for a distribution of issues over a period of time.
There is an option variable in the cellular input called "LiabPdfAudRep". The default is "Na", but you can click on that and select the desired pdf audit report for the desired duration. For example, "CARVM2Reserve" is one of the choices. You may want to use the Varies-by option to control how many of these reports you generate. There is a similar option input variable in the asset cellular input and in the project input.
I would like to run projections from two different project files in batch mode. Is there some way I can do this?Using the MG-ALFA Run Manager (ARM) file, you can manage the processing of projections from different project files. While run manager is generally associated with the ability to distribute runs across a network of processors to facilitate the completion of large projections, the ARM file simply serves as a controller, providing the user with the option to initiate runs on multiple machines and from multiple AIN files from one central location.
The User Reference provides details on how to set up a run manager application.
Is it possible to generate full financial results for a sub-set of my model based on the total company projection?Results sub-projection reporting provides a utility that allows the user to allocate non-cellular data to generate financial statements for subsets of the business. This feature, available through the results reporting option, allows for non-cellular level financial variables to be allocated based on cellular level variables. For example, the user defines a formula to allocate investment income based on reserves and net cash flows, and can then generate income statements by plan, line of business, issue year, or any other characteristic or characteristic combination.
How can I determine the calendar year value of a policy year variable?Suppose you have a policy year variable PYVar(t, h). Further, you want CYVar(y, m) to be a variable such that the value of it in projection month m is the sum of all the values of PYVar(t, h) that occur in the current calendar year through month m.
The formula for CYVar(y, m) would be the following:
Sum(PYVar(t, h-h1), h1 = 0, h2)
where
h2 = (m - ValMonth - 1) mod 12
In essence, PYVar(t, h) is the value of PYVar that happens in the policy month that starts in projection month (y, m). This example is fully general for adding a variable that has beginning of month timing. If the variable has EOM timing, 1 will need to be subtracted from both of the sum limits. Conditionals would be necessary for policies issued after the valuation date.
What tools are available to see subtotals of liability or asset items?There are three options that are available. The first is to create an asset or liability segment in a runtime report. A report segment is a tool used to produce subtotals of liability or asset items across a category or characteristic. You can use segments in runtime report templates to report on all financial or semi-financial formula type variables defined in the mAsset or mLiab module. Segments can be used in all non-cellular reports.
The second option is to create an asset or liability subprojection. Liability and asset subprojection reports (LiabSub and AssetSub) can be useful in validating your model or showing certain results split out by cell attributes. The items that can appear in these reports are the same items that can appear in the CashMode section of the liability or asset audits. In summary, this means you can report only on mLiab or mAsset items that have a financial or semi-financial formula type in these types of reports.
The third option is Sub-Total Templates. Sub-total report templates provide a means of analyzing and validating projections by looking at sub-totals of selected financial and semi-financial variables. These templates provide a means of capturing and analyzing selected variables, with the additional layer of a subset of the entire projection. For example, the user can define a template to sub-total account value in-force by plan, line of business, issue year, or any other characteristic or characteristic combination.
All of these options are documented, with examples, in the User Reference. Refer to these sections: "How do I create liability or asset segments?", "How do I create asset or liability subprojections?", and "How do I generate sub-totals?"

