2. Porfolio - mlb3820/prba GitHub Wiki

A portfolio is a collection of holdings assigned to asset classes as defined by the user. The asset classes are given a target percentage of the overall portfolio and target bands are defined to indicate to the user when it is time to rebalance this portfolio.

The key feature of the this app that differentiates it from the vast majority of brokerage reporting and rebalancing tools is that the user is free to define asset classes according to their own needs. By way of example, gold can be held as 1 oz coins in a safe, in a mutual fund or in an ETF. These bouillon holdings don't necessarily fit the brokerage category of say an ETF, and typically don't let you add things that you are not managing with them, but all of these assets belong to the same asset class for purposes of asset allocation in the portfolio. In this app the user can record holdings in any fashion and roll them up into the asset class they define.

For instance, the user might use the Permanent Portfolio (PP) which allocates holdings amount 4 asset classes, stocks, long term bonds, cash (or short term bonds) and gold. Each asset class has a target allocation of 25% of the total portfolio. Each asset class has upper and lower thresholds around the target allocation percentage for purposes of know when the class has increased or dropped in price. When a threshold is breached, the user knows it is time to rebalance the portfolio. They know it is time to sell a portion of their holdings in asset classes that have exceed 25% and buy more in asset classes that are below 25%. The PP uses 35% for the upper threshold and 15% for the lower.

Each portfolio can have its own mix of asset classes and target %ages which must total 100%.

When creating a portfolio, the user can create from a new portfolio from set of per common predefined portfolio asset allocations. Or they can create a portfolio from scratch.

Each portfolio will have:

  • name
  • description
  • owner/on behalf of (Dad's IRA, Dad's brokerage, Melinda's IRA etc); this can be changed to the email address of a verified user
  • 1 to many asset classes, each with target % and bands
  • 1 to many holdings in each asset class
  • group (for totaling purposes; I might want to combine multiple IRA PPs but not include a variable portfolio in the overall balance I see in the app; I might want to include my portfolios and my wifes by not father's etc)