← Back to Insights

Operations

Solar Milestone Payments and Clawback Risk

Written by:Better SoftwareBetter Software TeamUpdated 11 min read
Solar Milestone Payments and Clawback Risk

Quick Answer

Solar milestone payments in a TPO deal arrive in stages, with most of the money released when the install package is approved and a smaller holdback released at permission to operate. An installer can manage the cash risk with one internal milestone model, a clawback clock that counts days to the funder deadline, rejection reason codes, and five weekly numbers that show where cash is stuck.

If you run a residential solar installation business, the hard part is no longer just getting the job sold or installed. It is knowing where the money sits on every open job, which funder gate it is waiting on, and when a missed PTO deadline could claw back the install payment.

That is what solar milestone payments are really about in 2026. For most TPO-funded jobs, the contract does not pay at signing. Most of the money arrives after the install package is approved, and a smaller holdback arrives at PTO, short for permission to operate. The practical job for the owner is to track each project against one internal milestone model, one clawback clock, and one weekly review that shows cash at risk.

In this guide we explain how to normalize the labels, what the milestones mean, and how to turn a messy mix of funder portals and spreadsheets into one funding view you can actually manage.

Solar Milestone Payments in One Internal Model

Funders use different labels for the same basic sequence. Internally, we map every job to one gate model, even if the funder calls the steps M0, M1, M2, or something slightly different.

The details vary by contract and funder. The pattern is usually the same. Contract signing creates the job, install approval releases most of the dollars, and PTO releases the rest or confirms the final holdback.

Funder labelInternal gateWhat it usually meansEvidence you may need
M0Contract executedJob is signed, but no meaningful cash should be expected yet in post-25D TPO structures.Signed agreement, customer details, system design
M1Install approvedMain payment release after the install package clears review. Some newer funders use M1 for this stage.Photos, as-builts, signed completion docs, utility and permit items
M2PTO receivedFinal holdback or settlement release after the utility grants permission to operate.PTO letter, interconnection approval, final utility record
M3Post-PTO settlementLess common, but some programs keep a later true-up, reserve release, or dealer fee step.Depends on the contract

Palmetto’s 2026 help articles describe M1 and M2 submission workflows, which is a good example of how funder labels can differ from the installer’s own language. R11’s TPO milestone materials describe the same underlying economics, which are little or nothing at contract, most value after install, and a holdback tied to PTO. See Palmetto’s M1 and M2 submission guidance and R11’s TPO milestone payment overview.

That is why a normalized internal model matters. If your CRM says the job is “in progress” while the funder portal says “M1 rejected” and finance is waiting on a PTO holdback, you do not have one status. You have three different versions of the truth.

Where the Money Actually Waits in a Solar Job

Most delays happen in three places.

  • Install package review lag. The job is physically complete, but the funder has not approved the evidence package yet.
  • Rejection and resubmission. Something in the package is incomplete, inconsistent, or outside the approved design, so the clock stops until the issue is fixed.
  • PTO on the utility clock. The installer may be done, but the utility still controls the last step.

That matters because each delay has a different owner. A missing photo, a mismatched serial number, or an as-built that does not match the approved plan is usually fixable inside your operation. A slow utility PTO is not. If you do not split those causes, you will overestimate how much of the delay is actually under your control.

For a working report, we use simple states such as submitted, under review, rejected, resubmitted, install approved, PTO pending, and paid. Then attach the reason code to every rejection. The reason code is where the process problems show up.

The Clawback Clock Is a Live Metric, Not a Footnote

In many TPO programs, the install payment is not truly safe until PTO lands inside the funder’s deadline window. If PTO slips past that window, the installer can lose some or all of the held amount. That is the clawback risk.

The exact timing depends on the contract and funder. The operational point is simple. We want every funded job to carry a deadline date, a days-remaining field, and an owner for the blocker.

A useful definition is this.

Clawback clock = funder deadline date minus today.

You can also track age from install to today, then compare it with the contract window. For example, if the contract allows 120 days from install to PTO and a job is already 94 days past install, you are inside the danger zone even if the utility process is still moving.

Sort jobs by days remaining, not by install date alone. Then split them into two groups:

  • Utility-side blockers include interconnection review, inspection backlog, utility corrections, and PTO issuance.
  • Installer-fixable blockers include missing docs, bad photos, form errors, plan mismatches, and customer signature gaps.

The point of the clawback clock is not just to warn you. It tells you where a repackaged task, a call to the utility, or a same-day office fix can protect cash.

Rejections Are Data, Not Just Noise

If you only track if a job was rejected, we think you miss the business lesson. The useful question is which funder rejects which package type, for which reason, and how often first-pass approval succeeds.

Track each rejection with at least these fields:

  • funder
  • job ID
  • milestone stage
  • rejection date
  • reason code
  • who fixes it
  • resubmission date
  • outcome

The sources linked above, plus common funder guidance, point to a few recurring causes, namely photo packages that do not meet requirements, as-builts that diverge from approved plans, and interconnection application errors. Those are useful because they are usually fixable through process, training, or a better checklist.

Once you capture the reason codes, calculate first-pass approval rate by funder and by flag type. If one financier rejects a high share of jobs for photo issues, that is not just a portal problem. It is a coaching problem, a field QA problem, or both. If another funder is strict on as-builts, your design-to-install handoff may need tighter controls. For a related look at the same handoff problem, see where solar proposal tools stop fixing the handoff.

