3.1 Data

The Flow-Percentage Country Strategy developed by EPFR is based on the percentage flow into countries. In this section, the reader will gain an understanding of the aggregations which can be used to create a signal as well as the methodology behind daily percentage flow calculations.


3.1.1 Aggregations

The first step is defining a subset of data to capture in calculating our signal.

This strategy requires:

  • Equity funds with a cross-border focus. These are essentially any fund that has a mandate spanning more than one country. The vast majority of these will be global and regional funds.

  • Funds must report both daily flows and country allocations, since these values are needed to calculate the daily percentage flow.


Cross-border equity funds, which report their country allocations and their daily fund flows, are a subset of those that only report their fund flows to EPFR. The figure below shows EPFR’s coverage of this universe over time compared to our total monthly and daily coverages.

AUM ($BB) of Equity funds
All Funds
Cross-border
Monthly Flows Daily Flows Daily Flows Daily Flows & Ctry Alloc
2007 6,241 2,717 1,173 446
2008 5,798 2,743 1,116 355
2009 4,794 2,273 887 303
2010 5,889 2,840 1,143 362
2011 7,595 3,932 1,601 449
2012 7,945 4,107 1,502 359
2013 10,109 5,525 1,964 606
2014 12,488 6,879 2,556 850
2015 13,561 7,575 2,755 927
2016 13,748 7,672 2,833 964
2017 16,148 9,385 3,656 1,326
2018 18,459 10,845 4,203 1,560
2019 19,075 11,096 4,063 1,718
2020 20,245 12,247 4,516 1,809
2021 28,451 17,390 6,494 2,611
2022 25,406 15,694 5,479 2,258
* Updated at the end of July each year

Users looking for more specific detail can customize this aggregation even further using EPFR’s fund-level or share class-level granularity. Some good examples would be to consider only active, passive, ETFs or mutual funds, or only institutional or retail share class flows and assets. Users can leverage these tags to different degrees in creating aggregated signals to backtest. Further detail about this is available in the section EPFR Data & Filters.

This can be achieved using fund-level flow and allocation files or by reaching out to EPFR’s Quant Team for customized aggregations.


3.1.2 Daily Percentage Flow

To begin calculating the daily percentage flow, we start with our subset of cross-border equity funds. To calculate the dollar flow into a country, we scale a fund’s flow by multiplying it against its stated country allocation, on that day. We apply the same procedure to all funds with fund flow and country allocation information and then sum the flows for each country across all funds, to get the total dollar flow into a country. EPFR releases country allocations of all funds on the \(23^{\text{rd}}\) of each month (or the next available business day) at a monthly frequency. Hence, our calculation assumes constant country weightings between two consecutive release dates within the month.

\[\text{Total Flow}_{c,t} = \sum^{N}_{i=m}{\text{Flow}_{i,c,t} \times \text{Country Allocation}_{i,c}}\] Where:

  • \(\text{Total Flow}\) = the total dollar flow into a country \(c\), across all funds in our universe \(i\), for day \(t\)

We will want to normalize this figure. So, we repeat the process across the same fund’s Assets held under Management (AuM), to get the total AuM held in a country.

\[\text{Total AuM}_{c,t} = \sum^{N}_{i=m}{\text{AuM}_{i,c,t} \times \text{Country Allocation}_{i,c}}\]

Where:

  • \(\text{Total AuM}\) = the total assets held in a country \(c\), across all funds in our universe \(i\), for day \(t\)

Finally, to find the daily percentage flow for a country, we divide the total flow by the total AuM held in a country.

\[\text{Percentage Flow}_{c,t} = 100 \times \frac{\text{Total Flow}_{c,t}}{\text{Total AuM}_{c,t}}\] Where:

  • \(\text{Percentage Flow}\) = the scaled flow as a percentage into a country \(c\), across all funds in our universe \(i\), for day \(t\)

We repeat this across all different countries for the entire history.


3.1.3 Aggregate Flow File

Users may create flow percentages for their desired country aggregations and granularity using the methodology described in the previous section.

