fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <cmath>
  4. #include <algorithm>
  5. #include <iomanip>
  6. #include <tuple>
  7. #include <string>
  8.  
  9. using namespace std;
  10.  
  11. using Portfolio = vector<int>; // weights in percent, size = 6
  12.  
  13. double percentile15(vector<double>& data) {
  14. sort(data.begin(), data.end());
  15. size_t index = static_cast<size_t>(floor(0.15 * data.size()));
  16. if (index >= data.size()) index = data.size() - 1;
  17. return data[index];
  18. }
  19.  
  20. double median(vector<double>& data) {
  21. sort(data.begin(), data.end());
  22. size_t n = data.size();
  23. if (n % 2 == 0)
  24. return (data[n / 2 - 1] + data[n / 2]) / 2.0;
  25. else
  26. return data[n / 2];
  27. }
  28.  
  29. double lumpSumCAGR(const vector<double>& returns) {
  30. double compound = 1.0;
  31. for (double r : returns) {
  32. compound *= (1.0 + r);
  33. }
  34. return pow(compound, 1.0 / returns.size()) - 1.0;
  35. }
  36.  
  37. double portfolioReturn(const vector<vector<double>>& assets, const Portfolio& weights, int year) {
  38. double result = 0.0;
  39. for (int i = 0; i < weights.size(); ++i) {
  40. result += (weights[i] / 100.0) * assets[i][year];
  41. }
  42. return result;
  43. }
  44.  
  45. void generatePortfolios(vector<Portfolio>& portfolios, Portfolio current, int pos, int totalWeight, int maxAssets) {
  46. if (pos == current.size()) {
  47. if (totalWeight == 100) {
  48. int nonZero = count_if(current.begin(), current.end(), [](int w) { return w > 0; });
  49. if (nonZero <= maxAssets) {
  50. portfolios.push_back(current);
  51. }
  52. }
  53. return;
  54. }
  55. for (int w = 0; w <= 100 - totalWeight; w += 5) {
  56. current[pos] = w;
  57. generatePortfolios(portfolios, current, pos + 1, totalWeight + w, maxAssets);
  58. }
  59. }
  60.  
  61. int main() {
  62. const int numAssets = 6;
  63. const int maxAssets = 3;
  64. const int step = 5;
  65.  
  66. // Asset names
  67. vector<string> assetNames = {
  68. "scv60Lcg15", "scv95", "vti", "11all", "33gld", "lcbtiltled"
  69. };
  70.  
  71. // Return data
  72. vector<vector<double>> assets = {
  73. // Asset 1
  74. {-0.04,0.14,0.15,-0.14,-0.19,0.26,0.28,0.04,0.08,0.28,0.08,-0.06,0.24,0.22,-0.01,0.26,0.14,-0.02,0.14,0.16,
  75. -0.16,0.29,0.15,0.18,-0.03,0.20,0.13,0.20,0.02,0.08,-0.04,0.04,-0.07,0.33,0.12,0.06,0.15,0.01,-0.26,0.31,
  76. 0.22,-0.03,0.15,0.19,0.08,-0.06,0.16,0.13,-0.11,0.21,0.13,0.12,-0.18,0.15,0.12},
  77.  
  78. // Asset 2
  79. {-0.03,0.13,0.06,-0.29,-0.31,0.43,0.46,0.08,0.07,0.21,0.12,0.06,0.31,0.38,0.02,0.31,0.12,-0.08,0.23,0.14,
  80. -0.22,0.37,0.24,0.19,-0.02,0.24,0.17,0.31,-0.06,0.02,0.04,0.11,-0.13,0.41,0.17,0.04,0.15,-0.09,-0.32,0.33,
  81. 0.23,-0.06,0.18,0.32,0.09,-0.06,0.23,0.09,-0.15,0.20,0.03,0.19,-0.16,0.11,0.08},
  82.  
  83. // Asset 3
  84. {-0.02,0.11,0.12,-0.25,-0.36,0.30,0.21,-0.11,-0.01,0.05,0.16,-0.11,0.19,0.19,0.01,0.28,0.15,-0.02,0.12,0.24,
  85. -0.10,0.29,0.06,0.08,-0.01,0.34,0.19,0.30,0.24,0.19,-0.13,-0.09,-0.25,0.30,0.08,0.02,0.12,0.01,-0.37,0.26,
  86. 0.16,-0.02,0.14,0.31,0.12,0.00,0.11,0.19,-0.07,0.28,0.19,0.18,-0.24,0.22,0.20},
  87.  
  88. // Asset 4
  89. {-0.02,0.12,0.14,-0.13,-0.19,0.22,0.26,0.04,0.06,0.19,0.07,-0.07,0.20,0.20,0.03,0.26,0.19,0.00,0.14,0.15,
  90. -0.16,0.24,0.10,0.20,-0.02,0.19,0.12,0.17,0.01,0.05,0.01,0.02,-0.06,0.32,0.14,0.07,0.17,-0.01,-0.25,0.25,
  91. 0.20,0.00,0.14,0.15,0.11,-0.04,0.13,0.12,-0.10,0.20,0.07,0.12,-0.19,0.10,0.08},
  92.  
  93. // Asset 5
  94. {-0.01,0.11,0.19,0.03,-0.05,0.13,0.23,0.07,0.10,0.44,0.08,-0.13,0.20,0.14,-0.04,0.19,0.16,0.02,0.06,0.08,
  95. -0.15,0.17,0.08,0.16,-0.03,0.17,0.11,0.12,0.00,0.02,-0.01,0.02,-0.02,0.30,0.11,0.07,0.19,0.03,-0.21,0.25,
  96. 0.23,0.00,0.13,0.08,0.09,-0.06,0.13,0.10,-0.08,0.20,0.10,0.11,-0.14,0.11,0.14},
  97.  
  98. // Asset 6 (new: lcbtiltled)
  99. {-0.03,0.13,0.12,-0.22,-0.30,0.25,0.24,-0.02,0.00,0.07,0.08,-0.09,0.14,0.20,0.07,0.26,0.15,-0.02,0.16,0.24,
  100. -0.13,0.33,0.10,0.21,-0.03,0.22,0.16,0.21,0.05,0.15,-0.05,-0.02,-0.12,0.32,0.14,0.08,0.17,0.02,-0.32,0.29,
  101. 0.17,-0.01,0.14,0.17,0.13,-0.03,0.11,0.16,-0.09,0.23,0.11,0.14,-0.24,0.14,0.11}
  102. };
  103.  
  104. int numYears = assets[0].size();
  105.  
  106. for (int duration = 1; duration <= 31; duration += 1) {
  107. cout << "\n========== Duration: " << duration << " years ==========\n";
  108.  
  109. vector<Portfolio> portfolios;
  110. generatePortfolios(portfolios, Portfolio(numAssets, 0), 0, 0, maxAssets);
  111.  
  112. vector<tuple<Portfolio, double, double, double, double>> results;
  113.  
  114. for (const Portfolio& p : portfolios) {
  115. vector<double> cagrList;
  116. for (int start = 0; start <= numYears - duration; ++start) {
  117. vector<double> subReturns;
  118. for (int i = 0; i < duration; ++i) {
  119. subReturns.push_back(portfolioReturn(assets, p, start + i));
  120. }
  121. double cagr = lumpSumCAGR(subReturns);
  122. cagrList.push_back(cagr);
  123. }
  124.  
  125. double p15 = percentile15(cagrList);
  126. double pmin = *min_element(cagrList.begin(), cagrList.end());
  127. double pmax = *max_element(cagrList.begin(), cagrList.end());
  128. double pmed = median(cagrList);
  129.  
  130. results.emplace_back(p, p15, pmin, pmax, pmed);
  131. }
  132.  
  133. sort(results.begin(), results.end(),
  134. [](const auto& a, const auto& b) {
  135. return get<1>(a) > get<1>(b);
  136. });
  137.  
  138. cout << fixed << setprecision(2);
  139.  
  140. for (int i = 0; i < 2 && i < results.size(); ++i) {
  141. auto [weights, p15, pmin, pmax, pmed] = results[i];
  142. cout << "\nPortfolio " << (i + 1) << ":\n";
  143. cout << left << setw(15) << "Asset" << setw(10) << "Weight\n";
  144. cout << "-------------------------\n";
  145. for (int j = 0; j < numAssets; ++j) {
  146. if (weights[j] > 0) {
  147. cout << left << setw(15) << assetNames[j] << setw(10) << weights[j] << "\n";
  148. }
  149. }
  150. cout << "-------------------------\n";
  151. cout << "Bottom 15th % CAGR : " << p15 * 100 << "%\n";
  152. cout << "Min CAGR : " << pmin * 100 << "%\n";
  153. cout << "Max CAGR : " << pmax * 100 << "%\n";
  154. cout << "Median CAGR : " << pmed * 100 << "%\n";
  155. }
  156. }
  157.  
  158. return 0;
  159. }
  160.  
