I have completed a project for a client about 1.5 months ago and he's happy with what he got, but as they started using it, he keeps asking for small things to change here and there, these keep piling up, and i'm not getting paid for these. So, i asked him if we can have a retainer contract for those and he agreed.
What would appropriate terms be? Some fixed amount per month which guarantees availability but does not include any actual work? Or some higher amount per month which includes some hours? What would be typical terms you guys work according to, in real-life cases?
I had just 1 case of it before and it was an equivalent of my 20 (long term) hours per month. Not sure if i got it right, probably i undercharged. So any input is highly appreciated...
If you charge an amount per month that you think would cover the kind of work you would do per month that you would be happy with then I wouldn't worry about "undercharged". I think with any good client relationship you are looking for what is fair and reasonable. You want the amount to be enough that you look on the work favorably but that the client still thinks they are getting value, it would be hard for anyone to know what that is better than you.
I would also go a bit higher than just enough to both give yourself some room to negotiate and also to keep the money good over time without having to re-negotiate (a good rate this year may not be a good rate next year).
Clients should pay freelancers for the work that they do.
This is common sense.
This is also Upwork's rule: Upwork ToS prohibits clients from asking freelancers to work for free.
You should NOT be offering to let the client pay you a "retainer", and then doing whatever work they ask you do on top of that. I would not do that.
Let the client pay you a monthly retainer... (or, better yet, a weekly retainer, because Upwork actually lets you set up a contract to pay a weekly amount automatically)... and ADDITIONALLY bill them for any time you spend working on their project.