Generally, for all contract programming, you should probably consider billing per hour, i.e. $50/hr.
If you don't think your client is willing to pay hourly, do an esitmation of how many hours you think it will take you to complete (you should do this step regardless, actually), multiply it by your hourly rate and then round it to a nice whole number (i.e increments of $25, $50, or $100), and then negotiate with the client from there.
if your cleint is too cheap even for that (most are), then use the price of something expensive that you'd like to own in the price range the client is willing to pay, and use that amount.