Success #stdin #stdout 2.52s 5284KB
stdin
Standard input is empty
stdout
========== Duration: 1 years ==========

Portfolio 1:
Asset          Weight
   -------------------------
11all          35        
33gld          65        
-------------------------
Bottom 15th % CAGR : -2.65%
Min CAGR           : -22.40%
Max CAGR           : 35.25%
Median CAGR        : 10.45%

Portfolio 2:
Asset          Weight
   -------------------------
vti            5         
11all          25        
33gld          70        
-------------------------
Bottom 15th % CAGR : -2.65%
Min CAGR           : -22.80%
Max CAGR           : 35.80%
Median CAGR        : 10.55%

========== Duration: 2 years ==========

Portfolio 1:
Asset          Weight
   -------------------------
scv95          30        
vti            10        
33gld          60        
-------------------------
Bottom 15th % CAGR : 1.09%
Min CAGR           : -14.26%
Max CAGR           : 26.66%
Median CAGR        : 8.76%

Portfolio 2:
Asset          Weight
   -------------------------
scv60Lcg15     30        
scv95          25        
33gld          45        
-------------------------
Bottom 15th % CAGR : 1.08%
Min CAGR           : -13.80%
Max CAGR           : 27.29%
Median CAGR        : 8.27%

========== Duration: 3 years ==========

