I agreed with a customer to import data from excel files and build a report with them. Since it was not a big project I did not charge too much. I also asked for an annual fee for bug fixing and maintenance.
As in the boiling frog story, the customer asked for little changes now and then (the frog is me). After more than a year I realized that I'd built a sort of ERP, where importing excel data was used only once to avoid the initial manual data entry phase.
In order to get the report, I had implemented (for free) a lot of business logic and many statistical calculations just to have a "correct" model (bespoke to the customer).
I'd like to give to my customer a new version of the contract I use for ERP programs (and not for import/export utilities as I did with him), with higher prices for the initial software cost, annual maintenance and other contract conditions.
The project is nearly completed. How can I tell all of this to the customer? I'm afraid he could reply "Hey, we have agreed to this price, I'll pay you only that. The changes you made are part of annual maintanence after all". And as I managed the things he wouldn't be completely wrong. I'd like just to try to recover the situation if possible.
Thanks for your help.
Update - 7th July 2017
I followed the advise to list all the extra features, but the customer kept changing point of view just to be right whatever I said. After sending him a copy of old e-mails to show how his mind (hem...) was not serving him well, he started to say he has an intellectual property on the calculations (it's a weighted average that I suggest to use...).
I offered him the option to pay me nothing more, keeping the part of software he payed, but he had to delete my software (the part not payed) otherwise he was infringing my copyright. I sent also a license agreement. He never answered.
After that, I talk with a lawyer, a friend of mine, who offered to send him an order for payment just to unblock the situation. After a few days he asked if he had to talk to his lawyer or we could find an agreement. I offer the possibility to an agreement.
He told me he wanted to wait for a change in the law since maybe my software (not payed) could be useless for him after that. I tried to let him understand that I worked for that software and the fact he had to pay me had nothing to do with the fact that law can change.
After more than 6 months the law eventually changed and he needed no more my unpaid software... but he don't want to delete it neither.
Nearly a year has passed since that time. He even said to me that that piece of software could be helpful for him even with change in the law, I just have to fix bugs before he can pay... (obviously I don't trust him anymore).
I'm upset and annoyed. I don't know if the story will end in some other way. For sure I learned the lesson. In case of news I will update this post. I think it can be of help to others, just as an example not to follow.