Beancount.io LogoBeancount.io

Solar Installer Bookkeeping: ASC 606, Section 48E ITC Adders, and Life After the Section 25D Residential Sunset

13 min readMike ThriftMike Thrift
Solar Installer Bookkeeping: ASC 606, Section 48E ITC Adders, and Life After the Section 25D Residential Sunset

A residential solar EPC closed 412 systems in March 2026 — its biggest month ever — and still ended Q1 cash-flow negative. The owner stared at his books in disbelief. Revenue was up 38 percent year over year. Sales commissions and module deliveries had drained working capital in the first ten days of every month. Worse, half the homeowners who signed in February didn't qualify for any federal tax credit at all because Section 25D had quietly sunset on December 31, 2025, and his sales team was still pitching it.

This is the new reality of the U.S. solar industry. The Section 25D residential clean energy credit — the 30 percent homeowner credit that drove a decade of rooftop growth — expired at the end of 2025. The Section 48E commercial investment tax credit survives with its full 30 percent base rate plus 10 percent domestic content and 10 percent energy community adders, but only through projects that begin construction by July 4, 2026 under safe harbor rules. And the third-party-ownership model — PPAs and leases from Sunrun, Sunnova, Mosaic, and SunPower's successor entities — is now the only way most homeowners can capture any federal tax benefit at all, because the tax credit belongs to the system owner, not the resident.

For solar EPC contractors, the bookkeeping implications are immediate. Revenue recognition under ASC 606 has to track distinct performance obligations across design, permit, install, and inspect. The IRA tax credits flow to different parties depending on whether the system is cash-purchase, loan-financed, leased, or PPA. Job-cost ledgers have to capture modules, inverters, racking, crane and boom-truck labor, and roof-penetration callbacks. Workmanship warranty reserves have to be funded per kilowatt installed, not as a vague percentage of revenue. If you run a solar installation business, the next twelve months will reward operators with clean books and punish those without them.

This guide walks through how to set up a solar EPC's general ledger to handle the 2026 reality.

Recognizing Revenue Under ASC 606: Four Distinct Performance Obligations

A residential rooftop solar contract bundles activities that, under ASC 606, are not necessarily a single performance obligation. The standard requires you to identify each promise the customer can benefit from separately, then allocate the transaction price across those promises and recognize revenue as each one is satisfied.

For a typical EPC contract, the four distinct performance obligations look like this:

Design and engineering. Site survey, structural analysis, electrical schematics, interconnection application. This is satisfied at a point in time — when the stamped engineering package is delivered to the customer or the permit office. Allocate roughly 5 to 10 percent of the transaction price here.

Permit acquisition. Filing fees, plan check coordination, AHJ correspondence. Recognized over time as the permit moves through approval, or at the point when the building permit is issued. Allocate 3 to 5 percent.

Installation. Module, inverter, racking, conduit, and electrical labor. This is the largest performance obligation. Under ASC 606, installation is usually recognized over time using an input method (labor hours expended versus total budgeted) because the customer simultaneously receives and consumes the benefit, and the contractor's work creates an asset the customer controls. Allocate 75 to 85 percent.

Inspection and PTO. Final inspection, utility interconnection, permission-to-operate sign-off. Recognized at a point in time when the system is energized. Allocate 5 to 10 percent.

The aggressive shortcut some installers take — recognizing 100 percent of revenue at PTO — works for small jobs and cash-basis tax reporting but breaks down for accrual-basis books, lender covenants, and any contractor doing more than $25 million in annual revenue (the IRC Section 460 small contractor threshold). Recognizing all revenue at PTO also distorts month-end margins because installation costs hit the period when crews swing hammers, not when the utility flips the meter.

Cash, Loan, PPA, and Lease: Four Revenue Models, Four Sets of Journal Entries

The transaction structure dictates whose books carry the system, who claims the tax credit, and how revenue flows.

Cash purchase. The customer pays the EPC directly. Revenue recognition follows the four-obligation model above. The customer claims any available residential tax credit on Form 5695 — but post-2025, Section 25D is gone, so this category is now confined to commercial customers claiming Section 48E and to the dwindling pool of residential homeowners who safe-harbored equipment before December 31, 2025.

Loan-financed purchase. The customer borrows from a third-party lender (Mosaic, Sunlight Financial, GoodLeap) and pays the EPC directly from loan proceeds. The EPC's revenue recognition is identical to cash purchase. The dealer fee paid to the lender — typically 15 to 30 percent of the system price for the longest-term, lowest-APR loans — is a contra-revenue or selling expense, not a discount to the transaction price. Record it as a separate operating expense to keep gross margin transparent.