Portfolio 1:
Asset          Weight
   -------------------------
scv95          20        
vti            35        
33gld          45        
-------------------------
Bottom 15th % CAGR : 2.71%
Min CAGR           : -7.91%
Max CAGR           : 20.42%
Median CAGR        : 8.07%

Portfolio 2:
Asset          Weight
   -------------------------
scv95          15        
vti            35        
33gld          50        
-------------------------
Bottom 15th % CAGR : 2.67%
Min CAGR           : -6.67%
Max CAGR           : 19.89%
Median CAGR        : 8.05%

========== Duration: 4 years ==========

Portfolio 1:
Asset          Weight
   -------------------------
scv60Lcg15     20        
33gld          80        
-------------------------
Bottom 15th % CAGR : 4.50%
Min CAGR           : 0.22%
Max CAGR           : 19.45%
Median CAGR        : 7.56%

Portfolio 2:
Asset          Weight
   -------------------------
scv60Lcg15     15        
11all          5         
33gld          80        
-------------------------
Bottom 15th % CAGR : 4.47%
Min CAGR           : 0.23%
Max CAGR           : 19.31%
Median CAGR        : 7.47%

========== Duration: 5 years ==========

Portfolio 1:
Asset          Weight
   -------------------------
scv60Lcg15     55        
33gld          45        
-------------------------
Bottom 15th % CAGR : 4.39%
Min CAGR           : 0.35%
Max CAGR           : 18.57%
Median CAGR        : 8.28%

Portfolio 2:
Asset          Weight
   -------------------------
