Run the service company without the office.
A traditional solar service company carries a front desk to take the call, a dispatcher to find a technician, and a service manager to build the schedule, chase timesheets and write the invoices. This platform does all three, around the clock, for every job.
It is the software we run our own California service on. Service companies in every other state can license it and switch it on for their own crews, from $1,900 a month.
In Imperial or San Diego County and just want your own system looked after? That is autosolarservice.com, $39.99 a month.
- Receptionist
- $54,316
- Dispatcher
- $71,936
- Service manager
- $114,120
- Office, per year
- $240,372
- Platform, Starter
- −$22,800
- Difference, per year
- $217,572
One of each role at the US median wage (BLS, May 2025) plus employer benefits and payroll costs (BLS, June 2026). Your own numbers go in the calculator below.
What your office costs, and what replaces it
Put in your own headcount and pay. Defaults are US median wages from the Bureau of Labor Statistics. The license tier is picked from your technician and platform counts.
$0saved per year
- Per month
- $0
- Per technician, per year
- $0
- Office cost the license replaces
- 0×
Pay: BLS Occupational Employment and Wage Statistics, May 2025, US median annual wage. Receptionists and information clerks $38,010; dispatchers except police, fire and ambulance $50,340; first-line supervisors of mechanics, installers and repairers $79,860.
Benefits and payroll: BLS Employer Costs for Employee Compensation, private industry, June 2026. Wages $32.82 of $46.89 an hour, so benefits and payroll costs add 42.9% on top of pay.
This is arithmetic on your inputs, not a promise of results.
Every desk in the office, automated
Takes the call that something is wrong, works out which system and which customer, writes it down, and puts it on somebody's list.
The monitoring platform reports the fault itself. Every alert is logged, translated into one of 64 fault codes, matched to the customer's site and opened as a work order, with nobody picking up a phone. One condition arrives in five vendor dialects; the platform reads all of them.
Finds out who is free, who is closest, who is already buried, calls them, and calls the next one when the first does not answer. Nights and weekends, somebody is on call for it.
The zone's primary technician first, then the best free backup by drive time and workload inside your distance limit, then the earliest slot that fits. Critical faults go out at any hour; the rest wait for business hours. A job not accepted in time is reassigned on its own.
Builds the schedule, reconciles timesheets on Friday, works out which parts went on which job, writes the invoices and sets up every monitoring contract.
The schedule builds itself as work arrives. The technician's phone crossing the site geofence starts and stops the labor clock. Materials are confirmed before a job can close. The invoice is priced from your rates and sent through Stripe, and monitoring subscriptions bill every month on their own.
What still needs a person: the few invoices the system holds back because it cannot price them confidently.
Polling adapters pull from the monitoring platform on a schedule, and anything else posts in through a webhook: SCADA, an APM platform, your own middleware.
Alerts arrive when they are raised, not when someone checks.
Every vendor string resolves to one of 64 SSA codes across 9 categories, carrying severity, dispatch priority, expected labor hours and the parts that belong on the truck.
A code SSA has not seen lands in UNK and waits on an owner to map it, once.
Zone primary first. If they are unavailable, the best free backup by travel time plus current load, inside your own distance limit. Then the earliest slot that fits.
Critical goes out at any hour and reflows what it clashes with. Everything else waits for business hours, because waking a technician for a soiling alert is how you stop having technicians.
The technician's device crossing the site geofence opens and closes the labor clock. Trip fee, labor rounded up to the hour at your company rate, after-hours doubled, parts at list.
Anything the system cannot price confidently is held as a draft for a human, never billed on a guess.
Trip fee, labor rounding, the after-hours multiplier and which severities may wake somebody are settings, not our opinion. Fourteen of them, per organization.
Pick a fault and follow it down the page
Everything below this line is computed live from the real code table, the real billing rules and real zip geometry, against a sample fleet in Yuma. Choose any row and the rest of the page re-runs for it.
SSA
title
- Severity
- C
- Dispatch priority
- 1
- Flat labor
- 2.0h
Distances come from zip centroids, 33,791 of them, at your own average travel speed. A technician further out than your backup radius is never considered, so the one who is 144 miles away does not get woken.
Nobody approved any of this. There is no queue waiting for a dispatcher to arrive at eight.
The clock nobody has to remember to start
Labor is not typed in by anybody. The technician's device crossing the geofence opens and closes the session, and those two timestamps are what the invoice bills.
The job cannot be closed until materials are confirmed: standard parts pre-filled from the code, extras added by hand, or an explicit "none used". The mobile API for all of this is live. The technician app build is not shipped yet, which is the next piece of work, not a claim on this page.
One trip fee per visit, never multiplied. Labor split by the clock in your own time zone, rounded up to the hour with a one hour minimum, billed at your company rate, after-hours doubled. Parts at list price. Tax on the subtotal.
An invoice with no clock data, an unpriced material, or a session over twelve hours is held as a draft and never sent.
What it reads, and what it costs
What your customer pays is the arithmetic above, with your numbers in it.
What the platform costs you is published below: three tiers, priced by technician seats and connected platforms, never by monitored systems, and never a cut of your monitoring revenue.
License pricing
Priced by technician seats and connected monitoring platforms. Monitored systems are never metered, there are no per-fault fees, and we take no cut of the monitoring fee you charge your customers. Licenses are for service companies outside California. Onboarding is by conversation today; there is no self-serve signup.
$1,900/ month
- Technicians
- up to 10
- Connected platforms
- up to 3
- Monitored systems
- unlimited
- Scheduled polling adapters and the signed webhook lane
- The full 64-code fault taxonomy and 51 shipped vendor mappings
- Zone-based auto-dispatch with backup ranking, SMS and push
- Business-hours slotting, after-hours only for severities you choose
- Geofenced labor clock and automatic invoice drafts, sent through Stripe
- Email support
$4,900/ month
- Technicians
- up to 35
- Connected platforms
- up to 8
- Monitored systems
- unlimited
- Everything in Starter
- Live dispatch board with dispatcher drag-override
- Per-customer monitoring-fee subscriptions billed through Stripe, at the rate you set
- Priority support
- Published repair price list for your customers planned
$9,900/ month
- Technicians
- unlimited
- Connected platforms
- unlimited
- Monitored systems
- unlimited
- Everything in Growth
- Adapter prioritization for the platforms your fleet runs on
- Onboarding and data migration support
- A direct line to the people building it
- White-label portal planned
- Public API planned
Built for fleets across states
For regional and national O&M companies with hundreds of technicians. Two of these are available now; the rest are committed roadmap and marked that way.
No technician or platform caps. Monitored systems are never metered on any tier.
Tell us which monitoring platforms your fleet runs on and those adapters are built next.
Separate boards per region, one set of reports.
Your brand and your customer experience, on this infrastructure.
Pre-approved repair price lists managed across many contracts.
Alerts, jobs and invoices into your ERP, CRM or field service tools.
If you run a large fleet, talk to us now. Early licensees decide which adapters and features get built first.
Who it is built for
These are the operations the product was designed around. The platform has no outside licensees yet, so no results are claimed here.
Eight hundred home systems across a metro area, all on Enphase. A coordinator watches the portal and works the phones, and a critical inverter fault can sit for hours.
The platform reads each alert, gives it a code, a severity and a labor estimate, and sends the nearest available technician, with every step timestamped so response time becomes a number you can manage.
A hundred and twenty rooftop sites with same-day response obligations for grid and ground faults.
Critical codes jump the queue and go out at any hour, the technician gets the fault and the likely parts before leaving, and the labor clock comes from the geofence, so the hours make it onto the invoice.
A portfolio of commercial sites with mixed inverter brands, each with its own alarm vocabulary, where downtime is lost production.
Every vendor string collapses into one set of codes your whole team reads, and anything unmapped waits in one place for a person to map it, once.
Where the build actually is
If you are evaluating a license, evaluate this. As of 27 September 2026.
- doneData model and taxonomy
Row-level security on every tenant table, roles re-checked on the server. 64 fault codes, 51 vendor mappings, 36 catalogue parts, 26 catalogued platforms.
- doneIntake and normalization
Polling adapter framework, signed webhook lane, idempotent on provider and alert ID, unknown codes held for mapping instead of dropped.
- liveZones, auto-dispatch and scheduling
Zone primary, ranked backups inside your distance limit, business-hours slotting, after-hours only for the severities you allow, accept timeouts and reassignment. Running at app.autosolarservice.com.
- liveLabor clock and invoicing
Geofence sessions, confirmed materials, one shared invoice module, review gate for anything it cannot price. Stripe invoices and per-customer monitoring subscriptions.
- nowTechnician mobile app
The mobile API is live and an Android preview build exists. The app is not yet in the stores or proven on a technician's phone in the field.
- nowLive vendor feeds
Every catalogued platform needs developer credentials or partner access from the vendor. None is streaming yet; alerts today come through the webhook lane and a simulated fleet.
- nextHardening and first licensees
Real provider credentials in place of fixtures, monitoring on our own pipeline, then onboarding the first outside operators.
This is the work order you built by picking a fault. It goes with the request, so the first conversation starts from your own equipment rather than from a demo.