Power Purchase Agreement (PPA). A third-party owner (TPO) buys the system, owns it on their books, and sells the generated electricity to the homeowner. The EPC is a contractor to the TPO, not to the homeowner. Revenue is recognized when the system is delivered and PTO is achieved. The TPO claims Section 48E because they are the system owner. The EPC may receive origination fees from the TPO for customer acquisition, which are recognized when earned per the master installation agreement.

Operating lease. Similar to PPA, but the homeowner pays a fixed monthly lease payment rather than a per-kWh rate. Accounting from the EPC's perspective is identical to PPA. The TPO accounts for the lease under ASC 842.

The critical bookkeeping discipline: never co-mingle TPO project revenue with direct customer revenue in a single GL account. TPO contracts have different cash collection cycles (the TPO pays within 30 to 60 days of PTO milestones), different warranty terms (often passed through to the EPC for the first two to ten years), and different audit treatment. Use separate revenue accounts and separate accounts receivable sub-ledgers.

Section 48E in 2026: The Tax Credit Stack the Commercial EPC Has to Document

For commercial solar projects — the C&I rooftop installer, the carport developer, the small utility-scale builder — Section 48E is still the centerpiece. The 30 percent base rate applies to projects that meet prevailing wage and registered apprenticeship requirements. On top of that base, two bonus adders can stack:

Domestic content adder (+10 percent). Requires that 100 percent of structural steel and iron be U.S.-produced, and that a stepped-up percentage of manufactured product components (40 percent in 2025, 45 percent in 2026, climbing toward 55 percent by 2027) also be U.S.-produced. Treasury Notice 2025-08 updated the elective safe harbor tables, simplifying how installers document compliance without doing full bottom-up cost analysis.

Energy community adder (+10 percent). Applies to projects located in a brownfield site, a coal closure area, or a census tract with historic fossil-fuel employment above defined thresholds. The IRS publishes annual qualifying maps in Notice 2024-30 and subsequent updates.

For the EPC's books, the credit itself is not your asset — it belongs to the project owner. But you do need to capture and document the credit-supporting data:

  • Manufacturer certifications for domestic content compliance, stored against each project file
  • Project address geocoded against the energy community qualifying maps
  • Prevailing wage payroll records for every laborer who touched the project, retained per IRS rules for the recapture period
  • Apprenticeship ratio documentation showing the required percentage of total labor hours performed by registered apprentices

EPCs that bundle "ITC pass-through" or "tax credit guarantee" language into customer contracts must reserve for the recapture risk — if the IRS later disallows an adder for failed documentation, the customer's loss becomes the EPC's liability under indemnity clauses. A separate balance sheet reserve, funded at 2 to 5 percent of credit-affected revenue, is reasonable.

Job Costing: The Cost Ledger That Tells You Which Projects Make Money

Solar EPC margins compressed to 8 to 12 percent in 2025 from the 18 to 22 percent of the pre-IRA era. The contractors who survive at single-digit margins are the ones whose job-cost ledger is precise enough to identify a money-losing project before the final invoice.

Set up your cost-of-goods-sold structure to capture, per project:

Direct materials. Modules (per watt), inverters (string vs microinverter), racking and mounting hardware, balance-of-system electrical components, monitoring equipment. Use a job-cost code structure that lets you tie a specific PO line item to a specific project. The free-issued modules sitting on the warehouse floor at month-end belong to projects in progress and should be capitalized to work-in-process inventory, not expensed.

Direct labor. Installer crews, electricians, project managers — but tracked by labor type. A licensed master electrician hour costs you three to four times what a ground-mount laborer hour costs. Mix matters.

Equipment allocation. Crane time, boom-truck time, scissor-lift rentals. These are most accurately captured with a per-hour internal rate (including fuel, depreciation, and operator time) and allocated to projects based on the actual hours each project consumed. Don't expense crane fuel to overhead — it's a direct project cost.

Permits and fees. Per-project AHJ fees, utility interconnection fees, engineering stamps, HOA approvals. These should flow to job cost, not to a general office expense bucket.

Subcontractor costs. Roofers, structural reinforcement, electrical sub-tier installers. Capture each subcontract invoice against the right job.

When all of these line items roll up by project, you get a true project gross margin — and you can quickly identify the customer types, the system sizes, the AHJ jurisdictions, and the seasonal periods where margin disappears.

Workmanship Warranty: Why a Per-Kilowatt Reserve Is Better Than a Revenue Percentage

The installer's workmanship warranty — typically 10 to 25 years for premium installers — is the single largest unbooked liability on most solar EPCs' balance sheets. Module and inverter warranties live with the manufacturer; workmanship and labor coverage live with the installer.

The wrong way to reserve: 1 to 2 percent of revenue, plugged into the books because it sounds reasonable.

The right way: a per-kilowatt-installed reserve, calibrated against actual callback experience.