scv60Lcg15     40        
33gld          50        
lcbtiltled     10        
-------------------------
Bottom 15th % CAGR : 4.37%
Min CAGR           : 0.29%
Max CAGR           : 17.82%
Median CAGR        : 8.06%

========== Duration: 6 years ==========

Portfolio 1:
Asset          Weight
   -------------------------
scv60Lcg15     45        
33gld          50        
lcbtiltled     5         
-------------------------
Bottom 15th % CAGR : 5.59%
Min CAGR           : 2.78%
Max CAGR           : 16.44%
Median CAGR        : 7.91%

Portfolio 2:
Asset          Weight
   -------------------------
scv60Lcg15     50        
33gld          50        
-------------------------
Bottom 15th % CAGR : 5.56%
Min CAGR           : 2.79%
Max CAGR           : 16.76%
Median CAGR        : 7.82%

========== Duration: 7 years ==========

Portfolio 1:
Asset          Weight
   -------------------------
scv60Lcg15     15        
scv95          35        
33gld          50        
-------------------------
Bottom 15th % CAGR : 6.15%
Min CAGR           : 3.69%
Max CAGR           : 15.15%
Median CAGR        : 8.05%

Portfolio 2:
Asset          Weight
   -------------------------
scv60Lcg15     25        
scv95          30        
33gld          45        
-------------------------
Bottom 15th % CAGR : 6.15%
Min CAGR           : 3.70%
Max CAGR           : 15.12%
Median CAGR        : 8.19%

========== Duration: 8 years ==========

Portfolio 1:
Asset          Weight
   -------------------------
scv60Lcg15     50        
vti            5         
33gld          45        
-------------------------
Bottom 15th % CAGR : 6.34%
Min CAGR           : 3.85%
Max CAGR           : 13.47%
Median CAGR        : 7.83%

Portfolio 2:
Asset          Weight
   -------------------------
scv60Lcg15     45        
scv95          10        
33gld          45        
-------------------------
Bottom 15th % CAGR : 6.34%
Min CAGR           : 3.95%
Max CAGR           : 14.48%
Median CAGR        : 7.98%

========== Duration: 9 years ==========

Portfolio 1:
Asset          Weight
   -------------------------
scv60Lcg15     10        
scv95          30        
33gld          60        
-------------------------
Bottom 15th % CAGR : 7.01%
Min CAGR           : 3.70%
Max CAGR           : 16.35%
Median CAGR        : 8.21%

Portfolio 2:
Asset          Weight
   -------------------------
scv95          35        
33gld          65        
-------------------------
Bottom 15th % CAGR : 7.00%
Min CAGR           : 3.78%
Max CAGR           : 16.64%
Median CAGR        : 8.15%

========== Duration: 10 years ==========

Portfolio 1:
Asset          Weight
   -------------------------
scv60Lcg15     95        
scv95          5         
-------------------------
Bottom 15th % CAGR : 6.45%
Min CAGR           : 3.10%
Max CAGR           : 13.79%
Median CAGR        : 8.70%

Portfolio 2:
Asset          Weight
   -------------------------
scv60Lcg15     100       
-------------------------
Bottom 15th % CAGR : 6.44%
Min CAGR           : 3.13%
Max CAGR           : 13.43%
Median CAGR        : 8.70%

========== Duration: 11 years ==========

Portfolio 1:
Asset          Weight
   -------------------------
scv60Lcg15     20        
scv95          65        
33gld          15        
-------------------------
Bottom 15th % CAGR : 6.75%
Min CAGR           : 2.20%
Max CAGR           : 18.65%
Median CAGR        : 9.56%

Portfolio 2:
Asset          Weight
   -------------------------
scv60Lcg15     25        
scv95          60        
33gld          15        
-------------------------
Bottom 15th % CAGR : 6.74%
Min CAGR           : 2.28%
Max CAGR           : 18.31%
Median CAGR        : 9.50%

========== Duration: 12 years ==========

