A dog trainer sells a $150 private lesson on Monday, fills six spots in a $200 group obedience class on Tuesday, and closes a $1,800 board-and-train package on Wednesday. By Friday, the bank balance looks great. But ask that trainer which of the three services actually made money once you account for the assistant's pay, the boarding kennel rental, and the six weeks it takes to deliver the class series, and most can't answer. The deposit slip doesn't sort itself by service line — your books have to.
That's the core bookkeeping challenge of a dog training business: three fundamentally different revenue models, each with its own timing, its own costs, and its own way of quietly distorting your numbers if you lump them into one "Training Income" line. Get the split right and you'll know exactly which service to grow. Get it wrong and you could be subsidizing your least profitable offering without ever noticing.
Why One "Training Income" Account Hides the Truth
Most dog trainers start with a single income category because it's simple. A payment comes in, it goes into the books as training revenue, and that's that. The problem shows up months later, when it's time to decide whether to raise board-and-train prices, hire a second instructor for group classes, or drop private sessions altogether — and the general ledger has no answer, because it never separated the streams in the first place.
Each revenue type behaves differently:
- Private sessions are usually delivered and paid for close together — you teach the lesson, you invoice or collect payment, revenue is essentially earned the same day.
- Group classes are typically sold as a multi-week series paid upfront, but the training happens over five or six sessions spread across a month or more.
- Packages and board-and-train programs are paid in full before a single day of service, sometimes weeks in advance, and delivered over days or weeks after that.
Treating all three as "earned the moment cash lands" is the single most common bookkeeping mistake in this business, and it directly overstates how healthy your finances actually are.
Set Up Separate Revenue Accounts for Each Service Line
Before anything else, split your chart of accounts by service, not just by payment method. A workable structure looks like:
Income:PrivateSessionsIncome:GroupClassesIncome:BoardAndTrainIncome:AncillaryServices(retail — leashes, treats, e-collars — plus add-ons like dog walking or pet sitting)
This alone changes how you make decisions. When you can see that group classes generate $4,200 a month against maybe four hours of instructor time, while board-and-train generates $6,000 but ties up a kennel and a trainer's attention around the clock for a week per dog, you can actually compare margin, not just top-line revenue. If you're managing this in a plain-text ledger, that split is just a matter of using distinct account names on each transaction — the getting-started docs walk through setting up a chart of accounts like this from scratch, with no proprietary categories to fight and every entry fully auditable in version control.
Private Sessions: The Easy Case (Mostly)
Private lessons are the closest thing to simple, point-in-time revenue in this business — money changes hands, service is delivered, done. The bookkeeping wrinkle is less about recognition and more about collection timing: sessions sold as a pack of five or ten (common for behavior modification work) need to be tracked as a liability until each lesson is actually delivered, not booked as income the day the client pays for the block.
A simple client-credit ledger — even a spreadsheet mapped to your books — showing sessions purchased, sessions used, and sessions remaining prevents two failure modes: recognizing revenue you haven't earned yet, and losing track of session credits a client is legitimately owed.
Group Classes: Revenue Recognition Across a Series
This is where the accounting starts to diverge meaningfully from the cash. A six-week $200 group obedience series paid upfront on day one hasn't actually been "earned" until each class is taught. Recording the full $200 as income on enrollment day overstates that month's revenue and understates every following month, which distorts month-over-month comparisons and can misrepresent taxable income depending on your accounting method.
The correct treatment is to record the payment as deferred revenue — a liability, not income — and recognize $33.33 (200 ÷ 6) as earned each week as that week's class is actually taught:
; Client enrolls and pays for a 6-week series
2026-07-27 * "Group class enrollment - 6-week series"
Assets:Checking 200.00 USD
Liabilities:DeferredRevenue:GroupClasses -200.00 USD
; Each week, as the class is delivered
2026-08-03 * "Week 1 of 6 - group obedience series"
Liabilities:DeferredRevenue:GroupClasses 33.33 USD
Income:GroupClasses -33.33 USDIf a client no-shows for the entire series and forfeits their spot, or you cancel a session and don't make it up, that unearned balance needs a deliberate resolution — either delivered late, refunded, or recognized as forfeited breakage income — rather than sitting on the books indefinitely as a liability nobody remembers.
Board-and-Train: Revenue, Cost of Goods Sold, and Timing All at Once
Board-and-train packages are the most complex revenue type a trainer handles, because they combine the deferred-revenue problem of group classes with a genuine cost of goods sold that private sessions don't have. A two-week $2,500 board-and-train package isn't just $2,500 of eventual income — it's also:
- Boarding/kennel costs (your own facility's overhead, or a per-night fee if you board dogs at a partner kennel)
- Food and daily care supplies
- The trainer's or handler's time, which is far more intensive than a one-hour private lesson
- Liability exposure — most trainers carry care, custody, and control coverage specifically because a dog is in their possession, not just under instruction, and that policy cost belongs against this revenue line specifically
Recognize the revenue as the program progresses (day-by-day or week-by-week, matching your actual delivery), and track direct costs in a COGS:BoardAndTrain account so you can see true margin per dog, not just the package price. A trainer who prices board-and-train at $250/day without separately tracking the $40/day kennel cost and the extra insurance premium often discovers the "premium" service is barely more profitable than a $150 private hour that has none of that overhead.
Instructors and Assistants: 1099 or W-2?
As soon as a business grows past one trainer, classification becomes a real financial risk, not just a bookkeeping preference. The IRS and most state labor agencies look at behavioral control, financial control, and the relationship type. A group-class assistant who works your schedule, uses your training methods and equipment, and reports only to you looks like an employee, regardless of whether you pay them per class. A trainer who has their own clients, sets their own rates, and only occasionally subcontracts board-and-train overflow from you looks like a genuine independent contractor.
Misclassification is expensive to unwind — back payroll taxes, workers' comp exposure, and potential penalties — so when in doubt, treat instructional staff as W-2 employees and keep a written contractor agreement plus a Form W-9 on file for anyone you do pay on a 1099 basis. This decision also changes your bookkeeping directly: W-2 payroll runs through payroll liabilities and employer tax accounts, while 1099 contractor payments are simple expense entries that still need to be tracked for annual 1099-NEC reporting once you cross $600 paid to that contractor in a year.
Cancellations, No-Shows, and Refund Policies Need Their Own Trail
Every trainer eventually deals with a client who cancels a paid package halfway through, or a no-show that forfeits a session under your stated policy. Don't just delete the original transaction or net it against current-month revenue — record the reversal explicitly:
2026-08-10 * "Partial refund - board and train, client cancelled early"
Liabilities:DeferredRevenue:BoardAndTrain 375.00 USD
Assets:Checking -375.00 USDAnd if your cancellation policy keeps a non-refundable deposit, that forfeited amount converts from a liability into recognized income on the day it's forfeited, not before. Keeping this trail intact matters most at tax time and if you're ever asked to substantiate income during a loan application or an audit.
The KPIs This Split Actually Enables
Once revenue is separated by service line and costs are tracked against the right line, a few numbers become genuinely useful:
- Revenue per instructor hour, by service type — often the real surprise, since board-and-train's higher price tag doesn't always translate to a higher hourly return once kennel time is factored in
- Package breakage rate — the percentage of prepaid group-class or session-pack revenue that's forfeited rather than delivered, which is real income but shouldn't be budgeted as reliably as delivered-service revenue
- Deferred revenue balance at any point in time — this tells you exactly how much service you currently owe your existing clients, which matters a lot if you're planning to take a slow month off or scale back capacity
None of this requires expensive practice-management software. It requires a chart of accounts that mirrors how the business actually makes money, and consistent habits around recognizing revenue as it's earned rather than as it's collected.
Keep Your Training Business's Books as Organized as Your Class Schedule
Splitting private sessions, group classes, and board-and-train into separate accounts — and recognizing package revenue as it's actually delivered rather than the day it's paid — is what turns a bank balance into real financial insight. Beancount.io offers plain-text accounting that's transparent, version-controlled, and easy to structure around exactly the kind of multi-service revenue model a dog training business runs on. Get started for free and see how a ledger built in code, not a black-box app, makes it obvious which part of your business is actually paying the bills.