Most landscape businesses know what they billed last month. Far fewer know which of those jobs actually made money once the crew hours and the material run were counted. TerraScape AI puts labor, expenses, and overhead against every job and shows you the margin, so repricing is a decision instead of a hunch.
Last updated 2026-08-14
Job costing is putting every real cost of a job against what you charged for it, so you know the profit on that specific visit rather than only the profit on the month. For a landscape business the costs that matter are crew labor, materials and disposal, and a share of the overhead that runs whether the truck moves or not.
Revenue tells you the business is busy. Job costing tells you whether busy is worth it. Those are different questions, and most operators only ever get an answer to the first one.
Here's the shape of it. A job carries a price. Against that price sit the hours your crew actually spent, the mulch and fuel and dump fee the job consumed, and a slice of insurance, truck payments, and phone bills. What is left is the margin on that job. Do that across a season and the pattern shows up fast: a handful of jobs carry the business, most are fine, and a few have been quietly costing you money for two years.
In TerraScape AI, that math runs on the Financials side of the platform on the jobs you already schedule and bill, so it is not a second system to keep current. You are not re-entering work into an accounting tool at 9 PM to find out how June went.
Where the money leaks in this trade is not exotic. It is the drive time nobody counted, the property that grew from a 40-minute cut to an hour and never got repriced, the cleanup you quoted from memory, and the client who is pleasant to work for and 8% margin. None of that shows up on a bank balance. All of it shows up on a job costing report.
Because you priced the work and then paid for the day. The estimate assumed two hours and one man. The day delivered three hours, two men, a trip to the supplier, and a dump run, and the invoice still said what the estimate said.
That gap is normal. It is not a sign you are bad at this. It is a sign that nobody is measuring the thing that moves.
The four leaks worth naming, because they are the ones that repeat:
Here's the math that makes this concrete. At a $65 an hour effective crew rate, 30 minutes of uncounted drift on a weekly account is $32.50 a week, about $1,100 across an eight-month season, on one client. Ten accounts with the same drift is $11,000. That is not a rounding error, it is a truck payment, and it is invisible without job-level costing.
For the broader picture of what a healthy number looks like, lawn care profit margin walks through the benchmarks, and how to price landscaping jobs covers building the price in the first place.
It works off the job you already scheduled. You do not build a separate costing record. The job carries its price, the crew assignment carries the labor, and you add the expenses as they happen.
Labor. Each employee carries an hourly cost, and the hours assigned to a job turn into a labor cost on that job. A two-man crew on a three-hour job costs what those two people actually cost, not an average you guessed at.
Materials and direct expenses. You log an expense against the job with a description, a quantity and unit, an amount, and a category, so "14 yards of mulch" and "dump fee" sit on the job that consumed them. You can do it from your phone at the supplier instead of from a receipt pile on the kitchen table in February. Zentra can log it for you on command as well, which in practice means saying what you spent and on which job and letting it file the entry for your approval.
Overhead. You set your monthly overhead categories once, insurance, truck payments, phone, software, and the platform carries a running monthly total that feeds the cost side rather than sitting in a note somewhere.
The output. Every job shows revenue, total cost, net profit, and margin percentage, with a status so the thin ones are obvious at a glance. Rows carry the client name, the job type, and the date, so a client whose every visit lands thin is visible without you building a pivot table. You can export the whole thing to CSV when your accountant wants it.
And it is a month view, not a mystery. Financials reads the month you are looking at, with expenses, profit, overhead, revenue goal, and trend all on the same page, so "how did July go" is a question you answer in about four seconds.
You cannot reprice what you have never measured. Job costing is just the measuring.
You reprice, you re-route, or you let the account go. Those are the three moves, and having the number is what turns each of them from an argument into arithmetic.
Reprice the drift. A property running 30% over the quoted time is not a bad client, it is an old price. Bring the estimate to the client with the hours attached and most of them say yes, because you are not negotiating, you are reporting. The estimate software page covers building and sending the new number.
Re-route before you re-price. Sometimes the job is fine and the day is the problem. A stop that is 20 minutes off the route costs more than one that is on it, and that is a scheduling fix rather than a pricing fix. See the route optimizer for landscapers.
Let the wrong account go, on purpose. Every operator has one or two accounts that were worth taking in year one and are not worth keeping in year four. Deciding that with a margin number in front of you is very different from deciding it when you are annoyed on a Friday.
Bid the next one with real inputs. Last season's actual hours on a similar property are the best estimate you will ever have for the next one. That is the compounding part: a business that costs its jobs bids better every year, and a business that does not is guessing with more confidence each season.
Know it early enough to matter. Zentra's Daily Brief, the 19-signal morning summary, surfaces revenue trend and client-level signals so the picture is not something you discover in the off-season. Small businesses already spend 10 to 15 hours a month on billing and bookkeeping, according to SCORE, the SBA-backed small-business mentoring nonprofit. The point of job costing inside the platform you already schedule and bill from is that it does not add to that number.
TerraScape is not accounting software and does not try to be. It answers what a job cost and what it made. It does not close your books, run payroll taxes, or file anything.
Being clear about the line saves everyone a bad month:
That last one is worth sitting with. Job costing is honest about unbilled work by design. If a month looks worse than it felt, the first thing to check is whether the invoices actually went out.
It is worth the most to the smallest crews, which is the opposite of how the market prices it. On general field-service tools, job costing usually sits on an upper tier rather than the entry plan, so the businesses least able to absorb a mispriced account are the ones asked to pay extra to find it.
In TerraScape it is part of one flat plan at $24.99 a month after a 7-day free trial. No tiers and no feature locks. Two employee seats are included, and additional seats are $10 a month each. No contract, no cancellation fee. Every account gets a 30-minute setup call where the team at TerraScape AI imports your client list and gets Zentra running.
Who this actually helps. A solo operator with 40 accounts and a hunch about which three are dragging. A three-truck crew that grew fast and has not repriced anything since. A business that does both maintenance and installs and suspects the installs are carrying the mowing, or the other way around.
Who it will not help much. A business that does not price its jobs in the platform, or one that needs machine-level asset costing. If nothing is billed through the system, there is no revenue for the cost side to sit against.
Payments run on Stripe, with a 0.75% platform fee on top of standard Stripe processing that is waived when you connect QuickBooks, and texting is free for businesses. If you want to see how this plays out in a specific kind of work, the lawn care business and lawn treatment pages cover two very different cost shapes, and the landscaping CRM guide covers the platform as a whole. If you are weighing this against a per-seat tool, TerraScape vs Jobber lays the two out side by side.
| Feature | TerraScape AI | General field-service tools | Spreadsheet at 9 PM |
|---|---|---|---|
| Cost and profit on every job | Higher tier | By hand | |
| Included in the base plan | Usually not | ||
| Labor cost from crew hours | Higher tier | By hand | |
| Log materials against a job from your phone | Varies | ||
| Monthly overhead in the cost model | Varies | By hand | |
| Margin percentage per job | Higher tier | By hand | |
| Client and job type on every row | By hand | ||
| CSV export for your accountant | |||
| AI logs the expense on command | |||
| Same system that schedules and bills the job | |||
| QuickBooks Online sync | Varies | ||
| Equipment and asset depreciation | Some | By hand | |
| Employee seats | 2 included, then $10/seat | Per user from seat one |
Job costing is part of the one flat TerraScape AI plan at $24.99/mo after a 7-day free trial, not a paid upgrade. Two employee seats included, then $10/mo per additional seat. No contract and no cancellation fee. The platform fee is 0.75% on top of standard Stripe processing, waived when you connect QuickBooks, and texting is free for businesses.
Start your 7-day free trial. $0 today, then $24.99 a month, two employee seats included, no contract. Labor, materials, and overhead against every job, with the margin on the same screen.