Portfolio 1:
Asset          Weight
   -------------------------
scv60Lcg15     75        
33gld          25        
-------------------------
Bottom 15th % CAGR : 6.84%
Min CAGR           : 4.39%
Max CAGR           : 13.96%
Median CAGR        : 8.76%

Portfolio 2:
Asset          Weight
   -------------------------
scv60Lcg15     70        
scv95          5         
33gld          25        
-------------------------
Bottom 15th % CAGR : 6.83%
Min CAGR           : 4.37%
Max CAGR           : 14.28%
Median CAGR        : 8.87%

========== Duration: 13 years ==========

Portfolio 1:
Asset          Weight
   -------------------------
scv60Lcg15     80        
vti            15        
33gld          5         
-------------------------
Bottom 15th % CAGR : 6.59%
Min CAGR           : 4.70%
Max CAGR           : 12.48%
Median CAGR        : 8.64%

Portfolio 2:
Asset          Weight
   -------------------------
scv60Lcg15     15        
scv95          70        
33gld          15        
-------------------------
Bottom 15th % CAGR : 6.58%
Min CAGR           : 4.81%
Max CAGR           : 16.42%
Median CAGR        : 9.69%

========== Duration: 14 years ==========

Portfolio 1:
Asset          Weight
   -------------------------
scv60Lcg15     85        
scv95          10        
vti            5         
-------------------------
Bottom 15th % CAGR : 7.07%
Min CAGR           : 5.34%
Max CAGR           : 13.54%
Median CAGR        : 8.86%

Portfolio 2:
Asset          Weight
   -------------------------
scv60Lcg15     90        
scv95          5         
vti            5         
-------------------------
Bottom 15th % CAGR : 7.06%
Min CAGR           : 5.40%
Max CAGR           : 13.27%
Median CAGR        : 8.78%

========== Duration: 15 years ==========

Portfolio 1:
Asset          Weight
   -------------------------
scv60Lcg15     90        
scv95          10        
-------------------------
Bottom 15th % CAGR : 7.21%
Min CAGR           : 5.39%
Max CAGR           : 13.86%
Median CAGR        : 9.00%

Portfolio 2:
Asset          Weight
   -------------------------
scv60Lcg15     85        
scv95          5         
33gld          10        
-------------------------
Bottom 15th % CAGR : 7.20%
Min CAGR           : 5.36%
Max CAGR           : 13.38%
Median CAGR        : 8.75%

========== Duration: 16 years ==========

Portfolio 1:
Asset          Weight
   -------------------------
scv60Lcg15     100       
-------------------------
Bottom 15th % CAGR : 6.98%
Min CAGR           : 5.51%
Max CAGR           : 12.38%
Median CAGR        : 8.91%

Portfolio 2:
Asset          Weight
   -------------------------
scv60Lcg15     95        
scv95          5         
-------------------------
Bottom 15th % CAGR : 6.98%
Min CAGR           : 5.48%
Max CAGR           : 12.55%
Median CAGR        : 9.01%

========== Duration: 17 years ==========

Portfolio 1:
Asset          Weight
   -------------------------
scv60Lcg15     85        
scv95          5         
33gld          10        
-------------------------
Bottom 15th % CAGR : 7.03%
Min CAGR           : 5.97%
Max CAGR           : 12.19%
Median CAGR        : 8.88%

Portfolio 2:
Asset          Weight
   -------------------------
scv60Lcg15     80        
scv95          5         
33gld          15        
-------------------------
Bottom 15th % CAGR : 7.02%
Min CAGR           : 5.95%
Max CAGR           : 12.06%
Median CAGR        : 8.76%

========== Duration: 18 years ==========

Portfolio 1:
Asset          Weight
   -------------------------
scv60Lcg15     65        
scv95          35        
-------------------------
Bottom 15th % CAGR : 7.05%
Min CAGR           : 5.83%
Max CAGR           : 13.94%
Median CAGR        : 8.88%

Portfolio 2:
Asset          Weight
   -------------------------
