Job costing software for solar contractors
Solar jobs are priced per watt and paid on milestones, with the last payment waiting on the utility. Modules and inverters get paid for early. CFOS for QuickBooks costs each array against the estimate, by cost code.
We email you when CFOS for QuickBooks opens, plus a few updates before then. Your address stays with Run On CFOS. One click unsubscribes.
30 days free, a 90-day money-back guarantee, and cancel anytime. It opens January 2027. We email you the day it opens.
How solar bills and where the money leaks
Commercial and utility work usually bills on milestones or a schedule of values tied to them: notice to proceed, equipment delivered, mechanical completion, substantial completion, and final after permission to operate. Residential and small commercial work may be paid by a financier in a few draws. Retainage is common on larger contracts, and the bid itself is usually a price per watt.
The first leak is timing. Modules, inverters and racking are bought in large orders with deposits, and they can be on site for weeks before the milestone that pays for them. The final payment and retainage often wait on utility interconnection and inspection, which your crew doesn't control and can't speed up.
The second leak is in the field. Piles meet refusal and need predrilling or a different foundation, trenching finds rock, a failed inspection sends the electricians back, and the utility can ask for changes after the design was approved. Each one is labor and equipment the per watt price didn't include, and unless someone writes it up that day, it's yours.
How solar costs split and what CFOS tracks
Solar cost splits into major equipment, racking and foundations, DC and AC electrical, civil and trenching, interconnection, and engineering and permits. Equipment is the largest dollar line on most jobs, but labor is where the estimate moves. Pile driving, module install and wiring each produce at their own rate, so they need their own codes.
CFOS imports your estimate as the job budget by cost code and compares it to actual cost from QuickBooks Online, updated every hour. With module install, racking and wiring on separate codes, you can work out cost per watt on each activity when the job closes. Equipment daily rates charge pile drivers, skid steers, telehandlers and trenchers to the job on the days they're on a daily.
Bills emailed to your bills inbox are read, coded to the job and checked against the PO. On solar that check catches a pallet count that doesn't match the order or an inverter billed to the wrong site. Supplier price changes between bid and order are visible on the material codes, so you see them before the end of the job.
Workflow from the field to the office
The foreman files a daily with the crew, the equipment, photos and the work done that day, like piles driven, rows racked and modules set. That gives you production against the plan every day of the build. It also gives you dated photos when an inspector or the utility asks what was installed and when.
When the crew meets pile refusal, the owner moves an array or the utility asks for a change, the foreman writes a T&M ticket on the daily and the GC or owner's rep signs it on site. It becomes a change order draft for the next pay app. Predrilling and extra trenching get billed as extra work instead of coming out of your margin.
Field time is approved and goes to QuickBooks Payroll with the job and cost code, and certified payroll weeks for public work are laid out from approved time with wage classes. Deductions stay with your payroll company. The PM builds the pay app from the schedule of values with milestones, stored materials and retainage, and sends it from QuickBooks or logs it for the owner's own system.
What the owner sees every month
Each month the PM enters cost to complete on every open job, and it gets approved. The WIP schedule shows over and under billing, which on solar tells you how much equipment you've paid for ahead of the milestone that bills it. The master WIP shows every job together.
Your CEO Report grades gross margin, overhead and net profit before taxes against the published average and the CFOS target for solar at your size. The 13 week cash forecast reads your QuickBooks and your pay apps and marks the lowest week. When a module order is due and a final payment is waiting on the utility, that week is where you'll see it.
Retainage and final milestones are tracked by job through the pay apps, so a payment waiting on permission to operate stays in view. You can ask Claude or ChatGPT about your own jobs, like which arrays are over budget on pile driving. The answer is read only and limited to what your sign in allows.
Solar cost codes, matched to QuickBooks
Each group below is one set of cost codes in CFOS. Bills, time and equipment post to them. QuickBooks keeps the books underneath, so your bookkeeper sees the same numbers.
| Cost code group | What goes on it |
|---|---|
| Engineering, permits and interconnection | Design, stamped drawings, permit fees, utility applications and study fees. |
| Modules | Solar modules, freight and stored material, tracked by job. |
| Inverters and electrical equipment | Inverters, combiner boxes, transformers and switchgear, including deposits. |
| Racking and trackers | Fixed tilt racking or tracker material and install labor. |
| Piles and foundations | Pile driving, predrilling for refusal, ballast and pile testing. |
| Module install | Labor to set and fasten modules, costed per watt installed. |
| DC electrical | String wiring, wire management, combiners and bonding. |
| AC electrical and trenching | Trenching, conduit, feeders and the tie-in to the service or the utility. |
| Equipment rental | Pile drivers, skid steers, telehandlers and trenchers charged by the day. |
| Commissioning and inspection | Testing, startup, utility inspection, and return trips for punch. |
How solar contractors do, by revenue
Each row shows the all-trade average, this trade's average and the CFOS target where one is published. These are the numbers your own job costing gets graded against. Net profit is before taxes in every row.
| Revenue | Overhead | Gross margin | Net profit, before taxes |
|---|---|---|---|
| $1M to $5M | 15.1% all-trade average 15% Solar 14.1% CFOS target | 22.1% all-trade average 22% Solar 25% CFOS target | 7% all-trade average 7% Solar 11% CFOS target |
| $5M to $10M | 14.1% all-trade average 14% Solar 13.1% CFOS target | 23.4% all-trade average 23% Solar 26% CFOS target | 9.4% all-trade average 9% Solar 12.9% CFOS target |
| $10M to $25M | 13.1% all-trade average 13% Solar 12.1% CFOS target | 24.6% all-trade average 24% Solar 27.1% CFOS target | 11.5% all-trade average 11% Solar 15% CFOS target |
| $25M to $50M | 12.1% all-trade average 12% Solar | 25.7% all-trade average 25% Solar | 13.7% all-trade average 13% Solar |
Gross margin and overhead come from figures CFMA, Jones Maresca and other sources publish by trade and size. Net profit is computed, not surveyed: net profit = gross margin minus overhead. Nothing comes out for taxes, interest or other income and expense, so it is a before tax figure, on the same basis as CFMA's net income before taxes.
CFMA's 2025 medians are 7.1 percent before interest and taxes and 6.7 percent net income before taxes. Gross margin minus overhead leaves out interest and other income and expense, so a figure here can come in a little above or below a reported net income on the same business.
Above the $10M to $25M band the gross margin and overhead rows are a modeled extension of the same curves. They have not been reconciled against the licensed CFMA Benchmarker, so read those bands as a model and not as a survey result.
Problems solar contractors write to us about
Get on the list for the day it opens
30 days free, a 90-day money-back guarantee, and cancel anytime.
We email you when CFOS for QuickBooks opens, plus a few updates before then. Your address stays with Run On CFOS. One click unsubscribes.
30 days free, a 90-day money-back guarantee, and cancel anytime. It opens January 2027. We email you the day it opens.
What solar contractors ask
Can I see cost per watt by activity?
Yes, if piles, racking, module install and wiring each have a cost code. Approved time and equipment daily rates put the actual cost on those codes. When the job closes, you divide by the system size and compare each activity to what you bid.
How do I bill modules and inverters before they're installed?
Where the contract allows it, delivered equipment goes on the schedule of values as stored material or as its own milestone. Retainage is applied by line. The WIP schedule then shows how much of the equipment cost you're still funding.
What about the final payment waiting on the utility?
Final milestones and retainage are tracked by job through the pay apps, and the 13 week cash forecast reads from them. You'll see what's waiting and on which job. Then you can plan payroll around the date the money really comes in.
How is pile refusal handled?
The foreman writes a T&M ticket on the daily for the predrilling or extra foundation work, and the GC or owner's rep signs it on site. It becomes a change order draft for the next pay app. The photos stay with the ticket.
Does CFOS replace QuickBooks Online for a solar contractor?
No. CFOS works on top of QuickBooks Online and reads from and writes to it. QuickBooks keeps your books, and you still pay Intuit for it separately.
- Job costing software that runs on QuickBooks
- One price. Every module. Priced by your revenue.
- Use all of it, or just the part you need
- Job costing software that runs on QuickBooks
- One price. Every module. Priced by your revenue.
- Use all of it, or just the part you need
- Solar benchmarks
QuickBooks is a trademark of Intuit Inc. Run On CFOS isn't affiliated with Intuit.