Posts on this site are never sponsored.

Credit card merchant fees in Canada

I have long been a fan of rewards credit cards (see one of my first ever blog posts). Cash back, travel rewards, reduced foreign currency transaction fees, and travel insurance are just some of the rewards you can get just by using your credit card for everyday purchases. Factor in sign up bonuses, and you can get hundreds, if not thousands of dollars of perks every years just by using various credit cards. Every year there are newer cards with better rewards and the savvy consumer is certainly winning.

However, consumers aren’t the biggest winners — it’s the credit card companies. Visa, MasterCard, and American Express are posting record profits and their stocks are sky-rocketing.

Consumers and credit card companies are winning at the expense of the merchants. Why? Because merchants pay a fee for every single credit card transaction that they process (which is the motivation for them to run some ridiculous marketing campaigns encouraging you to use your credit card on purchases big and small). For Visa and MasterCard, the processing fee is between 1.65% to 2.71% or more. American Express fees aren’t as widely available but they can apparently be 3.5% or more. (You can imagine that to be the biggest reason why AMEX isn’t more widely accepted.)

The worst part for businesses accepting credit card payments is that the credit card processing fee they pay can be higher for rewards cards. This means that a Capital One Aspire World MasterCard might cost merchants 2.71% (or more) of the total purchase amount whereas a CIBC Classic VISA Card might cost merchants 1.65% of the total purchase amount. (See this document for a breakdown of many credit cards’ merchant fee.) Of course, merchants aren’t allowed to refuse your “premium” travel rewards card while accepting your no-reward card.

Merchants much prefer debit card payments (where they might pay a flat 12 cent fee per Interac transaction, no matter what the amount) or cash. But most merchants would lose business if they stopped accepting credit cards.

And are consumers as a whole actually winning with high credit card usage and lots of rewards? Arguably not. If merchants have to pay to receive credit card payments, they either have to reduce their profit or increase prices. (In reality it is more complicated than that, but it illustrates the point.) Consumers have to pay the increased prices.

To the individual consumer, the incentive to use credit cards less is not obvious. You don’t personally pay more to use a credit card (unless you don’t have the money to pay your bill, of course) — the flip side being that you don’t usually pay less for using cash. Since we’re all paying for the increased prices, the logic is that each one of us might as well try to get something back in the form of credit card rewards. Otherwise you’re somewhat paying for someone else’s rewards.

When I’m patronizing a small business I might choose to pay with cash or debit, but for purchases made at big companies, I don’t really care if MasterCard is skimming Esso’s profit margin. And that’s a shame.

The Brick: beware of blanket coverage warranty and bonded leather couch

Several years ago I purchased my first couch: a bonded leather couch / sofa. It was from The Brick. The salesperson made such a convincing pitch that even though I swear off warranties, I also purchased the “Blanket 5 Year Furniture Plan” warranty — also called “blanket coverage”. It also came with something called “master surface coverage”. Today, I will no longer buy anything from The Brick, I’ve learned to be wary about “bonded leather”, and I believe that the warranty was completely mis-represented.

The salesperson had told me that if anything happened to the couch for any reason, including cracking and peeling, The Brick would repair the couch and usually they would just replace the couch. He then emphasized the point by saying that if someone sat down with scissors or a knife in their pocket and punctured the couch, it would be covered.

I didn’t expect anything to happen to the couch, nor did I use it for anything other than casual sitting and napping. Less than 2.5 years in, small cracks started to appear in the middle cushion. I figured that this was a good time to get The Brick to repair the cracks, so I called their customer service. They sent someone out to look at the couch. When he arrived, he first grumbled that they probably didn’t have the right colour to repair it with. Then he proceeded to suggest that I either had a pet who scraped up the couch or I had scratchy pants (neither of which is true). He left assuring me that he would report his findings to The Brick and they would call me back.

A month later nobody had called me back, so I called The Brick to ask about the status of my warranty claim. They said it was unclear why I hadn’t been called, but that they would investigate the notes on my file and call me back. A couple weeks later, they hadn’t called me back again, so I once again called them — this time they said that there was a note on the file to acknowledge the cracks but that my claim was denied and that there was no reason given. The customer service rep on the other line said she couldn’t find any explanation for it. She then assured me someone would call back. I foolishly let it slide when no one had called back, thinking that I could just live with the cracks.

By the time the couch was 4 years old, the cracks had really worsened. Small pieces were peeling off seemingly every day, and cracks were appearing at random places all the time (the arm rests, the back, the other cushions, etc.). The middle cushion was hideous:

Peeling bonded leather couch from The Brick

