Rush work costs you more than the extra hours suggest, it usually means dropping other commitments, working outside normal hours, and absorbing more risk of mistakes made under time pressure. Pricing it like a normal job under-compensates for all of that.
A common, defensible approach is a flat rush surcharge on top of your normal rate: 25-50% for a compressed but reasonable timeline, 50-100% for genuine same-day or overnight turnarounds. State the surcharge as a simple multiplier so it's easy to explain and easy for the client to understand, "rush jobs under 48 hours carry a 50% surcharge" is clearer than an ad hoc number.
Build the rush rate into your estimate generator as a separate line item rather than folding it into a single number, this makes the tradeoff visible to the client, they can see exactly what a normal timeline would cost versus paying for speed, and often choose the standard timeline once the premium is explicit.
It's also fair to simply decline rush requests that don't fit your schedule at any price, a client's poor planning isn't automatically your emergency to solve.