Absolutely. This is something I think companies get wrong so often.
As an example, Country Road (a clothing store in Australia) offers loyalty discounts based on your purchases - $10 reward voucher per $100-249 spend, or $35 per $250+ spend. Except, those vouchers expire after 30 days.
If I've just spent $250 on clothing, I'm unlikely to make additional purchases in the next 30 days. Their reward system doesn't encourage me to buy more clothes (there is only so much I can buy in a short period of time), and it does the opposite of encouraging my loyalty - it just makes me 'bitter' that I'm missing out on rewards.