"For" is probably the best choice, and as Clive has pointed out, the most straightforward.
"On" does work, but only because when dealing with money it correlates with expressions such as "on a budget." For this reason, I would agree with Clive that it is a little bit idiomatic, but it is certainly acceptable and understood.