In Canada, if you refinance before your mortgage term end it's typically to pay 3 months of interest as penalty or the difference between your new rate and the old rate until the term ends.
What's the rationale behind that? That's really a penalty for early repayment - is it set by law, or is it just something that is part of a standard Canadian mortgage contract?
You are right that they wouldn’t normally exist without government intervention.
But banks don’t profit off the interest rate on mortgages. It’s mostly origination fees. Mortgages are sold off immediately. They don’t hold onto them.
It’s just standard. The standard Canadian mortgage contract is for a 5-year term with a fixed rate. Variable rate mortgages have notably lower costs to end early. (Early repayment terms are typically something like “can optionally pay up to 15% extra per year without penalty.”)
Here in Sweden if I have a fixed rate mortgage and want to repay early or refinance at a lower interest rate, I have to pay a penalty which is essentially equal to what the bank is losing in out on in 'missed' interest payments.
In Canada, if you refinance before your mortgage term end it's typically to pay 3 months of interest as penalty or the difference between your new rate and the old rate until the term ends.
It's pretty damn punitive.