Interest-based assets

Full support for interest-based assets like bonds, deposits or loans (once liabilities are supported).

  1. You have the option to choose “interest” as the price source for an asset - bonds and deposits would use it be default.

  2. You can specify the yearly rate, and coupon payout schedule.

  3. The rate can change in time.

  4. The coupons would be recorded as Interest transactions - just like Dividends are for Stocks.

  5. The interest would would be applied from the date when position unit has been opened - therefore you can open multiple deposit positions on the same asset and each will have it’s own interest payout schedule and rates.

Early Access is on!

You can enable preview of this feature in Settings / Early Access.

Once you do, you can edit any asset (apart from Cash) and change it’s Price to Interest.

At the moment, only static interest is possible, with dynamic interest coming soon.

But you can already configure compounding and payment intervals, amortization, baloon payments and length. All payments and amortization events are created automatically.

4 Likes

Will be great if you can also support interest assets that have a shorter duration.

What do you mean by shorter duration? Like a 3 month deposit?

What I’m thinking now is that you specify the annual rate which can change throughout time, and optional coupon payouts. Actually I didn’t even think about automatically closing the position, but that could be an option as well.
So for what is worth, you could even keep the position open for a day, so this could support savings accounts as well.

Yes. Shorter than one year CD/ Bond that has a known expiry date and maybe I know the annual interest rate and it just payes interest on expiray. It might also be a 0 coupon asset that is sold at a discount and you get the par value at maturity so Capitally needs to calculate the return rate.

1 Like

Interest-based pricing is now available in Early Access (see first post). :partying_face:

A new version is being released with proper dynamic rates and many fixes.

It’s now possible to model most interest-bearing assets - here it’s Polish 10y government bonds. As you can see, they use 30E/360 day counting convention, but there are many others depending on the needs (it defaults to Actual/Actual).

And yes, you can have assets that have different interest rates and compounding frequencies depending if balance is positive or negative.

If you tried it before, you may have project conflicts now, as the format had to be changed. You will need to delete the incompatible changes from the history.

Hi Rafal,
Great to see this update coming!!!

Can you please help me understand if I am right or wrong:
Are you sure that Polish 10y government bonds (EDO)use 30E/360 day counting convention?
I have just downloaded the interest rate table for EDO0135 as an example and it is quite obvious to me that the convention is Actual/Actual (see attached screenshot)

Am I thinking wrong?
Thanks in advance.

Best
Michal

Strange - I wanted to show you the search results I’ve checked before - and now they say Actual/Actual :sweat_smile: When I implemented 30E/360 my results started to match exactly, but maybe that’s just a coincidence. I’ll surely verify it before releasing.

1 Like

:slightly_smiling_face: It happens sometimes, @Rafal — but I trust it was as you say.

I’m a bit busy this week, but I’ll definitely start testing next weekend.

Just a quick question:
I assume I’ll need to set up each asset separately, like EDO1030, EDO1130, and so on. And when the annual interest rate changes, I’ll have to update each one again.

Since I’ve been buying ROD every month for the past 8 years, that would mean updating it monthly.
Is there a smarter way to handle this?

Yes - wait for built-in Polish govt bonds support :slight_smile: - these updates will be automated then. It’s planned as part of this feature, so they’ll be available even before it’s released to all.

I’m currently testing different interest based assets to ensure that most of them can be modeled pretty accurately. So manually adding one or two (bonds, mortgages) would definitely help to test it out.

1 Like

@Michal-PL ok, case closed. Polish bonds are sort of Actual/Actual, but not the one I’ve implemented. As it turns out, there’s more than one convention for it. And Polish bonds use Actual days passed / Actual days WITHIN PERIOD / Number of periods in a year. While the “regular” Actual/Actual is Actual days passed / Actual days within a year.

I’ve called it Actual/Actual (Equal periods) as the difference is, it produces equal interest in all periods. That’s why 30E/360 gave correct results - because for full periods it doesn’t really matter that much - only if they’re equal or irregular.

Polish bonds btw don’t conform to any specific convention, they just have their own definition.

Hi Rafal,

First, let me try to be a bit funny — it seems there are a few conventions used around the globe, so of course we Poles had to come up with our own one. Why not, right? :slight_smile:

Jokes aside, thanks for digging deeper and explaining it — otherwise, I would’ve picked the wrong convention just based on its name and not the algorithm behind it. But to be honest, you’re the only one who actually knows what lies beneath!

Thanks for the heads-up :folded_hands:. I’ll wait, though.

The funnier thing is, that we don’t have a convention, just each have it’s own specification and they could change it on the whim :sweat_smile:

And as for Actual/Actual, Wikipedia lists three conventions with the same name.

1 Like

The latest version (2.16.16) has support for Polish bonds - you can add them or convert current manual bonds by editing the Prices → Market tab and searching for a proper symbol (eg. EDO0123). A proper importer will follow soon.

1 Like

An importer will be released in a few minutes as well. If all goes well, interest prices will become available to everybody this week.

Is there any intent to add an equivalent of the automatic reinvesting dividends settings for the interest payments?

There wasn’t, but could be added. Can you describe your use case?

Sure. It might be a bit out of scope, but I’m trying to model the future yield on a high-yield savings account (HYSA).

The HYSA accrues interest daily on the end-of-day balance at a set APR (which has changed historically, but is known each month), and returns interest at end of month, which is deposited back into the account, allowing for future compounding.

Currently I’ve got a custom Deposit-based asset representing the USD located in the HYSA, with the following settings on the asset:

  • Prices setting on Interest
    • Positive balance enabled
      • Interest Rate set to current annual percentage rate (APR)
      • Periods infinite
      • Day of month set to 31 (last day of each month)
      • Compounding monthly
      • Interest payment monthly.

Got it. There’s already UI for reinvesting in place, so it makes sense to respect it for interest payouts. I’ll see if I can add it before the full release this week.

1 Like