Build the model from your service history:

  1. Pull every truck roll from the last 36 months and tag each by root cause (workmanship, manufacturer defect, environmental damage, customer behavior).
  2. For workmanship-cause truck rolls, total the labor hours, materials, mileage, and any subcontract costs.
  3. Divide by total kilowatts installed in the same period to get a per-kW callback cost.
  4. Add a forward-looking premium for module aging, racking corrosion, and inverter mid-life failures (typical curves show a callback spike at years 8 to 12).
  5. Multiply by current-year kilowatts installed to get the reserve addition.

Most installers find their honest per-kW workmanship reserve runs $40 to $90, depending on roof type mix, regional weather, and crew tenure. That is materially higher than the 1 percent of revenue placeholder most QuickBooks files carry.

Sales Tax, Use Tax, and the Module Pass-Through Trap

Solar materials are subject to sales tax in most states unless the system qualifies for a specific energy exemption (varies by state). The trap: the EPC who buys modules tax-free under a resale certificate, installs them on a customer's roof, and treats the contract as a "real property improvement" — common for residential rooftop — generally owes use tax on the materials at the point of installation.

Set your books up to:

  • Track each material purchase by whether sales tax was charged at point of purchase
  • Identify each installation by state, county, and city for sales/use tax sourcing
  • Calculate self-assessed use tax monthly on materials installed in jurisdictions where the EPC paid no tax at purchase
  • Track customer-billed sales tax separately as a liability, not as revenue

Multistate EPCs need a sales tax engine (Avalara, TaxJar) wired to the job-cost system. The penalty for getting this wrong is back tax plus interest plus a 10 to 25 percent penalty applied to several years of audit exposure.

Cash Flow: Why High Revenue Solar Companies Still Run Out of Money

The mismatch is structural. The EPC pays for modules at delivery (often net-30 from the distributor). Crews and subcontractors get paid weekly or biweekly. But customers pay in milestones: 10 percent at contract, 30 percent at material delivery, 50 percent at installation completion, 10 percent at PTO. The PTO milestone can sit four to twelve weeks after the install crew leaves the site, waiting on the utility.

For TPO project work, the lag is longer: the TPO settles 30 to 60 days after PTO, and only if every documentation deliverable is in their system in the format they require.

The bookkeeping discipline that saves cash:

  • Run a weekly aged-WIP report tagged by milestone-due-but-not-billed
  • Hold a separate "PTO pending" balance sheet account that tracks installs energized but unbilled, with a weekly drill-down on each project's blocker
  • Bill milestones the same day the trigger is met — not on a monthly close cycle
  • Reconcile every dealer-fee deduction from loan funder remittances against the underlying loan-by-loan funding schedule

Accurate, clean bookkeeping is the difference between knowing on Tuesday that Friday's payroll is at risk and finding out on Friday at the bank.

Reading the KPIs: Cost Per Watt Installed, Gross Profit Per Kilowatt, Cash Conversion Cycle

The two industry-benchmark metrics SEIA member companies track are:

Cost per watt installed. Total installed cost (materials + labor + equipment + permits) divided by system DC watts. For residential, the 2026 benchmark range is $2.40 to $3.30 per watt; for commercial small-system, $1.80 to $2.50; for commercial mid-size, $1.40 to $1.90. Trending higher than your peer group means inefficient sourcing, labor, or both.

Gross profit per kilowatt. Revenue minus direct costs (excluding overhead and SG&A), divided by kilowatts. This number is what tells you whether you can afford to take on incremental volume. EPCs operating at $200 to $400 of gross profit per residential kilowatt installed are healthy. Below $150, you are subsidizing your customers.

A third metric — cash conversion cycle (days from material purchase to customer payment) — is the operator's number. Anything over 60 days for residential cash/loan deals means working capital constraint is throttling your growth.

These KPIs only work if the underlying ledger is clean. A job-cost system that bundles project labor with overhead labor produces a fake cost-per-watt. A revenue ledger that recognizes all milestones at PTO produces a lagged margin picture. The fix isn't more dashboards — it's a chart of accounts and a transaction-coding discipline that captures the right data in the right buckets at the source.

Keep Your Solar EPC's Books Ready for the 2026 Inflection

The residential market just lost its tax credit. The commercial market has a sprint to July 4, 2026 to safe-harbor as many projects as possible at full adders. TPO providers are about to own most new residential megawatts. The EPCs who navigate this transition with clean books — knowing per-project margin, per-kilowatt warranty reserve, and per-day cash position — will be the ones still hiring crews in 2027.

Beancount.io provides plain-text accounting that gives solar contractors complete transparency and control over their financial data — every transaction in a text file, every change in version control, no black boxes between you and the numbers. Get started for free and see why operators in capital-intensive trades are switching to plain-text accounting, or explore the Fava dashboard to visualize your job-cost ledger and project gross margins in real time.