Ask HN: A company wants me to do professional training, how much do I charge?

27 points by ericmsimons ↗ HN
I had a very large firm reach out to me regarding professional training for AngularJS. The training will take 40hrs (15 live webex, 12 live Q&A via WebEx, 13 providing e-mail support), and I have to write a curriculum around the specific topics they want me to cover during the live training.

This is the first time I've ever done professional training, and I don't know the standard pricing for this sort of thing. Specifically, when do you typically charge by the head, by the hour, etc and how much for each?

(PS - if anyone here has done professional training before I'd love to pick your brain sometime)

12 comments

[ 6.7 ms ] story [ 41.1 ms ] thread
You can charge them any number mutually acceptable to you. This is an important lesson to get one's head around.

Some things which may help you calculate how to price and pitch this:

On-site training by an expert in an in-demand technology can very, very easily hit $5k to $10k per trainer per day.

Sending an employee to a single conference on AngularJS would cost on the order of $1.5k to $2.5k -- on the low end, $500 plane ticket, $300 hotel room (2 nights), $350 conference ticket, $150 in per diem, etc etc. Seen in this light, $1k per seat at the training is cheap at the price, and they can still get work done on days where they do training.

If it were me, I'd be shooting for anywhere from $25k to $50k for this gig, depending mostly on a) how much I thought I could get and b) how tightly scheduled the engagement was (an engagement which would get done faster would counsel not being quite as aggressive on the quote, whereas one where the email support dragged out over weeks would block other engagements and counsel charging appropriately for that diminished productivity). It doesn't particularly matter how you break that down on your invoice.

Remember, if you help a 5-person dev team bring in an application even 1 week early versus having them self-study, the amount the company saves versus not having you in is considerable. That dev team costs $50k+ every (two week) payroll period.

P.S. A good question to solicit useful information from the client is "I want to make sure that I have an appropriate curriculum given the group size, so, how many folks do you anticipate attending?" If they quote a small number, you can quote a per-project rate, if they quote a rather larger number, you can quote a (smaller) per-seat rate which works out to a larger number.

Thanks for taking the time to respond Patrick! I have two more questions:

When I quote them, how should I be breaking down the quote? (I'm thinking the different price breakdowns would look something like "curriculum creation, live training, email Q&A," etc?)

They're planning on having 23 devs in this online training session, do you think that's enough where I would want to quote per seat?

(I'm a total noob at this, thanks again for your help!)

I don't think the mechanics of how you quote it to them matter all that much, to be honest. They're more concerned with a) what they get and b) what the cost is than how you break down your line items. Instead, I would prepare a few backup plans such that you can negotiate scope rather than negotiating rate if they come back with the answer that your initial quote is out of the budget.

Example:

Proposal A: Curriculum creation + 15 hours live training for 23 attendees = $25,000

Proposal B: Everything in A plus (fill in the blank) = $35,000

Proposal C: Everything in B plus (fill in the blank) = $50,000

So you could potentially have a conversation like "Alright, the budget is only $40k, so we can't afford the proposal." "No problem, we just move the (email support or whatever) out of scope and then we can do the $35k option." "Oh great." or "$50k sounds a little steep." "If you'd like a less expensive option to get started, we can just move (the email support or whatever) out of scope and do the $35k option." "Well we really want the email support." "Sure, that makes a lot of sense. After all, you have 23 developers working on this project, so if we shave a day off your delivery timeline that saves you, hmm, $23k or so, right?" "Sounds about right." "I think its quite reasonable to expect that personalized email support about their exact blocking issues might let us shave at least a day off delivery timelines, don't you agree?" "Plausible." "So seen in that light, it's virtually guaranteed ROI for you to go for the email support in addition to the training, right?" "Alright, sure, let's do it."

I've done professional training, but never in a programming language. Having helped to hire trainers before in front end engineering, CSS, Javascript, HTML 5, etc, I know that their billing rates were very similar to other professional services providers. Specifically, their rate was whatever they felt reasonable. When I traveled for on site training, I would charge $2,500 to $5,000 per day, depending on how far I was traveling, etc. Local on site training was a different story, normally billed at the same exact hourly rate as I provided other clients.
Just thinking out loud, but if you are going to have 23 students to 1 instructor in a single class, it may be hard to manage depending on how you setup your curriculum. Having done a few of these types of things on large dev teams (not 3rd parties really), the number of questions can get overwhelming quickly even if you try and set aside question time separate from lecture. Specifically, I am thinking if you are doing a hands on training versus pure lecture.

Not saying it can't be done, but I would think for teaching a programming language or a framework that a ratio of 1:10 would be more manageable when doing hands on training. If purely lecture than it is likely not an issue.

I'd defer to people who have done more of this though as my experience is limited. As for pricing, to me it is all about client value, and you already got awesome advice.

I've taught a Rails 12-week bootcamp, delivered on-site Ruby on Rails trainings for various Fortune 100 companies, and in a past life spent a considerable amount of time teaching in another field.

Patrick covered the "charge more" side of things much better than I could, so I'll say "what Patrick said times ten" and talk about things from the teaching side. Here are some of the things I wish I'd known when I started:

* Both the trainees and the suits upstairs are very happy with “And here is the finished product we shipped to Heroku during our class”, even if this approach means you can't cover quite as many theoretical concepts. Think back to when you first start with a new framework: you're not sure how all the pieces fit together, yet, and until you ship a project or two you're not sure what you don't know. If they're sharp, they can fill the gaps in theory on their own—your job is to help them gain the confidence that they can ship.

* In my experience, trainees' eyes glass over after 6 hours straight or so, and covering new concepts is moot. If you have the freedom to mix up the training with 4-6 hours live, then drop down to QA, that should help keep their attention longer.

* I love mixing smaller exercises into the curriculum pretty regularly. Letting them actually try out the concepts helps them feel like they own it in their own minds.

* This may seem obvious, but schedule more breaks than you initially think you'll need. Your trainees will want a chance to get coffee and let things settle down in their minds. I'll usually give the trainees a full hour for lunch. I'll give myself at least 20 minutes away from the trainees to breathe, then I'm around to answer their questions during lunch before we start up again.

* You need two computers. One for WebEx, and one to run Google/Stack Overflow/debug quirky things off screen. It's much less confusing for your trainees, and far less stressful for you, to solve something on your own and then walk the trainees through how you solved it, than for them to try to follow everything you're trying in real-time.

* I'm not quite sure how WebEx works, but you need some form of group chat room if WebEx doesn't offer that already. A lot of your trainees are developers, and a lot of developers are introverted, and a lot of introverts will feel more comfortable asking questions via chat rather than piping up on a large conference call. Also, providing code samples and URLs orally is awful. Group chat solves that.

* If there are any tools or apps you recommend or require, make clear all trainees are expected to have them installed/compiled before class starts.

* This shouldn't be a problem since it's remote, but make sure all trainees have access to a computer. (You wouldn't believe how many of my trainees have shown up without computers...)

* I've taught anywhere from 3 to 20 developers at a time. 8 or so is my favorite. Any more than than and I highly, highly recommend you hire a TA for the live portions. The TA will be able to help you answer more questions, buy you a few minutes to get coffee and recover your own sanity, and if a trainee ends up with an issue that is halting the class's overall progress, the TA can focus on that trainee exclusively while you push forward.

(This is another reason to charge high rates: it allows you to do things like hire TAs and deliver a much better experience.)

I'm nj@third.io. If you'd like to talk more, I'd love to hear from you.

If you enjoy training, you could make a "Fundamentals" course you could deliver to other clients.

I charge by the day for my CFEngine trainings: USD 2,500 to 5,000.

I also recommend you survey what your competition is charging - don't undervalue yourself.

Is this a distributed team you'll be training?

As ussual, patio11's "charge more" advice applies. You should bill at a rate proportionate to the value provided, not the effort required from you to deliver it. Your client knows what value they expect to get out of the training, but they most likely have no idea of how hard you have to work to deliver it to them (and even if they are inclined to guess, they will underestimate it). Listen to Patrick, use a ROI argument and negotiate on scope.

With that out of the way, I'm going to throw some caveats at you. The idea is not to discourage you, just to make sure you realize the effort that will go into preparing for those 40 hour of training you will deliver and price yourself accordingly.

As a first timer on professional training, be aware that 20+ people to train is a large number. You won't be able to achieve much personal interaction with each student, and you might find a great deal of variance in their backgrounds and skill levels at the start of the course. Be prepared for outliers, at both ends of the spectrum, they can chew through time that would be better spent on topics for the bulk of the class.

You will also find that large firms can be notoriously bad at gauging the needs of their teams, you could deliver exactly what is asked of you by the management without meeting the dev team's needs. Take a moment at the start to gauge the team's expectations, explicitly ask them what they want to get out of the training and try to work some of that into the lessons.

You will have to take some time to learn about the team you will be training: Are they distributed? Do they all work together? Are they already working with the thing you will train them on? Are they building line of business software? Are they being rented out to third partys? All of this will influence what the team and what management expect to get out of you, and therefore what you whould deliver. Be ready to manage expectations from both ends.

Does it sound like a lot of work yet? This is just the start.

TL;DR be prepared for pathology on your first engagement. Charge more.

Repeat after me: I am not selling training. I am selling a more capable, more efficient development shop.

If you're teaching a group of twenty developers and you're going to make them just 10% more efficient, then guess what. You've just made the company AVERAGE_YEARLY_SALARY * 20 People * 10% == AVERAGE_YEARLY_SALARY * 2 (that's the benefit to the company).

The better question to ask is, how much do I charge for handing the company $300,000 (or whatever it is you're saving them).

If the training is going to take 40 hours, that means you're likely going to spend close to 80 hours all told (prep, making up lesson plans, unexpected overages, etc). I would recommend you plan accordingly.

10k per person per week isn't out of the ordinary (I don't charge that, but I know those that do, or more), but if it's your first time to the rodeo, 2k per would be much more reasonable.

To add a little to other commenters: Make sure the goals of the training are clear, with a checklist/scorecard agreed in advance, and proof of achievement and development areas on culmination. An applied project is one way to do this.

Doing so moves the focus from selling learning as a service to achieving a framework and how to achieve that as a product. Most large corps I know use SMART goal setting in their annual staff appraisals, which is extremely compatible with this kind of approach goal-based approach to training, and is a nice strategy to turn the proposal from a 'this is what our [client] idea of an hourly rate is' to 'this is what I'm [training provider] giving you'.