I now do a couple of things to combat it. I put $60 a month in an envelope for “kids”. That’s $20 per kid. That is for unexpected trips to the movies, a bit of spending money when going out with a friend, a special ice cream, t-shirts for a field trip, a buck here or there for whatever the school asks. Most of the time my kids eat sack lunches, but once in a while they want to buy. I take it out of that envelope. They all share the money even though $20 is allotted per child. The 3 year old rarely spends the entire $20, but the 9 year old may go over. We just spend what is in the envelope.
You probably could go back over a year and find that you spend aprox X dollars on “unexpected” items. They aren’t the same things each month, but there is probably an average you can come up with.
If something semi-expensive comes up, like a Military Ball, wedding, or a special concert that you have to go to or really want to go to, then I take it out of my BEF and put it back over the next month or so from my “entertainment” envelope.
So items like the PTO fundraiser, I might take $15 out of dining and $5 out of entertainment. I would also budget more next October and December for parties that I know we will want to attend.