I have an investment which creates different returns over a different period of time, i.e. I finance $1000 and get paid back $600 after 30 days (for which I earn a fee of $30), another $300 over 50 days (for which I earn a fee of $35) and another $100 over 68 days (for which I earn a fee of $15).

I would calculate the return of each investment (i.e. (20*100)/1000 and the same for the other two investments: 2%, 3.5%, 1.5%) I would calculate the annual returns as (1 + 0.02)^(365/30) - 1 = 27.24% for the respective investments, which yields to 27.24%, 28.55% and 8.32%.

How would I mathematically correctly calculate the average annual return of these three annual returns?

I guess that simply weighing them by their share with respect to the overall investment would be imprecise - like ((27.24 * 600) + (28.55 * 300) + (8.32 * 100))/1000.

  • Do you mean you invested $1000?
    – Lawrence
    Aug 28 '19 at 11:05
  • Where does the “20” in your first formula represent?
    – Lawrence
    Aug 28 '19 at 11:07
  • I changed the numbers so do not worry about how realistic the numbers are. @Lawrence Sorry, that should be $30 as that would be my return. Assume, I invested $1000 which gets paid back over time at several dates repayment, I would charge fee. The first repayment is after 30 days, the second repayment is after 50 days, the last repayment is after 68 days (starting from the day of investing the $1000).
    – sh_student
    Aug 29 '19 at 2:55

The most precise calculation with the given information would be the internal rate of return (IRR). A time-weighted return would be better, but that would require the investment values at 30 & 50 days.


enter image description here

I.e. Solve for x

enter image description here

∴ x = 13.9461 % over 68 days

Annualised = (1 + 0.139461)^(365/68) - 1 = 101.531 %

This is the equivalent calculation in Excel

enter image description here


Assuming the fees directly reflect yields from the investment you could try a time-weighted return, of sorts. E.g.

enter image description here

∴ TWR = 28.8144 % over 68 days

Annualised = (1 + 0.288144)^(365/68) - 1 = 289.269 %
  • Technically, you could see my investment as a loan which gets repaid at certain times and then a fee is charged. I give someone a loan of $1000 and get repaid $600 after 30 days for which I charge $30 (so I get 600+30 30 days after investment). 50 days after giving the loan I get repaid $300 plus $35 fees. 68 days after giving the loan I get $100 plus $15 fees. The fees can be seen as a return of the investment of giving a loan. Which information would I need to calculate the time weighted return or is that not possible for this kind of investment?
    – sh_student
    Sep 3 '19 at 7:14
  • ...and the modified internal rate of return should be a more precise approximation of my annual return compared to the IRR as I loosen the assumption on how inflows/outflows get reinvested? Thanks for your detailed post!
    – sh_student
    Sep 3 '19 at 7:14
  • 1
    @sh_student For time-weighted return e.g. (1000 + 30)/1000 ... the time (30 days) is already factored in: i.e. that is the return over 30 days. So then multiplying the returns gives you the return over the whole 68 days, Sep 3 '19 at 10:27
  • 1
    @sh_student It is simple enough to check the accuracy of the IRR compared to Modified Dietz, i.e. 1000 (1 + r) - (600 + 30) (1 + r)^(38/68) - (300 + 35) (1 + r)^(18/68) - (100 + 15) = 0 when r = 0.139461. Modified Dietz is an approximation more suited to hand calculation. Sep 3 '19 at 10:38
  • 1
    @sh_student For a proper time-weighted return you should know the investment value at the point of each cash flow so that you can work out the return for each period. But since you are the lender the value of the investment could be determined with the fees. This assumes the fees are not fixed beforehand, but reflect more or less profitable phases of the investment. Sep 3 '19 at 10:45

I use various forms of a Modified Dietz.

There's a $1000 balance for 30 days, $1030 balance for 20 days, $1065 balance for 18 days, and $1080 balance for 1 day. Then the average balance is $1026.81. However, the gain is only 7.8% as 80 / 1026.81 .