scv60Lcg15     60        
scv95          40        
-------------------------
Bottom 15th % CAGR : 7.05%
Min CAGR           : 5.80%
Max CAGR           : 14.15%
Median CAGR        : 8.92%

========== Duration: 19 years ==========

Portfolio 1:
Asset          Weight
   -------------------------
scv60Lcg15     15        
scv95          85        
-------------------------
Bottom 15th % CAGR : 6.90%
Min CAGR           : 5.79%
Max CAGR           : 16.20%
Median CAGR        : 9.59%

Portfolio 2:
Asset          Weight
   -------------------------
scv60Lcg15     10        
scv95          90        
-------------------------
Bottom 15th % CAGR : 6.90%
Min CAGR           : 5.74%
Max CAGR           : 16.39%
Median CAGR        : 9.62%

========== Duration: 20 years ==========

Portfolio 1:
Asset          Weight
   -------------------------
scv95          90        
33gld          10        
-------------------------
Bottom 15th % CAGR : 7.33%
Min CAGR           : 5.88%
Max CAGR           : 15.15%
Median CAGR        : 9.96%

Portfolio 2:
Asset          Weight
   -------------------------
scv95          85        
33gld          15        
-------------------------
Bottom 15th % CAGR : 7.33%
Min CAGR           : 5.93%
Max CAGR           : 14.84%
Median CAGR        : 9.81%

========== Duration: 21 years ==========

Portfolio 1:
Asset          Weight
   -------------------------
scv60Lcg15     20        
scv95          75        
lcbtiltled     5         
-------------------------
Bottom 15th % CAGR : 7.70%
Min CAGR           : 5.93%
Max CAGR           : 15.14%
Median CAGR        : 9.26%

Portfolio 2:
Asset          Weight
   -------------------------
scv60Lcg15     20        
scv95          70        
lcbtiltled     10        
-------------------------
Bottom 15th % CAGR : 7.70%
Min CAGR           : 5.94%
Max CAGR           : 14.89%
Median CAGR        : 9.29%

========== Duration: 22 years ==========

Portfolio 1:
Asset          Weight
   -------------------------
scv60Lcg15     100       
-------------------------
Bottom 15th % CAGR : 7.26%
Min CAGR           : 6.67%
Max CAGR           : 12.24%
Median CAGR        : 8.70%

Portfolio 2:
Asset          Weight
   -------------------------
scv60Lcg15     95        
scv95          5         
-------------------------
Bottom 15th % CAGR : 7.25%
Min CAGR           : 6.68%
Max CAGR           : 12.45%
Median CAGR        : 8.80%

========== Duration: 23 years ==========

Portfolio 1:
Asset          Weight
   -------------------------
scv95          90        
lcbtiltled     10        
-------------------------
Bottom 15th % CAGR : 7.28%
Min CAGR           : 6.36%
Max CAGR           : 16.29%
Median CAGR        : 9.75%

Portfolio 2:
Asset          Weight
   -------------------------
scv95          95        
lcbtiltled     5         
-------------------------
Bottom 15th % CAGR : 7.27%
Min CAGR           : 6.33%
Max CAGR           : 16.54%
Median CAGR        : 9.92%

========== Duration: 24 years ==========

Portfolio 1:
Asset          Weight
   -------------------------
scv60Lcg15     95        
scv95          5         
-------------------------
Bottom 15th % CAGR : 7.53%
Min CAGR           : 6.27%
Max CAGR           : 12.30%
Median CAGR        : 8.75%

Portfolio 2:
Asset          Weight
   -------------------------
scv60Lcg15     90        
scv95          5         
vti            5         
-------------------------
Bottom 15th % CAGR : 7.53%
Min CAGR           : 6.20%
Max CAGR           : 12.30%
Median CAGR        : 8.74%

========== Duration: 25 years ==========

Portfolio 1:
Asset          Weight
   -------------------------