Users also have the option to use the Flow-Percentage Country Strategy files EPFR provides, which are updated daily at 5:00 PM EST with a T+1 day lag, and are available in the user’s EPFR FTP connection under the Strategies folder. There are two different types of Flow-Percentage Country Strategy files available, the standard option we have contains aggregate percentage flow data for 53 countries in the ACWI, EAFE and Emerging Market country universe. The other file available only contains Emerging and Developed Market (EMDM) aggregate percentage flow data.


For this demonstration, we will be using the file FloPctCtry-daily.csv, which can be downloaded from the user’s FTP under the folder Strategies/daily and can be stored in the user’s local folder EPFR/daily.

Below shows a snippet of what this file contains:

Strategies/daily/FloPctCtry-daily.csv

AU BR CA CN ID IN JP KR MX MY PH RU SG TH TR TW ZA AR CL CO CZ EG HU IL NZ NO PE PL SE CH GB AT BE DK FI FR DE GR IE IT NL PT ES HK US JO MA PK AE QA SA KW
20221201 0.0082172 -0.1373853 -0.1685998 -0.0299551 -0.0588564 -0.0307035 -0.0999231 -0.1128431 -0.3022166 -0.0267607 0.0138949 -0.4700456 -0.0657525 -0.1268418 -0.0919432 -0.0436343 -0.0397615 0.0251304 -0.1496563 -0.5094658 -0.0142500 0.1940810 -0.0322191 -0.0059505 0.0145115 -0.0579933 -0.2640881 -0.0459837 -0.0866961 -0.0749154 -0.1097745 0.0813068 -0.2054332 -0.0196845 0.0941430 0.0048852 0.0567956 0.0453213 -0.0052570 0.0563133 0.0551750 0.0134235 0.0642768 -0.1867222 -0.1897228 0.1893650 2.3071010 0.6013190 -0.0268271 -0.0213599 -0.0241962 0.0057498
20221202 -0.0477044 -0.0280137 -0.0162801 -0.0053392 -0.0181177 0.0026325 -0.0705267 -0.0038252 -0.0075309 0.0140247 -0.0146237 0.0119875 -0.0337831 0.0124177 0.0015482 -0.0014203 -0.0017983 -0.0189196 -0.0005091 -0.0227956 0.0151542 0.0139327 -0.0209156 -0.0504060 -0.0218806 -0.0761146 -0.0297101 0.0188773 -0.0313077 -0.0436674 -0.0490842 0.0379807 0.0019978 -0.0377601 -0.0094423 -0.0129547 -0.0313622 -0.0093106 -0.0242845 -0.0250811 -0.0300145 -0.0413764 -0.0073068 -0.0353648 0.0210618 -0.1964602 0.0355466 -0.0002441 0.0066170 0.0128726 0.0119270 0.0227861
20221205 0.0223072 0.0825133 0.1970918 0.0388878 0.0085137 0.0254118 0.0610704 0.0949566 0.1953603 0.0212568 0.0226141 -0.0820496 0.1011997 0.1075311 0.0634204 0.0391413 0.0111771 -0.0405121 0.1293560 0.4178865 -0.0081009 -0.0089899 -0.0453930 0.0098939 0.0225785 0.0640565 0.1029671 -0.0212162 0.0817224 0.0255702 0.0632370 0.0144565 0.2081413 0.0091668 -0.0147028 0.0294817 0.0070184 0.0215880 -0.0162663 0.0103360 0.0100211 -0.0529251 -0.0074901 0.2486099 0.2656250 0.0190637 -0.0018532 0.0354057 0.0039361 -0.0033072 0.0014794 0.0152227
20221206 0.0192407 0.0169165 0.0381294 -0.0307030 -0.0000285 0.0226381 0.0062134 0.0175863 -0.0225588 0.0460868 0.0792072 -0.0169728 0.0023261 0.0086808 -0.0037956 0.0229292 -0.0052343 -0.0722524 0.0447338 0.3052588 0.0590366 0.5554795 -0.1214223 0.0225150 0.0168620 0.0327313 0.1035405 0.0465640 0.0041204 -0.0080491 -0.0076223 0.0097317 -0.0155778 0.0100643 0.0079297 -0.0044997 -0.0047326 -0.0158246 -0.0078131 0.0175245 0.0105277 -0.0105779 -0.0024051 0.0017378 0.0449389 0.0796408 7.0273402 1.8219575 0.0510315 0.0607994 0.0662449 0.0704390
20221207 -0.1390638 -0.0752719 -0.0550551 -0.0178634 -0.0214412 -0.0116774 -0.1146126 0.0033991 -0.0753252 -0.0691352 -0.0311994 -0.4199145 -0.0663596 -0.0526361 -0.1508091 -0.0370784 -0.1275912 -0.0679314 -0.0843923 -0.0744702 0.0880821 0.0449727 -0.1257820 -0.1445187 -0.1040983 -0.1231335 0.0182855 -0.0751914 -0.1467774 -0.1040736 -0.0993927 -0.1099925 -0.1059852 -0.0898489 -0.1267584 -0.0916032 -0.0977398 -0.0515893 -0.0533180 -0.0928605 -0.0841324 -0.0035842 -0.0959443 0.0372996 0.0071908 -0.0704670 1.1335628 0.3631424 -0.0926825 -0.0862161 -0.0585917 -0.0984450
20221208 0.0478228 0.0692034 -0.1242338 -0.0106621 0.0070366 -0.0141156 -0.1839389 -0.0739677 0.0335682 -0.0297606 0.0033812 -0.0034110 -0.0563257 -0.0085899 0.0528167 -0.0601620 0.0638294 -0.0810127 0.0964116 0.1013237 0.0318467 0.2019312 0.0370493 -0.1104191 0.0762325 0.0657735 -0.1601713 0.1680757 -0.0884723 -0.3977378 -0.1946186 0.0742293 0.0242617 -0.1333207 0.0260302 -0.3117769 -0.2567409 0.0925668 -0.3838237 -0.0127299 -0.1071186 -0.0513869 -0.0617630 -0.0247254 -0.0553428 0.1909743 1.6374453 0.4685088 0.0404959 0.0400483 0.0562480 0.0260904

