How Credit Card Interest Works (And Why It’s So Hard to Calculate) - ProductFTW #98
Calculating credit card interest sounds simple. The math mostly is. It’s everything happening to the balance before, during, and after the math that makes it hard.
Matthew recently kicked off a series called Consumer Credit is Challenging, and #10 was “Calculating Interest Is Hard”. He prefaced it by basically saying that this is the one thing you really cannot get wrong in consumer credit. You can fix a lot of things later. Interest isn't one of them. There are very specific rules around how you calculate it, disclose it, and correct it when something goes wrong.
The more I talk to people in fintech, though, the more I realize many of us don’t really understand how credit works. I actually made fun of us for this in a talk earlier this year because fintech employees make terrible testers. We tend to make more money, have better credit, and use financial products differently than the average customer. Many of us have probably never been the typical credit card customer we are building for: someone who carries a balance.
If you’re like me, your experience with a credit card is pretty boring. You buy things throughout the month, your statement closes, you pay the statement balance, and you do it again next month. You don’t pay interest because you’re in your grace period.
A grace period is the time when you can make purchases without paying interest, as long as you pay your statement balance in full by the due date. Most credit cards have one for purchases, although fun fact, they don’t actually have to. Cash advances are also a different story and generally don’t get one.
So let’s say I spend $2,000 this month. My statement closes at $2,000. I pay $2,000 by the due date. I owe no interest. Yay.
That is probably how a lot of people working in fintech experience credit.
Now let’s say my statement closes at $2,000 and I only pay $1,000. I didn’t necessarily miss my payment. I could have made my payment perfectly on time. I just didn’t pay the statement balance in full, which means I have started revolving.
This is where things get interesting.

Depending on the card's terms, I will most likely lose my grace period. Once I am outside of that grace period, new purchases can start accruing interest from the day I make them. I buy groceries on Tuesday; those groceries can start accruing interest on Tuesday. I get gas on Friday; that can start accruing interest on Friday. I make a payment the next Wednesday, and now that payment changes the balance I am accruing interest on.
So when we say we’re “calculating interest,” we’re not just taking the balance on someone’s statement and multiplying it by their APR.
Many issuers use a daily periodic rate and average daily balance. That means the rate is divided by 360, 365, or 366, depending on the business decision. For example, if my APR is 24.99%, my daily periodic rate is roughly 24.99% divided by 365, or 0.0685% per day. Now I need to know what balance that rate applies to every day. Purchases are adding to it. Payments are reducing it. Credits are reducing it. I might have a cash advance sitting over here at a different APR. Maybe I have a balance transfer over there. Maybe I have a promotional rate on another balance.
Let’s make that real with an overly simple example. Credit card billing cycles are generally around a month, but they aren’t always exactly 30 days. Depending on where the statement dates fall, a cycle might be 28, 29, 30, or 31 days. To keep the math simple, let’s use 30.
Going back to my $2,000 statement, I paid $1,000 on time, which means I start the next cycle with $1,000 accruing interest at a 24.99% APR. Here's how my balance changes during the cycle:
- My balance stays at $1,000 for the first 20 days.
- On day 21, I buy $180 in groceries, and my balance is $1,180 for 3 days.
- On day 24, I spend $60 on gas, and my balance is $1,240 for 3 days.
- On day 27, a $50 refund posts, and my balance is $1,190 for 2 days.
- On day 29, I make a $500 payment, and my balance is $690 for the last 2 days.
That gives me an average daily balance of $1,034. I multiply that by my daily periodic rate of 0.0685% and then by 30 days, which gets me to about $21.24 in interest.
Now imagine I’m using the card every day, making payments, getting refunds, and potentially carrying different balances at different APRs. This gets complicated pretty quickly.
Then the APR itself can (and will) change.
Many credit cards have a variable APR based on an index, such as the U.S. Prime Rate published in The Wall Street Journal, plus a margin. Maybe my rate is Prime + 18.24%. When Prime changes, my APR can change too. Exactly when that happens depends on the cardholder agreement. Now I don’t just need to know what balance I had every day. I also need to know what APR applied to that balance at that point in time.
Then someone disputes something.
This is one of my favorite examples because the CFPB gives us a very simple one. A customer gets a $300 statement and disputes a $2 transaction. They pay the other $298 within the grace period while the $2 is being investigated.
You cannot look at that customer and say, “Well, technically you didn’t pay your $300 statement balance in full, so now you’ve lost your grace period.”
Regulation Z allows the customer to withhold that disputed $2 and the related finance charges while the issuer investigates. Doing that cannot cause them to lose the grace period on the undisputed balance.
Now let’s say we investigate and determine that the $2 transaction actually was a billing error. We don’t just fix the $2. We also have to correct related finance or other charges, as applicable.
This is where you start to realize how connected it all is. Your dispute system can’t just know that you won or lost a dispute. Your ledger can’t just know that $2 came off the account. Your interest engine can’t just calculate interest every night without understanding what else is happening to that balance. Something that happened to one transaction can change what the customer should have owed somewhere else.
Refunds get weird too, although in a slightly different way. Let’s say I buy something and then return it. A normal merchant refund doesn’t necessarily mean we go back in time and pretend the purchase never happened. Generally, the credit impacts the balance when it posts based on the issuer’s balance calculation method. That differs from determining a billing error and needing to correct related finance charges.
To the customer, those two things look almost identical. “I spent $50, and then I got my $50 back.” To the system calculating interest, they are not necessarily the same thing.
Then there is getting your grace period back, which I also think most of us assume is simpler than it is. You will sometimes hear that you just need to pay your card down to zero and then your grace period resets. That isn’t a universal rule. How you regain the grace period depends on the cardholder agreement, and some terms can require you to pay in full for one or more billing cycles before you get it back.
This is why I think “calculating interest is hard” undersells it a little bit. The actual math isn’t that hard. I can divide 24.99% by 365.
The hard part is knowing what balance I am calculating interest on, what rate applies to it, whether the customer has a grace period, what happened to that balance yesterday, whether they made a payment today, whether part of it is disputed, whether a credit posted, whether something needs to be corrected retroactively, and what all of that means for tomorrow.
Meanwhile, the customer opens their statement, sees $21.24 in interest, and asks why.
You need to know exactly why.
About ProductFTW
ProductFTW is a weekly newsletter about product management, with a focus on real-life experiences in startups. We want to help product leaders be successful by giving realistic approaches that aren’t for giant tech companies. We know you don’t have a full-time product designer on each team. We know your software probably hasn’t been used by millions of people worldwide–yet. We’re here to bridge the content gap from building your product and team to scaling it.