The Five Numbers to Review Every Week

You do not need a large dashboard to start. You need five numbers that show if funding is moving and if cash is getting stuck.

  • Installed but unfunded dollars. Jobs that have passed install but have not yet cleared the main payment gate.
  • Submitted and awaiting review dollars. Packages sitting in a funder queue.
  • Rejected and open dollars. Jobs that need rework before the next submission.
  • PTO pending by age band. Separate jobs at 0-30, 31-60, 61-90, and 90+ days since install or since M1, depending on the contract model.
  • Jobs inside 30 days of clawback. The highest-priority cash risk.

Run that review for the whole company, then break it down by funder, by package type, and by office or crew if the data is clean enough. The goal is not reporting for its own sake. It is to answer one question. Where is cash floating, and what can we do this week to move it?

A 30-minute weekly agenda is enough:

  • Review the jobs inside the clawback window.
  • Look at the rejected jobs and the top reason codes.
  • Check which funder queues are aging.
  • Call out any PTO blockers the team can actually influence.
  • Assign owners and due dates for the highest-value fixes.

What Your CRM Tracks Well and What It Usually Misses

Most CRMs and project tools are good at stages, tasks, and documents. They are less useful when you need to normalize funder-specific milestone labels, compute a clawback clock, and compare rejection rates across financiers.

That is because the CRMs are usually job-centric, while funding is gate-centric. A project manager wants to know if the site survey is done. Finance wants to know if M1 cleared, if PTO is pending, and how much cash is at risk if the utility drags.

Funder portals make the problem worse because each one is a separate silo. You end up copying the same job into a CRM, a portal, and a spreadsheet, then reconciling them by hand.

There is one architectural point worth making for operators who already run sales, install, and service in separate systems. The funding record is most useful when it sits on the same data as the sales and install record. That is the kind of operating software we build for energy businesses, including solar installers like Sunny Energy, and it is why the funding model should be part of the core job record rather than a side spreadsheet. See our energy software development page. We also cover why a CRM misses commission clawbacks in why your solar CRM cannot tell you which commissions to claw back.

Spreadsheet First, Point Tool Next, Custom Build Last

For many installers, we think a spreadsheet is the right starting point. It is cheap, visible, and fast to change. If you are managing a modest number of concurrent TPO jobs and the team can update it every week, a spreadsheet can carry the basics, which are job ID, funder, gate, deadline, rejection reason, and cash amount.

A point tool makes sense when the manual work starts to consume office time or when the team cannot keep the data current. Tools such as R11 exist for milestone payment tracking, and that can be enough if your process is close to the tool’s model.

Build something custom when at least one of these is true:

  • you work across multiple funders with different milestone rules and labels
  • your operating data needs to connect funding with sales, install scheduling, and service
  • you finance cash flow internally and need a cleaner view of exposure
  • the office team is already spending too much time reconciling portals by hand

The threshold is not a specific job count. It is if the cost of bad visibility is larger than the cost of maintaining a better system. If you cannot answer, in one screen, how much money is installed but still unfunded, it is time to tighten the model.

How to Set Up the Per-Job Funding Record

Keep the record short enough that people will actually use it. The useful fields are:

  • job ID and customer name
  • funder and contract type
  • internal gate (M0, M1, M2, or M3)
  • funder label and submission date
  • install date and PTO date target
  • deadline date for clawback risk
  • amount expected at each gate
  • current status
  • last rejection reason
  • next action owner

If a field does not change a decision, leave it out. The aim is not to build a database for its own sake. It is to give the owner and finance lead one place to see the state of cash by job.

If you adopt only one change this week, make it the clawback clock. Once every open job has a deadline and an owner, the other parts of the report become much easier to manage. That is the habit we would start with for solar milestone payments. To see how we work on this kind of problem, start with Better Software.

Frequently Asked Questions

What Does M1 Mean in Solar?

M1 usually means the first major funding milestone after installation, but the exact label depends on the funder. In many TPO programs, we see it as the stage where the install package is approved and most of the money is released.

What Is M0, M1, M2, M3?

These are milestone labels some funders use to describe the funding sequence. We map contract signed to M0, install approval to M1, PTO to M2, and any later settlement or reserve release to M3. Contracts vary, so always map the funder’s labels to your own internal gates.

What Is the Difference Between NTP and PTO?

NTP means notice to proceed, the point when a project is authorized to move forward. PTO means permission to operate, the utility approval that lets the system operate on the grid. We think of NTP as starting the work and PTO as ending the utility side of the process.

What Happens If PTO Misses the Deadline?

It depends on the contract, but the risk is that some of the install payment can be clawed back or delayed. That is why we track the deadline and the blocker owner for every funded job, so the person who can fix the blocker sees it first.

What Does TPO Stand for in Solar?

TPO stands for third-party ownership. In this model, a financier or third party owns the system, and the installer is paid through milestone releases instead of at full contract signing. We plan cash around those releases, not around the signing date.

About the author

Better Software

Better Software Team

Product and engineering team

Better Software Team is the product and engineering team at Better Software. We build custom software for established businesses in healthcare, energy and finance.