I figured I would try calling The Brick again. This time they argued that actually the warranty I purchased didn’t cover the material of my couch. The warranty covers leather but not bonded leather. Of course, I was very shocked and appalled at this — I argued my case given what the original salesperson had told me, and I insisted that I speak to a manager. I was offered a $100 gift card, proof via e-mail that my warranty didn’t cover my couch, and that the manager of the store would call me back. They never called me back. I declined the gift card (which was equal to the price of the warranty I purchased) because I didn’t intend to shop at The Brick anymore, nor did I wish to encourage anyone else to do so.

I have since learned that bonded leather is closer to plastic than leather, and the word “leather” is quite misleading. In this article from Ellen Roseman, a representative from The Brick suggests that their bonded leather couches aren’t even expected to last 5 years:

“I’m not aware of anyone in the industry that covers bonded leather. We said we’d cover it for new purchases, but I’m a little concerned about that because I’m not sure if it lasts for five years or not.”

Complaints against The Brick are very common, and a Google search will return many stories of bonded leather couches falling apart and The Brick not honouring their warranty. Some people have had better success with The Brick’s customer service, while others have successfully sued The Brick to get a refund on their couch or to get a new couch. For some reason I don’t feel like fighting this one any further — it’s been a frustrating learning experience.

Amtrak Cascades deal: buying and redeeming points is often cheaper than buying a ticket directly

The Amtrak Guest Rewards program enables you to earn, buy, and redeem points for Amtrak travel. For the Amtrak Cascades train route between Vancouver, British Columbia and Eugene, Oregon, it is often cheaper to purchase points and use them for travel rather than buying tickets directly.

Enrolling in Amtrak Guest Rewards is free.

A ticket for any 1-way trip on the Amtrak Cascades route (a great train ride!) costs 1,500 points. A business ticket between any stops on the same route costs 2,000 points. In other words, if you go from Vancouver, BC to Eugene (the first and last stop) it costs you the same number of points as going between Seattle and Tacoma (which are only 2 stops apart). You can buy 1,500 points for $41.25 USD, and 2,000 points for $55 USD. (All prices mentioned are USD.) Once in a while Amtrak will have a promotion where buying different points amounts will get you extra points.

The regular prices for buying tickets directly will vary depending on the distance you travel, how far in advance you book, how fully booked that journey is, and of course whether there are any promotions.

The regular prices for a 1-way trip if you book at least 2 weeks in advance between Vancouver, BC and Seattle are as follows:

Non-refundable: $30
Refundable: $40
Business class: $62

The regular prices for a 1-way trip if you book at least 2 weeks in advance between Vancouver, BC and Portland are as follows:

Non-refundable: $47
Refundable: $62
Business class: $96

In other words, promotions aside, using those 2 examples, every ticket level is cheaper between Vancouver, BC and Portland. Business class tickets are cheaper for both example routes.

Refunds for points tickets are apparently possible before you’ve taken the trip, with the points being returned to your Amtrak Guest Rewards account.

If you’re travelling on the Amtrak Cascades route, compare the pricing for booking directly on against buying and then redeeming points. It might be cheaper to buy and redeem points!

How to fix: random exclamation marks in e-mails

If you are programmatically sending e-mails, you might troubleshoot random question marks and random exclamation marks in e-mail bodies. Question marks are often caused by a character encoding issue. Exclamation marks are often caused by a line length issue, and that is almost certainly the case if the seemingly random exclamation mark is followed by a line break. If you view the source of an e-mail — in the Thunderbird e-mail client you can do this by clicking “View > Message Source” — it will be much easier to spot whether you have really long lines of characters.

Line length limits were defined in the Internet standard RFC 2822 and subsequently in RFC 5322. (Warning: they are long and dry reading, although if you’re already reading this post…)

Specifically, those standards state:

“Each line of characters MUST be no more than 998 characters, and SHOULD be no more than 78 characters, excluding the CRLF.”

(The CRLF refers the line break.)

In PHP, you can use the wordwrap function to auto-wrap long lines.

// Force the lines to wrap at 75 characters; if more than 998 characters, you will end up with a forced line break and an exclamation mark
// Note: this is not UTF-8 safe but that's OK because we're not allowing it to cut in the middle of a word
$emailBody = wordwrap( $emailBody, 75, "\r\n" );

HTML dev tools: testing the hover state of elements in Chrome and Firefox

Something I recently discovered, which has been around for at least a year in Chrome and at least a couple of years in Firefox / Firebug: you can preview and debug the hover state in their dev tools without actually hovering over the elements. This is very handy, especially if you’re familiar with the frustration of hovering over the element with your mouse, then trying to quickly move to edit the CSS without losing the hover state.


Testing the hover state in Chrome


Testing the hover state in Firefox

You can also test the “active”, “focus”, and “visited” (in Chrome) states.