In addition to performing attribution on standard portfolios of securities, FIA can also model subportfolio holdings in a natural and elegant way.
Subportfolio modeling is an important capability that allows great flexibility in how you monitor your exposures and returns. While you do not have to use subportfolios to generate useful results, you may find them extremely useful in a range of situations.
A subportfolio is defined as a portfolio that is held, in part or entirely, by another different portfolio. Subportfolios can be used to model the following situations:
- A managed fund holds half of all the issuance of a unit trust, and the manager needs an attribution report on the composite fund.
- A benchmark is made up of several sub-benchmarks.
- A manager may wish to show the subsector returns of a larger portfolio to show competence in managing a particular type of asset.
- A small group of securities is to be split out from a main portfolio and monitored.
- A synthetic instrument is set up as a group of other instruments. This synthetic instrument can then be treated as a discrete entity in its own right.
All these cases can be modeled quickly and easily using FIA’s subportfolio capabilities.
How to set up a subportfolio
Suppose you have two portfolio files, STF1.CSV and STF2.CSV, containing weights and returns of a group of securities for portfolios STF1 and STF2, at two dates. Each fund only holds two bonds, so the files might look as follows:
Diagram 1: Two separate portfolios
Next, suppose you want to roll STF2 into STF1. To do this, simply add the contents of the STF2 file into the STF1 file as follows:
STF1 and STF2 combined
Diagram 2: A root portfolio and a subportfolio. STF1 is the root portfolio, and STF2 is the subportfolio.
This isn’t quite the full story, however. If you try to run file ‘STF1.TXT’ through FIA, the program will display an error message of the form
Errors found in imported data: 0022: On date 31/01/2009, 2 root nodes were found, but there should be only 1. They were: [STF1 STF2]
The reason for this message is that each portfolio passed to FIA must have be in the form of a tree structure with one – and only one- root portfolio. All other portfolios must be set up as subportfolios of that root portfolio. Since we have not told the system that STF2 is a subportfolio of STF1, the system thinks that you are trying to run attribution on two separate portfolios at the same time, and flags an error.
The way to set up STF2 as a subportfolio of STF1 is to treat STF2 as a security in its own right, and to record a holding of one unit of STF2 at each date. This is the reason for the ‘1.0’ shown on the line linking STF1 and STF2 in Diagram 2. For each date on which the subportfolio is active, add an extra line into the portfolio file, showing the holding and its amount:
STF1 and STF2 combined with subportfolio holdings added
The extra holdings are shown in bold on the last two lines. Note that:
- The root portfolio is STF1
- STF2’s name is entered into the security name field. Normally, entering a security name that has not been set up in the security file generates an error. However, in this case the system knows that STF2 is actually another portfolio, and treats it as such. There is no need to set up a security called STF2 in the security file.
- STF1 holds one unit of portfolio STF2; in other words, the entire fund.
- No return is recorded for STF2. It is possible to record a return at this point (below we will show some cases in which you may wish to do this) but the system has all the information it needs to calculate the return of STF2 from its constituent securities, so there is no need to log this return.
More about subportfolios
Number of subportfolios
There are no limits on how many subportfolios can be held in a portfolio.
Degree of subportfolio nesting
There are no limits on how deeply portfolios can be nested, or on the complexity of the portfolio structure. For instance, if you have four portfolios STF1, STF2, STF3, STF4, STF5, they might be arranged as follows:
Diagram 3: Portfolios nested one level deep
Here, STF1 holds one unit each of STF2, STF3, STF4 and STF5. Alternatively, the portfolio might be formed as follows:
Diagram 4: Portfolios nested two levels deep
Here STF1 holds one unit of STF2 and STF3, while STF3 holds in turn one unit of STF4 and STF5.
FIA allows fractional holdings of portfolios. For instance, if STF1 actually held 50% of STF2, this would be represented as follows:
Diagram 5: Fraction portfolio nesting
When fractional holdings are used, the contribution to performance from a subportfolio is adjusted by the fractional holding of that subportfolio.
Example Excluding subportfolios, STF1 has a market value of $1mm, and a return of 1%, over a given month. STF2 has a market value of $0.5mm, and a return of 2% over the same month. STF1 has a 0.5 holding in STF2. Then the overall return of STF1 over the month is given by ($1mm * 1%) + (0.5 * $0.5mm * 2%) / ($1mm + 0.5 * $0.5mm) = 1.2%
Accumulating fractional holdings
Fractional holdings are accumulative. For instance, suppose STF1 holds 0.5 units of STF2, while STF2 holds 0.2 units of STF3. Then for STF1, the contributions to return by fund STF3 will be multiplied by 0.5*0.2 = 0.1.
Holdings can vary by date, just as for securities. For instance, if the holdings of STF2 dropped from 100% to 30% over the month, the holdings lines would look as follows:
In this case, the contribution to return made by STF2 will drop on 31/1/2009 due to its lower holding.
Changing fund topology
The topology of the fund can change over time.
For instance, suppose a fund is reorganized during January 2009. Previously, STF1 held 100% of STF2, and STF2 held 50% of STF3. For administrative purposes, we want to move the 50% holding of STF3 from STF2 to STF1. This is modeled as follows:
Suppose we have defined an interest rate swap as a portfolio containing a $1 holding of a bond, and a -$1 holding of an FRN. Rather than modeling the return of the swap as a set of holdings in both securities, FIA allows you to set up the swap as an independent portfolio in its own right, so that other portfolios can hold units of this synthetic security.
On each date, the swap would be represented as the following two lines:
Then a $1mm holding of this swap in portfolio STF1 is represented as follows:
Suppose that you want to monitor a particular trade, such as a barbell, in your main portfolio. A barbell position replicates the duration of a bullet bond by replacing it with two other securities, one with a long and one with a short maturity, so that the duration of the two securities is the same as the original bond, but the convexity is higher.
For accounting purposes, you may wish to keep the holdings of these securities separate from other holdings in the same security. Assuming the barbell is made up of $1mm of ‘LONG BOND’ and $1mm of ‘SHORT BOND’, set up a subportfolio called BARBELL:
Then buy 1 unit of subportfolio BARBELL in your main portfolio:
The return of BARBELL will be shown in a separate report (see below) and the returns of the subportfolio will be shown as if it were a separate security in the main portfolio’s report.
Returns of a subportfolio
Usually, the returns field of a subportfolio can be left empty. However, there are some cases in which you may want to provide a specific return.
In a previous section we showed how an interest rate swap may be modeled. Very probably, your back office has an official return for this security that should be used in the attribution report.
In this case, the official returns (in local and base currency terms) for the swap can be included in the last cells of the swap holdings line:
It may well be that the official return differs to some degree from the return calculated by FIA. Whatever the reason, the official return will be used for all further attribution calculations, ensuring that the overall return of the portfolio is identical that that of the back office report. Since an official return is supplied for this synthetic security, a residual will also be calculated, and this can be monitored over time to flag any pricing problems (see Chapter 11, Residuals).
Reporting is covered in more detail in Chapter 10. However, the main points relating to subportfolios are as follows:
Suppose we have two portfolios STF1 and STF2. STF2 is a sub-portfolio of STF1. Then the following reports will be generated for both STF1 and STF2:
- A report showing returns decomposed by risk
- A report showing return by date and risk
- A report showing return broken down by security and risk
Although STF2 is a subportfolio of STF1, its risk reports will be calculated as if it were a stand-alone portfolio.
The summary risk report for STF1, and risk report by date and risk for STF1, will include the return contributions from STF2.
The risk report for STF1 by date and security will show the return generated by each security that was held in STF1. In addition, the report will show the return generated by STF2 as if STF2 were a security in its own right. This includes return generated by any subportfolios of STF2, if they exist. Remember that the return contribution made by a sub-portfolio will almost certainly be different to its actual return.
In general, risk reports are generated automatically for all sub-portfolios, but you are free to ignore and delete reports that are not of interest.
Constraints on portfolio modeling
The following rules are enforced by the system:
- A portfolio can only have one root portfolio. In practice, this also means that all links in a portfolio must be matched (no orphan portfolios).
Disallowed: there are two root portfolios STF1, STF2
Disallowed: there are two root portfolios STF1, STF3. STF3 is an orphan portfolio as it is not connected to any other portfolio
- There can be no circular links in the portfolio structure. Portfolio A cannot own a part of portfolio B, which in turn owns part of portfolio A. For instance, the following case is disallowed:
Disallowed: STF1 owns part of STF2, which owns part of STF3, which owns part of STF1
An attempt to run attribution on a portfolio with any of these issues will generate an error report, containing a clear description of where and why the problem occurred.
At present, there is no facility to link different portfolio files together at runtime, but we may introduce this option in future.