I'm wondering if there is a tactful way to say that I literally don't have any money to give them, and avoid the whole speech they give. It feels like it would be incredibly rude to just interrupt them once they've started. But on the other hand it makes me uncomfortable to just stand there and wait to say that I don't have any money, knowing that they're wasting their time (especially when I already know what they are going to say).

we budget our money strictly. i don't make financial decisions on short notice like that, or over the phone. i eat peanut butter and jelly and ramen for lunch and ride a bike to work. maybe i can fit them into next month's budget, but that would be less groceries or going out to eat, or withdrawing from the other charities and foundations we already support, and don't even think i would consider lesening my ira, tsp, or holiday fund contributions.

edit. also be aware that some of the organizations that famously do this, like the salvation army, support some really crummy things.

Never make eye-contact with chuggers. If they say anything to you, ignore them. If they can trick you into saying something back to them then they've started a "conversation" and you've lost 10 minutes of your day.

Say you have a direct debit set up and move on. Bonus points if it's actually true.

Edit: Although I do have a story about chuggers. I used to live right in the city centre, it was brilliant but the goddamn charity muggers used to stress me out. They'd always congregate in the street where my apartment entrance was, seriously there would be a row of about 10 people in a very small area so you'd never avoid them. Once when I was running late for a hospital appointment, I put my "don't fucking stop me" face on and was walking close to a run and two people tried to do a pincer movement on me. I was clearly hurrying somewhere. I was so pissed off I just raised my hands and swooshed them away. POW. I felt like an arsehole but damn they deserved it.

Interrupting someone's request for donations with "sorry, can't" isn't really rude, in fact if I were the one out there doing work like that I'd really just think nothing of it and prefer the people who said no right away.

I used to be one of those people who never gave money to people selling 'candy bars for their baseball team' or whatever. But the last few years, I've had a change of heart. Yeah, they are probably not raising money for the baseball team's new uniforms but they are raising money for themselves. They aren't selling drugs or begging or doing anything shady. They are just trying to sell you 50cent oatmeal pies for $1 and make a few bucks. Nothing wrong with that imo and now I got more oatmeal pies.

If you don't want to give anyone money on the street just give a polite, yet firm, 'no, thank you/i'm sorry' and keep walking.