note: all strategy files represent indicator as a % figure, i.e. 0.1 is 0.1%


For convenience, save the path to the flow file you choose to use as flow.file. Example shown below:

flow.file <- "C:\\EPFR\\daily\\FloPctCtry-daily.csv"

3.1.4 Return File

The return file for this strategy should contain daily passive equity ETF returns for each of the countries in the flow file, over the period of time the user wants to backtest.

The user can choose to use return data found with their own resources, or they have the option to use a file EPFR provides of ETF Country Returns, which is available in the user’s EPFR FTP connection under the Returns folder (more information available in Returns Information). The return file that EPFR provides contains Fund Return data and can be used as a proxy to equity market returns. The user can recreate these files using EPFR’s daily flow data with the following equation:

\[\text{Fund Return}_{c,t} = 100 \times \frac{\sum^{N}_{i=m} \text{Portfolio Change}_{i,c,t}}{\sum^{N}_{i=m} \text{Assets Start}_{i,c,t}}\] Where:

  • \(\text{Fund Return}\) = the percentage return of country \(c\), across all funds in our universe \(i\), for day \(t\)

For this demonstration, we will be using the file PsuedoReturns-Country-ETF-daily.csv, which can be downloaded from the user’s FTP under the folder Returns/daily and can be stored in the users local folder EPFR/returns.

Below shows a snippet of what this file contains:

Returns/daily/PsuedoReturns-Country-ETF-daily.csv

