Secondary menu

Upcoming beta

We're nearly ready to release the beta test for the new release. We have made lots of changes and improvements to the user interface and computation engine. If you have signed up for the beta test "role" we'll select about 20 of you and make the kit available in the next day or two. We expect to test for about two weeks and then roll out the final update.

1

Hi Lowell, When you send us the Beta version, it would be helpful if you identify the changes you've made to the GUI & the CE. Will the tax tables be updated? Fed & state?
Thanks
James Mavrogenis

2

Here's the [raw] change list for the CE. There may be a few more tweaks to the list during Beta, but there will be no additional bugs fixed that aren't directly related to changes for this release. The Monte Carlo work was the biggest reason for our having skipped our usual February release date. Larry and I spent the better part of two months buried in the MC and cleaned up a bunch of theoretical and implementation issues that were part of the original design. There were a vast number of changes for software engineering reasons, restructuring, redesign, ease of maintenance, etc. Some of this won't make a lot of sense without context, suffice it to say it's been a ton of work.

  1. Move consumption function and ancillary routines into a module.
    Change design of consumption function so that conventional planning lasts through end of life.
    Do net present value calculation of consumption and earning liquidity to connect assets and consumption at the end of conventional planning.
    Add planning method data and interfaces to demographics.
    Emit a negative consumption error message.
    Adjust discretionary spending by conventional planning method spending for singles.
    Adjust discretionary spending by conventional planning method spending for married.
  2. During the asset calculations, in one of the special cases after the spouse dies, the spousal benefit was being included twice in the asset reduction resulting in requiring too few assets.
  3. The draws are inconsistent when doing MC work in the same year using the same portfolio.
    For the same year in the same trace, the same portfolio should use the same draw.
  4. Rationalize the timing of the retirement accounts so that the basic and MC results will be congruent.
    Distribute retirement assets based on ratios calculated by the basic module.
    Get rid of equivalenced variables: a_monte_tf_spend_amt%_%
    Get rid of unnecessary variable: a_monte_tf_spend_amt1
    Get rid of equivalenced variables: a_monte_tf_spend_amt%_%
    Get rid of unnecessary variable: a_monte_tf_spend_amt1
    Convert traceTaxFavoredAssets to a role indexed array.
    Use the basic calculated withdrawal ratio in the backward calculations.
    Add routines to calculate withdrawal ratio for the monte carlo.
    Change the interface to the basic Withdraw1.
    Add routine to fetch the withdrawal ratio for the monte carlo.
    Convert retirement calculations to a cash-on-hand basis as per Larry's notes.
    Get rid of an unnecessary variable: s_tf_spendc
    Calculate withdrawal ratio and asset ratio once during the basic pass.
    Convert retirement withdrawal calculations to assets and cash on hand.
  5. Rationalize the timing of the retirement accounts so that the basic and MC results will be congruent. Survivor module integration.
    Integegrate new withdrawal scheme into survivor module.
  6. Rationalize the timing of the retirement accounts so that the basic and MC results will be congruent. Monte Carlo module integration.
    Use the new retirement account monte carlo retirement account function.
    Add monte carlo withdraw1 routine.
  7. Refactor all the calculateRetirementAccount routines into a stand alone module to avoid circular references between retirementAccounts and lifeInsurance. Monte Carlo integration is not complete.
  8. Continuation of 3.04.p00-02. The intermediate edit was to solve a software factoring problem that led to a circular loop.
    Change the name of a_monte_def to show the relationship with basic.
    Change the name of def_monte to show the relationship with basic and the specific data maintained in the variable.
    Get rid of a_monte_tf_spend_amt2 and access the underlying zxyx variables directly.
    Change the name of defz to better document what actually is contained in the variable.
    Its no longer necessary to copy the zxyx data into a temporary for processing in monte_withdraw_amt2.
    Make the retirement account processing role neutral.
    Get assets on hand to be spent to track in the MC module the same way it does in the other modules.
    Convert the assets on hand into total cash on hand when making the withdraw calls.
    The withdraw accounts should all be based on cash on hand, not cash on hand or assets on hand. If (when) simultaneous withdrawals and contributions are allowed this will be necessary to get the retirement account processing correct.
    Convert the psuedo-annuity withdrawal to eliminate the copying of data from the zxyx structures.
    Make the psuedo-annuity timing for withdrawals obey the same rules as for the normal retirement accounts.
  9. Start getting results from the MC. Further testing needs to be done to see if the results are rational.
    Restructure transfer of initial retirement assets for forward pass and trace.
    Tracing of retirement assets wasn't role neutral.
    Make the assetsTaxFavored????_show variable role neutral.
    The MC version of calculateRetirementAccount wasn't role neutral.
    The calculateSurvivorWithdrawalRatio was calculating incorrect withdrawal ratios.
    Port of U2010-02-01_03.04.p02-00 to make the MC results more tractable.
    For the same year in the same trace, the same portfolio should use the same draw.
  10. Chase the negative regular asset problem some more.
    Start using the demographics version of the survivor index function.
    Add survivor index function.
    Change interface to beginEnd
    Start using the demographics version of the survivor index function.
    Break apart the earnings liquidity calculation so that we can debug the components.
    Earnings liquidity didn't include spousal benefits in a couple of places.
    The zxyx calculations didn't need to rewrite the retirement account structures.
    There may have been an inconsistency introduced due to the end of period assets being stored in the retirement accounts.
    Enforce the borrowning constraint on the forward pass.
  11. Chase the negative regular asset problem some more.
    The monte carlo withdraw1 function was using the actual draws from the future instead of the MEAN draws from the basic for the future to calculate the withdrawal.
  12. Add a new canned asset: Commodities.
  13. Add a few of the 2009 1040 constants.
    Allow withdrawals from retirement accounts prior to the year of first withdrawal.
  14. Update to 2009 1040.
    Add 2009 tax tables.
    Update 1040 form processing for 2009.
    Redesign EITC routine to handle varying number of children limits.
    Add COLA for 2009
    Add the 2008 Average Wage Index.
  15. The lower bracket of the AMT changed in 2009, redefine the indexing year to be 2009.
  16. Spousal benefit calculations were using the spousal benefit year of collection as the RIB year of collection.
    There was a comparison error in one of the calculations for spousal benefit reduction.
  17. Emit a net worth mismatch error.
    Further issue with the last one, only the husband's spousal benefits should have been added, not the husband's and wife's.
  18. Invalid argument in one spot of monte trace for role neutral processing of retirement accounts.
  19. Fix self employment taxes not coming out of AGI.
    Deduct self employment tax from federal AGI.
    Self employment taxes need to be deducted from AGI prior to calling the federal tax routines.
    The survivor medicare B contributions needed to be doubled.
    The nominal asset income wasn't being correctly reported out in the federal detail tax report.
    Self employment taxes need to be deducted from AGI prior to calling the federal tax routines.
    The self employed medicare tax isn't being calculated properly for the survivor cases.
  20. Get rid of paybase* variables from common (they are local to the tax routines)
    Add interface for survivor tax routines.
    Add routines to calculate payroll taxes.
    Remove paybase.
    Include contingent housing capital gains.
    Include real estate capital gains.
    Change nominalAssets variable name.
    Change nominalAssets variable name.
  21. Add Upside Investing infrastructure.
  22. Add upside investing to backwards pass for regular assets only.
    Set up for forward pass.
    Add upside investing to forward pass for regular assets only.
    Net cash flow from retirement accounts was wrong going forward.
    Add tracing of risky assets to espbasic.
    Add output of risky assets.
  23. Fix variance in standard of living for upside investing.
    Initialize lifetime rates of return to account for kids.
    Initialize upside investing rates of return properly.
    Catch a usage error that kept the risky tax difference from being correctly calculated.
    Try to fix some precision problems by using scientific notation for consumption profiles.
  24. Add upside investing for retirement accounts to singles.
    Make sure the right rate of return gets used during basic processing.
    Loose the risky percentage of retirement assets.
    Calculate the survivor and other withdrawals based on safe nominal rates of return.
  25. Fix miscellaneous bugs in the regular assets upside investing.
  26. In the state tax base calculation, the excludable special expenditures weren't being converted to nominal before subtracting.
  27. Emit an error to the process pipe if a parsing error occurs.
  28. Bitten once again by the difference between coverting real dollars to nominal dollars and converting real income to nominal income.
    Nominal Asset income has to get set in the tax routines.
    Nominal asset income has to be converted by component for reporting.
  29. Yet another choleski hack. If the variance is 0 during the decomposition, make it a small non-zero number to see if the choleski proceeds.
  30. SurvivorIndex had a bug in it and it would return the wrong value occasionally.
    Survivor index has to be calculated upon entry each time to handle when this routine is called during the backward pass.
    Limit withdrawals going backward to actual years of withdrawals.
  31. Finish implementation of upside investing for retirement accounts.
    Combine state tax base data.
    Add interface to initialize specific values of retirement account assets.
    Add interface to sum risky retirement account assets.
  32. 2009 State Tax Tables
  33. Merge current state of upside investing into main development stream to "fix" the Rick Fine bug.
    Some states tax unqualified withdrawals.
  34. Get rid of logic when doing asset initialization for safe assets.
  35. Change consumption variable names to standardOfLiving variable names which ties it into the MC report names a little better.
    Use cash on hand as the grid value during the backward pass.
    Record current retirement assets during backward processing.
    Use SurvivorIndex hack rather than checking for years.
    Get the end of period assets right so that the grid limit and the trace get done right.
  36. Pass in the retirement account cash on hand rather than trying to figure it out implicitly.
  37. Move the trace of the basic run into the monte routine to simplify the monte trace routine.
    Make sure to include contributions in figuring out next years retirement cash on hand.
    Get the calculation of the cash on hand right for the traced consumption value.
    Pull special cases for trace 0 since thats handled in the calling routine.
    The consumption must be calculated after earnings liquidity is available.
    Withdrawal ratios have to be calculated wrt individual accounts, not the sum of accounts.
  38. Fix a pathological combination of setting in the UI for retirement accounts.
  39. Rename all the grid variables (again) to reflect their actual contents (assets * ( 1 + r ))
    Convert the retirement asset state variable into real terms to increase the resolution of the grid.
    Used cash on hand incorrectly as a state variable in the forward pass, screwing up the consumption.
  40. Add some documentation to the MC. Clean up some logic in the forward trace to use survivor index and role neutral code.
  41. Add "ERROR:" tag.
  42. Add varying grid size to MC to fix design flaw.
  43. More tweaks to varying grid size.
  44. Make sure that retirement assets after year of first withdrawal remain on grid.
  45. Adjust regular asset maximum value if the step size grossly overruns the maximum regular asset value.
    Fix the problem with varying grid limits. The problem was the scan forthe negative to positive consumption state was quitting before the end of the grid. When regular assets were in the last grid point, the consumption function gets corrupted.
  46. Add precision interface to monte carlo. Currently it essentially returns the current array sizes.
    New module to allow use of allocatable arrays in the consumption function data structure.
    Move consumption related routines into a single module: monte, monte_cfunc1, monte_interpol, monte_c_rw:
  47. Use asynchronous I/O to pick up a little performance.
  48. The variance wasn't being initialized properly.
  49. Calculate the consumption profiles based on the weighted average of mean rates of return
  50. New design of upsideInvesting.
  51. Didn't have quite the right algorithm for getting the MDR index right.
    Move MinimumWithdrawalIndex to retirementAccounts module.
    Get the signs on minimum required distributions right.
    New financial data for 2009.
  52. Extra error processing in date of collection XML processing routines.
  53. Make sure all XML parsing reads have end of file detection as well as bad data detection.
    Write out total loss value in the consumption profile.
  54. Add additional error information for parsing collection dates.
  55. Don't require the month as well as the year to be 0 for the default case.
  56. Make sure that variable annuity rates of return are defined even if monte carlo is turned off. There is an obsure bug that gets triggered if the nominal rate of return is set to 0 and the annuities are invested in variable instruments.
  57. GetSurvivorRetirementBenefitAfterReduction is being called incorrectly in tax2009
  58. survivor benefits were being incorrectly cleared.

Best,

Dick

3

Dick, Thanks. That's a very through list. I've read through it and am not sure that the following bugs have been addressed. They are identified in the following support tickets:
700-604
700-643
700-659

Regards
James Mavrogenis

4

Maybe, maybe not. If they haven't been, they won't be. Most of the time in the last 6 months has been spent on futures work with the occasional bug fix. Unusual for us, but it's a strategic necessity.

Best,

Dick Munroe

5

Was the canned commodity asset not added to Monte Carlo in 2.16.60?

6

It was not added to the user interface, we collected data for it but didn't have time to deal with everything on our plates despite having skipped a release cycle.

Best,

Dick Munroe