OOneLine Studio
Five checks · one address · real output

We ran all five on one house. Here is exactly what came back.

Nothing below is illustrative. Every figure is the actual output of a real run against a real roof, on the date shown.

1247 Blackthorn Ln, Naperville, Illinois
7 roof planes modelled · 34 panels · Google Solar imagery dated September 2023

SunLock™

Live

Three strings on this roof. All three drop out of MPPT range at some point in the year — and no fixed-condition calculator would have said so.

A string calculator evaluates one assumed worst-case moment. This evaluates the year: every hour, every month, on this roof's own shade and cell temperature.

POST /api/site/string-compliance34 panels · 3 strings
S1 · 12 modulesmax Voc 467 V at Sep 14:00
   MPPT dropoutyes · 5 kWh/yr lost
S2 · 11 modulesmax Voc 426 V at Aug 12:00
   MPPT dropoutyes · 15 kWh/yr lost
sealed shade basis054ea6d767f54d4e…
Two strings silently stop producing during specific hours in specific months. The design passes every conventional check.

RidgeGuard™

Live

Fire setbacks cost this roof 26 modules — about a third of everything that would otherwise fit.

Each plane's own pitch selects the rule. This roof has seven planes and they are not all the same, so a whole-roof assumption gets it wrong.

POST /api/site/fire-setbacks7 planes · IFC 1204.2.1.1
modules on the bare roof80
modules after setbacks54
roof still usable69%
plane 1 · 12.6° (2.7:12)steep — 3 ft ridge setback
plane 2 · 9.8° (2.1:12)steep — 3 ft ridge setback
−26 modules, found before submission

LoadBind™

Live

Seismic Design Category B. A prescriptive attachment schedule is fine here — and the tool says so rather than sending you to an engineer by default.

Design values come from the USGS ASCE 7 service for this exact coordinate, then bind to the array actually drawn: its weight, its coverage, and the steepest plane it sits on.

POST /api/site/structuralUSGS design-maps · ASCE 7-16
Seismic Design CategoryB
Sds / Sd10.143 / 0.106
array as a load24 modules · 1,080 lb over 422 sq ft
steepest plane43.4°
wind & snownot estimated — see note
Straightforward. Nothing here that normally attracts a structural correction.

What it will not do: ASCE wind speeds and ground snow loads sit behind an account we do not hold, so LoadBind reports them as unavailable and tells you to look them up. A structural figure that is guessed is worse than one that is missing, because a missing one gets checked.

TimeFence™

Live

The imagery under this roof's shade study is 35 months old, and the roof is 31% obstructed. Both together mean: re-run it.

Age alone is not risk. An unobstructed roof carries an old basis safely, because nothing near it would change. An obstructed one is where a small change moves the answer.

POST /api/site/imagery-currencyGoogle Solar · HIGH quality
imagery capturedSeptember 2023
age35 months
midsummer obstruction31% — high exposure
basis digesteceded97764a4581…
RESTUDY — this shade basis should be re-run before you rely on it.

GridMatch™

Needs a utility data source

This one is built and not yet switched on — and it says so instead of naming the biggest utility in the state and hoping.

Territories interleave. A municipal utility can serve three streets inside an investor-owned utility's county, and the interconnection limit moves with it. Resolving that needs a territory source we do not currently hold a key for.

POST /api/site/interconnectionnot configured
statusneeds a utility-territory source
reasonthe shared demo key is rejected
fixset one key — no other change
A confidently wrong utility name is worse than none: it produces a design that passes its own check and fails the only one that counts.

Four of these run today, on your address.

They live under Site Survey. The free grader needs no account at all — upload the last set you submitted and see what your plan checker will find.

Grade a plan set free