AU BR CA CN ID IN JP KR MX MY PH RU SG TH TR TW ZA AR CL CO CZ EG HU IL NZ NO PE PL SE CH GB AT BE DK FI FR DE GR IE IT NL PT ES HK US MA PK AE QA SA KW
20221201 NA -1.051398 0.280116 0.267903 -0.258239 -0.049477 0.384574 0.546160 -0.353159 0.722259 -0.826145 0.255115 NA 0.548452 0.567718 0.743486 -1.082782 0.820994 0.681547 -0.451456 0.000000 1.805609 0.434550 1.174217 NA 0.804422 0.450325 1.102766 1.385536 0.569143 0.194341 -0.428842 0.141771 1.364250 1.196393 0.190484 0.529076 1.417055 0.347142 0.186162 0.911450 3.403504 0.481374 NA -0.055001 NA 0.080123 -0.073387 0.761763 -1.008192 -0.160870
20221202 NA 0.271185 -0.146287 0.547865 0.046347 -0.208467 -0.803181 -1.935626 -0.063086 0.201973 -1.297638 -0.001172 NA 0.068250 -0.203378 -0.294582 -0.768751 0.180919 0.050318 0.336782 0.000000 0.000000 0.000000 -0.146545 NA -1.212048 0.021394 0.181003 0.098234 0.284721 -0.004622 -0.172307 1.439274 0.207996 0.418131 0.081544 0.455856 -1.408948 0.000000 0.168032 -0.006222 -1.742562 0.098302 NA -0.029618 NA -0.437571 0.000000 0.097918 -0.084237 -0.051025
20221205 NA -1.453673 -1.182635 0.790572 -0.379389 -0.448835 -0.914717 -0.569740 -1.128877 -0.174389 -0.412548 0.443649 NA 0.012687 -1.232589 0.049912 0.510768 -4.063962 -0.046604 -1.799482 -1.524983 3.730659 -0.432505 -1.115899 NA 0.056129 0.000000 -0.214383 0.564252 -0.259054 0.090480 0.013551 -0.417661 0.035092 0.014322 -0.542971 -0.463007 -0.392092 0.000000 -0.285822 -0.472493 0.886397 0.026455 NA -1.442170 NA -1.601460 -0.622330 -0.774538 -1.609632 -0.222419
20221206 NA -0.100844 -1.356407 1.483660 -2.977560 -1.892386 0.050407 -1.811573 0.161747 -1.045556 1.130897 -0.235263 NA -1.275695 -0.354576 -1.737804 0.210470 -1.349062 -0.805189 1.513862 -1.314924 0.757970 -2.393864 -2.836918 NA -1.564411 -1.171991 -2.166913 -1.610993 -0.947429 -0.691664 -0.848486 -0.140677 -1.028322 -0.030871 -0.298380 -0.910285 -0.068919 -2.348950 -1.587673 -0.837205 -0.488400 -0.881127 NA -1.961241 NA -0.186893 -0.812627 -2.434782 -2.096331 -2.224862
20221207 NA -0.731817 -0.077766 -0.634553 -1.421615 -0.007653 -0.232355 -0.500070 -0.453333 -0.199532 -1.027125 -0.082402 NA -0.436370 -2.508129 -0.699818 0.119150 1.494908 0.477444 -0.439948 -0.368016 2.127647 -0.006460 -0.854382 NA -1.745163 -0.364512 0.538920 -0.996618 -0.875797 -0.479912 -0.838809 -0.666069 -0.250780 -1.558064 -0.527808 -0.647434 0.736381 0.090070 -0.522381 -0.705965 -0.588645 -0.445730 NA -0.160276 NA 0.721763 -0.848300 -0.806879 -2.575153 0.154566
20221208 NA -1.699204 0.011819 0.758715 0.491060 0.328606 -0.370710 -0.185071 0.692173 -0.107003 0.096428 -0.181745 NA 0.352863 -0.346782 -0.530016 0.044344 -1.535496 0.307510 -0.003020 -0.565681 0.696921 -0.049661 1.167997 NA 0.723129 0.541839 -0.149684 0.176535 -0.027416 -0.270993 0.071401 -0.221532 0.135160 -0.244847 -0.125963 0.139353 0.728769 0.303666 -0.223568 0.317462 -0.296285 -0.560934 NA 0.724220 NA -0.444276 -1.141529 0.109124 1.044356 0.453154

For convenience, save the path to the return file you choose to use as ret.file. Example shown below:

ret.file <- "C:\\EPFR\\returns\\PsuedoReturns-Country-ETF-daily.csv"