Every development agency makes this mistake exactly once.
A corporate client asks you to build a Learning Management System (LMS). They tell you it is a very basic project.
"Honestly, we just need a simple portal for employee onboarding," they say. "They log in, watch a few training videos, take a multiple-choice quiz, and get a certificate. Nothing crazy."
It sounds simple. So you quote it like a standard website. You price it at $15,000.
Two months later, you are losing your mind. The client suddenly mentions they have 400 legacy SCORM files from 2011 that need to be migrated. Their IT department demands custom Single Sign-On (SSO) through Azure. Their HR director wants a custom dashboard that automatically syncs with Workday.
You just realized you didn't sell a website. You sold a massive enterprise software integration, and you are doing the hardest parts for free.
If you want to quote an LMS implementation and actually make a profit, you have to stop quoting the frontend features and start quoting the backend complexity. Here is how you do it.
1. Do not quote the data migration for free
Moving old training data into a new LMS is a nightmare.
The client will tell you they just have a few courses to move over. Never believe them. Their data is always a mess. Their old courses are usually built in outdated formats, and their user completion records are sitting in a massive, broken Excel spreadsheet.
If you quote a flat fee for "Data Migration," you will lose money.
Client: "Can you just migrate our old courses into the new system?" You: "I can. But I can't give you a flat price for that until we audit the files. Are these standard MP4 videos, or are they interactive SCORM packages built in Articulate Storyline?" Client: "I'm not sure, I'd have to ask our instructional designer." You: "Find out. If they are just videos, it's a fast upload. If they are broken SCORM files, we have to rebuild them. We charge $150 an hour for content migration. We can cap it at 40 hours, and if we need more time, we will issue a change order."
Never absorb the cost of cleaning up a client's messy data. Bill it hourly, or bill it per course.
2. Line-item the integrations
An LMS is useless if it doesn't talk to the rest of the company's software.
Employees hate remembering new passwords. HR managers hate manually typing new hires into a training system. They are going to want SSO and an HRIS (Human Resources Information System) integration.
Do not bury these inside a general "Development" line item. Break them out so the client sees exactly why the project costs what it does.
- Active Directory / SSO Setup: $X,XXX
- HRIS API Integration (Workday / BambooHR): $X,XXX
When they push back on the total price, you can point directly to these line items.
Client: "This quote is a lot higher than we budgeted." You: "I understand. About 30% of this budget is dedicated to building the automated sync with Workday and setting up Azure SSO. If budget is a hard constraint right now, we can cut those integrations. Users will just have to log in with an email and password, and HR will have to upload new hires manually every Friday. Would you rather do that to save the money?"
They almost never want to do the manual work. By isolating the cost of the automation, you force them to value it.
3. Trap the "Custom Reporting" requests early
Everyone asks for "custom reporting." Nobody actually knows what that means.
If you leave "custom reports" as a vague bullet point in your proposal, the client will demand 15 different highly specific data dashboards right before launch.
You need to put a hard fence around reporting in your quote.
State exactly what comes out of the box.
"This quote includes standard out-of-the-box reporting: Course Completion Rates, User Login Activity, and Quiz Scores. Any custom reporting dashboards requested outside of these three standard reports will be scoped and billed separately at $150/hour."
Set the boundary early. When they ask for a highly specific compliance report three months into the build, you can happily build it for them—and send them a new invoice.
4. Quote the training and handoff
You are building a complex piece of software for people who are probably not very technical.
When you hand the keys over to their HR department, they are going to have a million questions. They won't know how to reset a user's password. They won't know how to upload a new video. If you don't quote a specific training phase, they will treat you as their unpaid IT helpdesk for the next six months.
Add a line item for "Administrative Training & Handoff."
Specify exactly what it includes. Usually, this means two 90-minute recorded Zoom sessions with their administrators, and a handover of standard operating procedures (SOPs). Include a clause that says any support required 30 days after launch requires a separate monthly retainer.
Quoting an LMS is an exercise in risk management. The risk isn't in building the video player. The risk is in the data, the security, and the third-party software. Make the invisible work visible on your quote, charge for the complexity, and let your competitors go bankrupt trying to do it for cheap.