So it's correct to say that the average daily deposit/withdrawal balance was $1000 for the 68 days. Then the gain is 8.0% as 80 / 1000 .

Or it might be said that the deposit/withdrawal balance was $0 for 30 days, $600 for 20 days, $900 for 18 days, and $1000 for 1 day. Then the average deposit/withdrawal balance is $423.19 and the gain is 80 / 423.19 or 18.9%.

Here is a similar example that I can copy-and-paste:

Jan 01, deposit 120

Feb 05, deposit 250, dividend received of 30

April 12, deposit 130, dividend received of 50

June 10, dividend received of 40

Then consider an average-daily-deposit-withdrawal-balance of the year-to-date but, of course, year-to-date starts over at the end of each year. Then the software that I develop results in 27.35% . However the software projects the balance averaging as to year-end and that reduces shocks from large deposits or withdrawals.

Or for viewpoint, just average the given balances as they are:

120 for 35 days, 370 for 66 days, and 500 for 58 days.

Then the average balance is 360.125. The percentage gain is 120 / 360.125 or 33.32% .

I can very nearly match the software by projecting the current average balance to the future year-end like this:

120 for 365 days, 250 for 330 days, and 130 for 264 days.

Then the average balance projected to the future year-end is 440.05 . The percentage gain projected to the future year-end is 120 / 440.05 or 27.27%.

  • The source of your numbers is rather opaque.$30 is 3% of $1000, and it's obtained after one month. 3%*12 = 36%. So even without taking into account the other payments or compounding, the rate of return is at least 36%. Aug 28 '19 at 15:59
  • Here's a link: en.wikipedia.org/wiki/Modified_Dietz_method
    – S Spring
    Aug 28 '19 at 18:11
  • The balance after 30 days isn't $1030, it's $400. And the question asks for annualized return. Aug 28 '19 at 23:07
  • Making a loan can be like buying a bond such that the value of the bond does not leave the account. Or the first day of the loan could be like a withdrawal from the balance. I worked with both situations. The question asked for an annual return and a Modified Dietz can work within an annual period. In fact I also have a novel method of continuously projecting a year-to-date M-D to year-end.
    – S Spring
    Aug 29 '19 at 3:06

Taking "50 days" to mean "50 total days", not "50 additional days", the present value of your income stream is 630*d^(30/365)+335*(d^50/365)+115*d^(68/365), where d is your discount rate. If d = 49.62%, then the present value of your income is equal to your $1000 invested. Thus, the implied rate of return is 1/d-1, or about 100% annualized return.

If "50 days" instead means "50 additional days", the rate of return is "only" about 64%.

My conclusion is that your actual rate of return will be -100%, because this sounds like a scam.

  • Sounds more like an optimistic homework problem than a scam, tbh. Aug 28 '19 at 15:43
  • Thanks for the answer. You assumed correctly that it means I'd get the repayment after 30 days, 50 days and so one counting from the day of the investment. I changed the numbers, so do not worry about how realistic the return is. I am more interested about the mathematically correct way to calculate the annualized return of the investment. Would the correct way of calculating be to "just" use the net present value formula and calculate the interest, for which the payment stream equals $1000 and then take this interest take (1/d)-1 (in my case 101.53 %)?
    – sh_student
    Aug 29 '19 at 3:03
  • The problem with internal rate of return is that it assumes that I reinvest my capital with that internal rate again. However, that's unlikely. Is there a mathematical correct way to just use the annualized returns of each repayment and calculate the average annualized return with them?
    – sh_student
    Aug 29 '19 at 3:25
  • It sounds like you want to use time-weighted return without knowing the investment valuations at day 30 & 50. That is why the IRR assumption is ok - because you don't know the returns. The IRR null hypothesis is that the return doesn't change. Aug 29 '19 at 14:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.