There are plenty of good reasons why roses are so expensive during Valentine's week, but here are four places that offer a dozen regular-sized red roses (possibly a pink, white, red combo) for $17 or less.

Costco. The surprise is that during Valentine's Day week, the home of massive quantities also sells bouquets of 12 roses for $14.99. Costco and Sam's generally sell roses in bunches of 25. This is one of those rare occasions where they downsize. When I checked Monday there were plenty of colors at Costco besides red and the arrangement (vase not included) included some nice greens (not baby's breath).

Sam's Club is selling a dozen roses for $15.87 (various colors).

Not a warehouse club member? Try any location of Trader Joe's, which is selling a dozen roses with greens for $14.97 and you don't need a membership card.

Want long-stemmed roses? Today is the first day that Aldi suupermarkets are selling a dozen red longies for $17. I recommend shopping early, especially at Aldi. Its flowers can look pretty ragged as the week goes on.

Can't get enough of roses? Check the warehouse clubs, supermarkets, Target and other discounters on Monday. Last year I remember seeing roses discounted further on the 15th at Target and Costco. That's no guarantee they'll do it this year. You might want to call before heading out.

Updates: to the person who commented online about a good price on Cub Foods' roses, they are $18 a dozen, about 20 percent more than Trader Joe's, Costco or Sam's. It's helpful if you tell us the price, not just say they're a good deal.

King's Roses (1701 E. Hennepin Av., Minneapolis, lower level, 612-331-3934), which one reader mentioned online, is selling theirs for $15 per dozen of red roses. Other colors (not white or pink) are $10 for a dozen. A dozen red roses in a vase is $45. Two dozen are $25.