If it hits you at the same time most days, the cause is usually sitting in whatever you ate at 12:30. A sandwich. A salad with no real protein in it. Leftover pasta, or half a granola bar between calls.
Three hours later your body goes looking for the fastest fuel it can name, and the fastest fuel it can name is sugar.
That's a supply problem, and supply problems have fixes. The short version, if you want it now: get 15 to 20 grams of protein into lunch, and keep something at your desk that has protein and fat in it rather than only sugar. Peanut butter protein balls were built for exactly this slot, and there are a few more in the free sampler further down the page.
The rest of this is why that works, and what to do when the craving is already happening.
Two things happen at once in the early afternoon
The first one is a rhythm. Alertness dips in the early to mid afternoon for most people regardless of what they ate, which is why the wall shows up even on days you skip lunch entirely. Nothing you did caused it.
The second one is what lunch did to your blood sugar. A meal that's mostly refined carbohydrate sends glucose up fast, insulin follows to bring it back down, and for plenty of people it comes down harder and quicker than they'd like. That drop reads as sudden tiredness plus a very specific interest in something sweet.
Stack the two and you get 3pm. It isn't a character test. It's supply and demand with a two to three hour delay built in.
One honest note before the fixes: if the afternoon crash is severe, happens every single day, or comes with shakiness, that's worth raising with your doctor rather than solving with a snack. Nothing on this site is medical advice.
Why water, a walk and waiting it out don't hold
They aren't bad ideas. They just aren't aimed at the problem.
Water fixes thirst. A walk helps the rhythm half of the afternoon and does nothing at all for the glucose half. And "cravings pass in twenty minutes" is true in a narrow sense: that particular wave passes, then a new one arrives at 4:15, and by five you're standing in front of whatever is closest with no argument left in you.
The bigger issue is the framing. Advice that treats a craving as a discipline test assumes the craving is the problem. The craving is information. Your body is telling you lunch didn't carry, and it's right.
What actually holds for three hours
Protein is the lever that matters most, and it does two separate jobs.
It slows how fast a meal leaves your stomach, so glucose arrives as a slope instead of a spike, which means there's less of a drop on the other side. It also carries a stronger fullness signal than carbohydrate does, gram for gram, so the same calories go further.
Fat does the slowing part too. It's also the reason a dessert with some fat in it registers as dessert while a bowl of berries often registers as a rehearsal for dessert. That isn't a flaw in you or in the berries. Fat and protein are what make something feel finished.
Fiber does less on its own than the internet suggests. Next to protein it helps, and it usually arrives free anyway, attached to the oats, beans and fruit you were already eating.
A number to aim at: roughly 15 to 20 grams of protein in lunch, and around 10 grams in whatever you eat mid afternoon. That isn't a rule from anywhere official. It's the range that, in our own testing, separates a snack that carries you to dinner from one that buys forty minutes and then starts the whole thing over.
Five things that hold at a desk
Every number here is per serving, taken from that recipe's own card.
Peanut butter protein balls, 175 calories and 14g protein. Two balls is a serving. They use powdered peanut butter rather than the full fat kind, so you get the roasted peanut flavor without the oil. They keep a week in the fridge and travel fine in a container.
PB chocolate protein bars, 175 calories and 15g protein. The most protein per calorie on this list, with 10g of sugar and no baking involved. They set in the fridge and want to stay there. In a warm bag they go soft.
Edible protein cookie dough, 180 calories and 13g protein. A serving is about three tablespoons, which sounds small written down and eats bigger than you'd expect because it's dense. Make this one if the craving you get is specifically for something sweet and soft rather than for food.
Chocolate protein fudge, 235 calories, 12g protein and 2g sugar. It carries 19g of fat, which is why it holds. It also has to stay cold, so this is for an office with a fridge, not a tote bag.
Protein peanut butter cups, 295 calories and 15g protein. The highest calorie option here and the one that most reads as actual dessert. Two cups per serving.
If none of those fit what you like, the high-protein roundup has ten of them with the macros printed on each.
The coffee question
Coffee at 3pm works, in the sense that the wall goes away for a couple of hours.
It's borrowing, though. Caffeine has a half life of around five hours, so a 3pm cup still has a meaningful amount of it in you at 8pm. If it costs you even half an hour of sleep, you arrive at tomorrow's afternoon in worse shape than you arrived at today's, which is how the craving gets stronger week over week instead of weaker.
Coffee alongside a snack with protein in it is fine. Coffee instead of the snack is the version that compounds.
The lunch fix, concretely
You don't need to redesign lunch. You need to add protein to the one you already eat.
A salad turns into a lunch that carries when there's a chicken breast, a tin of tuna, a cup of cottage cheese, or the easiest option, whatever protein was already in last night's dinner. A sandwich carries better with double the filling than with different bread. Leftover pasta carries if there's meat or beans in it and mostly doesn't if there isn't.
If you eat at noon and have dinner at seven, that's a seven hour gap, and something is going into it. Deciding what on a Sunday is a lot easier than deciding at 3pm on a Wednesday.
When the craving is already happening
Eat something.
Preferably something with protein in it, and preferably a portion you decided on earlier. A craving answered at 3pm with 180 calories is a far smaller event than the same craving answered at 9pm with whatever turns up in the freezer.
What doesn't work is deciding to have nothing at all. Cutting dessert out completely has its own failure mode, and it's reliable enough that we wrote a whole post about it. The short version is that an all or nothing rule breaks on its first exception, and then the exception becomes the evening.
If you'd rather bake your own version of the list above, most of it comes down to a handful of ingredient changes, and six of them do most of the work.
Start with lunch
Lunch is upstream of everything else on this page. Fix that and the 3pm decision gets much smaller, because it isn't carrying the whole day on its own any more.
Then make one batch of something on Sunday and put it where you'll actually see it at three.