I think banks make their money not on interest rates but on various fees and overheads: each person getting a mortgage pays 10K (or more) to the bank right away. That is huge upfront money in addition to the interest rate.
Same with late fees etc. Huge business.