scv95          45        
vti            20        
lcbtiltled     35        
-------------------------
Bottom 15th % CAGR : 7.74%
Min CAGR           : 5.74%
Max CAGR           : 13.37%
Median CAGR        : 8.87%

Portfolio 2:
Asset          Weight
   -------------------------
scv95          50        
vti            25        
lcbtiltled     25        
-------------------------
Bottom 15th % CAGR : 7.74%
Min CAGR           : 5.74%
Max CAGR           : 13.60%
Median CAGR        : 8.81%

========== Duration: 26 years ==========

Portfolio 1:
Asset          Weight
   -------------------------
scv95          85        
vti            15        
-------------------------
Bottom 15th % CAGR : 8.01%
Min CAGR           : 6.03%
Max CAGR           : 14.25%
Median CAGR        : 9.52%

Portfolio 2:
Asset          Weight
   -------------------------
scv95          80        
vti            15        
lcbtiltled     5         
-------------------------
Bottom 15th % CAGR : 8.00%
Min CAGR           : 6.04%
Max CAGR           : 14.06%
Median CAGR        : 9.51%

========== Duration: 27 years ==========

Portfolio 1:
Asset          Weight
   -------------------------
scv95          100       
-------------------------
Bottom 15th % CAGR : 8.36%
Min CAGR           : 6.04%
Max CAGR           : 14.57%
Median CAGR        : 9.72%

Portfolio 2:
Asset          Weight
   -------------------------
scv95          95        
lcbtiltled     5         
-------------------------
Bottom 15th % CAGR : 8.36%
Min CAGR           : 6.06%
Max CAGR           : 14.37%
Median CAGR        : 9.72%

========== Duration: 28 years ==========

Portfolio 1:
Asset          Weight
   -------------------------
scv95          65        
vti            30        
lcbtiltled     5         
-------------------------
Bottom 15th % CAGR : 8.37%
Min CAGR           : 7.04%
Max CAGR           : 11.98%
Median CAGR        : 8.95%

Portfolio 2:
Asset          Weight
   -------------------------
scv95          70        
vti            30        
-------------------------
Bottom 15th % CAGR : 8.36%
Min CAGR           : 7.05%
Max CAGR           : 12.18%
Median CAGR        : 8.98%

========== Duration: 29 years ==========

Portfolio 1:
Asset          Weight
   -------------------------
scv95          80        
vti            5         
lcbtiltled     15        
-------------------------
Bottom 15th % CAGR : 8.56%
Min CAGR           : 7.20%
Max CAGR           : 13.49%
Median CAGR        : 9.62%

Portfolio 2:
Asset          Weight
   -------------------------
scv95          75        
vti            5         
lcbtiltled     20        
-------------------------
Bottom 15th % CAGR : 8.56%
Min CAGR           : 7.18%
Max CAGR           : 13.29%
Median CAGR        : 9.59%

========== Duration: 30 years ==========

Portfolio 1:
Asset          Weight
   -------------------------
scv95          75        
lcbtiltled     25        
-------------------------
Bottom 15th % CAGR : 8.34%
Min CAGR           : 7.29%
Max CAGR           : 13.40%
Median CAGR        : 9.71%

Portfolio 2:
Asset          Weight
   -------------------------
scv95          70        
lcbtiltled     30        
-------------------------
Bottom 15th % CAGR : 8.34%
Min CAGR           : 7.28%
Max CAGR           : 13.20%
Median CAGR        : 9.66%

========== Duration: 31 years ==========

Portfolio 1:
Asset          Weight
   -------------------------
scv95          70        
vti            20        
lcbtiltled     10        
-------------------------
Bottom 15th % CAGR : 8.37%
Min CAGR           : 7.56%
Max CAGR           : 12.78%
Median CAGR        : 9.46%

Portfolio 2:
Asset          Weight
   -------------------------
scv95          70        
vti            15        
lcbtiltled     15        
-------------------------
Bottom 15th % CAGR : 8.37%
Min CAGR           : 7.51%
Max CAGR           : 12.82%
Median CAGR        : 9.51%