After doing some graphic work for custom shirts for a local business, the owner asked me if I would be able to design a website that would allow customers to visit and design their shirts. The web app would start by having the customer choose from different products to design such as jerseys, bags, shirts, socks, etc. Then, they are shown a mock-up of what the design would look like updating itself each time they change the design and the colors they want on design. This design would be an SVG that will be converted to a specific size pdf based on the shirt sizes and such and be sent to the business owner to process from there. I have done my research and am capable of creating a website to accomplish all of the tasks he desires. The issue is this is my first freelance project and I am not sure how much or how to figure out the cost of building this web application for the owner. Should it be by hour or what is the best way to figure out the right price so that I do not get under payed for my work?
To avoid being underpaid: You want to own as much as possible of what you make. If you are only selling the guy a license to use the thing then it's less important if you get paid a little less than it's really worth cause you can potentially make it up later when that client pays for a license upgrade or when other clients pay for the same type of software. Very few clients will have a problem with you saying, 'You're purchasing a license to use the software. Anything unique to your business is owned by you 100%'. Some will want the right to sell the software multiple times. This is worth 2x or more (non exclusive) at least. Depends on how valuable you think that is on a case by cases basis. I usually would say that if they buy that second license I will discount them the price they already paid. Then clients come back maybe 6 months or a year later, eager to pay me $$ and all I have to do is write an invoice. Imagine getting paid four or five figures for just 1 minute of copy & paste.
So have some licensing options for the client all with different prices from low to higher. That low price should still be a number you feel is fair to you based on your research. I would avoid talking about hours and focus on grouping the deliverable things and then pricing those groups as a whole. But only do that if the client explicitly ask for that kind of price detail. It's in your interest to keep the price at the overall project level. As long as you can give good estimates of the time required. I would give lead time plus test and development. NOT simply the time it takes to build.
For projects where there are detailed specs/narrow scope this is safe. For situations where things are uncertain/changing then hourly is better. Make sure in your agreement with the client you say that they are responsible for any 'client caused delays or changes'! Don't give freebies unless you caused a problem.
And also consider how much money you're saving the client. Be clever and ask the client a lot of questions about how their business works and how many employees they have doing this stuff they want you to create a program to do. And consider how much it would cost the client if they hired a developer to work for them full time on the project too. This will help you price what you're doing.
If you license it, you own it. In the US, if the client decides to walk away from the deal without paying you, your recourse is to take back your software.
If you write it as "A Work Made For Hire" - legalese magic words in the US that mean they own it the moment you write it (i.e., you never owned it) - they are obligated to pay you according to whatever payment agreement you had with them, and that is legally enforceable.
Also if you license it with a pay-per-piece license, you become an "investor" in their enterprise; your compensation depends on how well they do. If they may do poorly or quit the online T-shirt business altogether, and that's out of your control.