Paste a scope narrative, a schedule summary, or a temporary-facilities section. The extraction step reads it for duration, phasing, shift pattern, equipment, and site constraints, then builds the electrical load profile a microgrid can be modelled against — flagging every value it had to infer or assume.
Project narrative
More detail produces a better profile, but a paragraph is enough to start. Schedules, phase durations, equipment lists, and fuel logistics are the highest-value things to include.
Start from
Known inputs Optional
Anything entered here is treated as fact and will not be overridden by inference. Leave blank to let the extraction step infer it from the narrative.
Nothing is sent while you type. Paste coordinates to keep them local, or explicitly use the public lookup.
Power Profile
Every value carries its confidence. Adjust anything you know better than the model did — the load figures drive the whole design, so an hour spent here is worth more than any amount of equipment tuning downstream.
Scenario Lab
Drag assets from the library onto the bus and watch the day run. The demand is the profile you just reviewed — fixed, and unchanged by anything you build here. Every change re-dispatches the full performance period against a right-sized diesel-only baseline.
Report
Dispatch simulated in two-minute steps across the full performance period.
Modelled estimate — not a validated measurement
This report is the output of a simulation. Every figure in it is a modelled estimate produced from stated assumptions about site loads, weather, equipment behaviour, controller logic and fuel logistics, and actual performance will differ. Nothing here is derived from metered performance — not of this project, and not of any other.
It is not an engineering certification, a performance guarantee, or a warranty of fuel consumption, emissions or availability, and it is not a substitute for design by a licensed professional engineer. Do not use it as the sole basis for final equipment selection, procurement, or a contractual commitment without independent verification. Assumptions and their consequences are set out in full under Assumptions & Method.
Tethra Systems · RECON Studio ·
Assumptions & Method
Where the line sits between what a manufacturer publishes and what this tool infers. Read this before citing any figure from this tool in a deliverable.
What the numbers rest on
Every figure in this tool is a manufacturer-published specification or a documented estimate from one. Nothing here is metered. No asset's ratings, fuel curve, efficiency or parasitic draw is derived from telemetry, from a deployment, or from any single project — and the catalog carries no “measured” evidence tier, because there is nothing in it that would qualify.
Where a manufacturer publishes a full load curve, that curve is what the engine burns. Where one publishes fewer points — and most publish one or two — the gap is filled by the source library's named estimators, and each asset records which one was used and the lowest load it was actually observed at. Open any asset's datasheet to see its own provenance.
What is held back
Not every asset in the source library is offered. An independent audit of the library on 29 July 2026 returned a red verdict, and its demonstrated defects are honoured here rather than argued with. 52 records are quarantined and cannot be selected: ten batteries, a hydrogen fuel cell, ten gaseous sets and a petrol set that were each carrying a diesel litres-per-hour curve; a 400 Hz tactical set typed as 60 Hz; a light tower modelled at roughly twenty-six times its published fuel; a record whose US gallons per hour had been read as litres; and every asset on the T3 estimator, which misses its own sole published point in fifteen of twenty-four cases. Each quarantined record keeps the reason on it.
A further 50 assets have no published 60 Hz rating and are not offered either. This tool models a 60 Hz, 480 V theatre. An earlier build derived 60 Hz ratings for those machines by scaling the 50 Hz figure by 1.19; that has been withdrawn. A set turning 1800 rpm is a different published operating point from the same set at 1500 — engine air flow, alternator losses and auxiliaries all move — so a frequency ratio is not a conversion, and no rating here is produced by one. 168 generators remain offerable, every one on a rating its manufacturer publishes at 60 Hz. Five of those are Kohler REOZT4 sets added on 3 August 2026 from the manufacturer's own spec sheet. They matter out of proportion to their number: they are the only machines here whose no-load fuel figure is published rather than extrapolated, and their fuel model is anchored on two measurements — the 0% point and the full-load point — instead of on a line fitted to points at quarter load and above. Two REOZT4 sets already in the catalogue were on that extrapolated fit and have been moved onto the measured one.
What is modelled
Everything else. Your project's loads, the solar contribution and the weather are best-engineering estimates: grounded in published data and stated construction norms, but not telemetry. Every asset figure is either a manufacturer-published specification or a documented estimate from one — there is no third case, and no asset is exempt. The confidence chips throughout the tool mark exactly which is which: Published, Derived or Estimated on an asset's provenance, and Stated, Inferred or Assumed on a figure you supply.
Which controller produced these numbers
Every figure in this tool is produced by one dispatch law: a handbook-derived DEIF PMS behavioural model (AGC 150 with ASC 150 Solar/Storage functions). There is no controller setting to choose, and that is deliberate.
The model represents DEIF's documented load-dependent start/stop power window, spinning reserve, island minimum-running count, cooldown, discharge floor and battery-leading rules. It produces testable predictions for a version-pinned FAT/HIL campaign; it does not establish what an installed panel will do. Firmware, tool and application versions, controller-observed inputs and ordered native events must be captured before any exercised behaviour can be called conformant. No number in this tool has been validated against a metered site, field record or live-controller capture.
An earlier version also offered an idealised law — this tool's own, staging by feasibility with a dwell buffer — presented as a best-possible benchmark. On four 70 kW sets against an 18-month profile it burned 96,299 gal where the handbook-derived profile burns 113,817: 18.2% less in the software comparison, using the same modelled plant. In the model, that gap is attributable to reserve, the minimum-gensets floor and cooldown. It is not measured hardware efficiency and must not be quoted as proof that an identified DEIF firmware build will reproduce either sequence or delta; that remains pending version-pinned capture.
Dispatch and merit order
Each two-minute step serves load in the order solar → grid → generator → battery, and charges the battery from solar surplus → grid → generator. Grid sits ahead of the diesel everywhere it appears, for both serving and recharging, so wherever firm utility capacity exists it is used before a set fires.
The generator starts only when grid and battery together cannot meet demand, or when the pack hits its floor and the grid cannot recharge it. Once running, the model serves load directly and charges the pack toward its ceiling in one sustained block before release. That block is a dispatch assumption, not a claim that every selected charger or firmware build has been observed doing the same. On systems carrying solar the model does not call diesel solely to charge the pack while the sun is up.
Generators stage independently. The controller brings on only the fewest units — or, for mixed sizes, the size-appropriate combination — needed for the moment's demand, each loaded on its own fuel curve. Lumping N generators onto a single curve under-counts partial-load fuel; staging each unit separately is less optimistic and more defensible.
Staging follows the documented DEIF load-dependent start/stop power window. The model adds a set when spare online capacity falls below the start limit and sheds only when a smaller crew would still leave spare capacity above the stop limit. The stop limit sits above the start limit, so the two tests are not opposites and there is a band in which neither fires. That asymmetry is the anti-hunt mechanism represented by this model. The model has no elapsed-condition timer; DEIF does have LDSS start and stop timers at parameters 8004 and 8014. The model also applies a manufacturer-derived minimum plant-run hold as an explicit residual assumption, not as a DEIF LDSS setting.
The packet carries the 10 s / 30 s handbook defaults for 8004/8014, but they are below the model's two-minute resolution and are not simulated. Their event-timing and cycling effects therefore remain outside the model and must be exercised in the version-pinned capture campaign. A finer-resolution implementation should represent the timers directly.
One thing the staging search must get right, whatever the law above it: the crew is chosen by evaluating which combination of these specific machines can carry the load, never by a plant-wide capacity fraction. On equal-sized machines the two are indistinguishable, which is how a capacity-deadband rule survived audit here for as long as it did. On a mixed fleet they are not the same at all: with a 56 kW and a 120 kW set online, shedding the small one required demand below 72 kW even though the 120 alone comfortably carries 96. Measured over a 540-day project, both sets ran 66% of the time at a mean load factor of 41% — the small set's no-load fuel burned for nothing and the large set held out of its efficient band. The fleet is worked as the plant it is, rather than as a number of interchangeable boxes.
How hard the fleet is worked is set on the plant controller, not per machine. The panel has no per-unit duty-ceiling parameter at all, but it has three plant-wide percentages, and they bound three different things. 8281, enabled by 8282, holds the higher-priority sets at a percentage of their own nominal while they carry site load — the operator-selectable cap, and the one the Lab presents as "how hard a generator may be worked while serving load". 8003, under 8882 = Percentage, starts the next set once a machine passes a percentage: it grows the crew rather than holding a set down. Opt GEN load 15014/15015 via 15016 bounds how hard called charging may drive a set, and nothing else. What none of them does is refuse load: the last-priority set is uncapped, the plant reverts to symmetric sharing when demand exceeds what the crew can carry at the set point, and an unserved kilowatt is treated as worse than a hard-worked engine — by DEIF, and so by this model. A per-set working ceiling can still be carried on a scenario saved before that setting was withdrawn — a hire unit under a contract term is a real constraint, and the commissioning engineer needs to know what the planner intended — but it is carried, not applied, and the packet and brief say so wherever it appears.
Duty is reported, and one of the two thresholds is a notation rather than a limit. Below roughly 30% of nameplate a set accumulates damage the fuel figure alone does not show; the Lab flags time spent there, manufacturer guidance puts the recommended minimum at 30% with a hard floor near 10%, and that floor is modelled — the low-load protection acts on it. ISO 8528-1's 70% is a different kind of figure and is treated differently. It is a mean load factor averaged over any 24 hours on a prime rating, with 10% overload available one hour in twelve — a mean over a window, not an instantaneous ceiling, so a prime set may sit at 100% for hours and still comply. No DEIF parameter enforces it, and this model does not enforce it either. It is reported as advisory context against the run's hardest single day — and that day is not the standard's window. What the Lab and the brief report is one calendar day, averaged only over that day's generator-running steps, with no minimum running time: a day on which a set ran for two minutes at 92% is reported as a 92% day. So the figure is printed with its window and with the engine-hours behind it, never as a 24-hour mean. The number is right for what it measures; it is a narrower window than ISO 8528-1's, and reading it as the standard's would overstate the duty. It defines no cap and shapes no dispatch decision. If the duty is genuinely that high, the answer is a larger set, another set, or a continuous rating — not a number on the panel.
The baseline we compare against
The baseline is whichever build you set as the baseline. Every option you save is dispatched against the identical load profile and scored against that one reference — not against anything the tool chose for you. It is an ordinary build: visible in the switcher, editable, and replaceable at any point, at which point every delta in the study re-scores against the new one.
Until you set one, the tool seeds a starting baseline so a comparison exists at all: a right-sized conventional diesel fleet — the smallest installed capacity that covers project peak demand at an 80% load factor, plus one spare unit, load-following but never running below its minimum load fraction. That floor is what makes a lightly loaded diesel burn fuel it does not need to. While that seeded fleet is still in force, the Lab and the report both say so and call it auto-sized, and the JSON export flags it autoSized: true. It is a starting point sized from your demand profile, not a plan anyone has stated, and it should not be cited as one.
The seeded fleet is deliberately conservative. Real sites are routinely fed by sets far larger than the load requires, which idle worse than the model assumes — so a right-sized diesel baseline understates the real conventional case rather than inflating it. If you know what you would actually mobilise, build it and set it as the baseline; that is a better comparison than any sizing rule.
What reduced runtime is worth, beyond the fuel
Engines accrue wear against hours, not against kilowatt-hours. Filters, oil and grease come round on a schedule; so do routine servicing, repairs, and the reserve against an eventual overhaul. A design that takes a fleet from 12,960 running hours to 3,400 has avoided most of that accrual, and a report counting only diesel leaves half of its own argument unmade.
So every generator carries a non-fuel maintenance rate in dollars per engine-hour, and the model accrues it per machine against that machine's own run hours. Per machine rather than per plant because the rate scales steeply with rating: a fleet average charges a 20 kW set at a 500 kW set's rate whenever both are online, which defeats the point of staging work onto the machine that should carry it.
Where the default rates come from. USACE publishes an equipment ownership and operating expense schedule, EP 1110-1-8, by region. Its running rate cannot be used as published here, because it bundles in two things this model handles itself — fuel, and capital. Stripping those out leaves the accrual that is wanted:
running rate − depreciation − cost of capital − fuel = filters/oil/grease + servicing + repairs + overhaul reserve
Applied to the published diesel generator categories, that residual runs from about $2.51/hr at 20 kW to $27.89/hr at 500 kW in Region 10 (Hawaii), with Alaska roughly 10% under and Kwajalein roughly 15% under. The relationship is markedly sub-linear — ordinary economies of scale in servicing — so the catalog interpolates between the published categories in log-log space, which reproduces every published point exactly and stays monotonic in between. Ratings outside 20–500 kW carry the nearest segment's slope extended outward, and are labelled as extrapolated.
Read these as planning benchmarks, not quotations, and replace them. Any generator card takes your own figure, and the report says which of the two produced the number. Three cautions matter more than the arithmetic:
Remote service is not in here. Technician mobilisation and lodging, parts freight, deployed spares, emergency shipment and corrosion control are site-specific and must be added separately. On an island they can exceed the accrual itself.
Kwajalein reading below Hawaii does not mean remote maintenance is cheaper. The residual is a standardised wear-and-service accrual attached to the equipment, not the cost of getting people and parts to an atoll.
Service thresholds apply to individual engines. Hours are tracked per unit for exactly this reason — a fleet total tells you nothing about which set is due. Caterpillar's general planned-maintenance ladder runs at 250, 500, 1,000 and 2,000 hours, with scope and any extended interval specific to the engine and its configuration.
The standby rate USACE publishes alongside the running rate is a separate rate for equipment that is available but not operating. It is not a component of the running rate and is not subtracted from it here.
Solar
Output is solved from site latitude and day of year rather than fitted to one region: solar declination and hour angle give the beam component, the Erbs correlation splits diffuse off the global horizontal, and an isotropic transposition puts it on a fixed array tilted toward the equator at latitude (capped at 40°). Cell temperature derates output from the plane-of-array irradiance and the site's ambient profile.
The report shows this working for your own site. Its solar section reports specific yield and capacity factor month by month against the clearness index each month was solved from, so the prediction can be checked against experience rather than taken on trust. Where the gazetteer lookup is used at intake, site coordinates are resolved from the site name rather than inferred, and the climatology is fetched for the actual pad. The lookup is a step the operator takes, not an automatic one — where it is skipped or unavailable, coordinates are whatever the intake recorded, and the report says which basis it used.
Clearness index comes from the site's own NASA POWER climatology where coordinates are known, and from a monthly regional preset otherwise — the report and the Lab both say which. Hour angle is solar time: no correction is made for the offset between local clock time and solar noon, worth at most a few percent of daily energy and far smaller than the clearness assumption.
Passing clouds are modelled, and a construction array is treated as a point sensor. At this scale that is the defensible choice: the dispersion factor for a 50–200 m array at a two-minute step and realistic cloud speeds is far below unity, so there is effectively no spatial smoothing, and a 200 kW array dilutes a measured irradiance peak by only about 2% against a point pyranometer. Utility-scale variability-reduction factors do not apply here and are not used.
Transient depth survives the two-minute step. The 99.7th-percentile swing in clear-sky index at a single site is 0.58 at one minute, 0.59 at ten, and 0.60 at sixty (Mills & Wiser, LBNL-3884E, 23 synchronized sites). A cloud edge completes its swing in well under a minute, so a two-minute step loses the shape of a transient but keeps almost all of its depth. That is the evidence that two minutes is an honest resolution for dispatch, and equally the reason it is the wrong resolution for a ramp-rate or frequency-response study.
Variability peaks at intermediate-to-high clearness, not at the cloudiest weather (Stein, Hansen & Reno, SAND2012-3464C). Broken cumulus is the worst case: a clear sky has nothing to pass in front of the sun, and an overcast one is diffuse-dominated and steady, merely low. Because that relationship is an upper bound rather than a value, the day's intensity is sampled beneath the envelope — a given clearness can produce a calm day or a wild one, as the measurements show.
Shadow durations follow a power law, exponent −1.64, from ten years of one-second irradiance at Cabauw (Mol et al., JGR Atmospheres, 2023) — within a percent of Kolmogorov's −5/3. This matters more than any average: a memoryless spell length makes nearly every shadow span a full step, which overshot the measured frequency of large steps threefold. The power law puts most shadows below the step length, where they dim a step partially rather than halving it.
Depth puts the shaded floor at 15–30% of clear sky. Diffuse light is why output does not fall to zero under cumulus.
The factor is mean-preserving. The monthly clearness already encodes average cloudiness, so a cloud model that only subtracted would double-count it and quietly under-produce against the site's own climatology. Clear gaps rise above 1 and shaded spells fall below it, capped at the clear sky plus the modest cloud-edge enhancement that survives two-minute averaging.
Calibration check: the modelled distribution of two-minute step changes gives 11.3% of steps above 0.10, 4.9% above 0.25, and 1.0% above 0.50, against a full year of one-second San Diego data block-averaged to comparable intervals (Lave, Kleissl & Arias-Castro, Solar Energy 86(8), 2012). Its standard deviation of 0.096 sits inside the published two-to-three-minute range across sites, from 0.074 in Japan to 0.184 at Oahu (IEA PVPS Task 14).
Storage
Round-trip efficiency is split evenly across charge and discharge. Each unit's charge power caps how fast the pack absorbs — which is why an undersized pack curtails midday solar it has no room to hold, and why night operations drive storage sizing harder than daytime demand does. Standby and thermal-management draw is applied continuously.
The model soaks surplus toward 100%. It treats the asset's "ceiling" as a constant-voltage taper knee and ramps acceptance linearly toward zero at full. That is a modelling approximation, not a claim that the selected pack and PCS have been observed following this exact curve; replace or verify it against their OEM charge limits. The operator setpoints on the battery node govern called charge only — the gen-on SOC is the call-for-charge floor, and the charge ceiling is where grid and generator stop charging deliberately rather than burning fuel for trickle absorption in the taper region. Turning generator charging off couples the pack to solar in the model: the set still serves load, but never starts merely to top the pack up, and both SOC setpoints go inactive because they only bound deliberate charging. One modelled exception protects minimum genset load: a set already running for load can push surplus into the pack rather than sit below its minimum-load assumption, so generator-to-battery flow can appear with the toggle off.
Solar capture is its own switch, on by default, spanning the whole pack. Surplus solar was never bounded by the SOC setpoints — those govern deliberate, fuel-burning charge — so the pack accepts it from 0 to 100% at whatever rate the taper allows. It is a switch only because holding a pack for a contracted duty is a real operating decision; turning it off raises curtailment sharply and the report says by how much.
Under DEIF PMS the battery-node SOC setpoints do not apply. That profile takes its charge band from its own numbered parameters instead — called charge stops at Threshold 2 (17054) and solar charges to SOC Maximum (17052), with the hard discharge floor at 17051 — so the gen-on SOC and charge-ceiling boxes on the battery card reach nothing while it is selected. The rest of this section, including the taper behaviour and the engine-protection exception, holds under both profiles.
Load model
A representative demand shape built from the profile's discrete loads — rated power, quantity, duty cycle, and diversity factor — not a per-device simulation. On non-work days only continuously-scheduled loads run at full, plus non-continuous critical loads at a 25% site-care level.
Demand varies at three timescales, and the variability moves energy without creating it. Each day's total is the scheduled total times a crew-intensity factor; within the day, a mean-reverting texture and short start transients redistribute that energy. The load-weighted mean of the deviation is removed, so a day's kilowatt-hours remain the profile you reviewed in step 2 while its peaks, load factors, and ramp rates show the movement a real site has.
Where the numbers come from, and where they do not:
Day to day — 8.5% coefficient of variation on working-day energy within a phase. This is the one clean measured figure in the literature: 1,113 ± 94.8 kWh/day across submetered weekdays at an Irish construction site (Hickey et al., Proceedings of the ICE — Engineering Sustainability 179(2), 2026, 15-minute data over 30 months). Seasonal and phase-to-phase swings are far larger and are carried by the profile's own phase structure, not by this factor.
There is no lunch dip. This is the obvious thing to model and the metered evidence says it does not exist. The same Irish submetering shows demand flat across working hours with no midday reduction, and instrumented Norwegian sites (Sweco for Klimaetaten Oslo, 2024, twelve sites) put the day's maximum at 11:00–12:00, because that is when electric plant goes on charge over the break. Crews stagger their breaks, and the equipment that dominates a site's demand does not eat lunch.
Shift ramps are an assumption, not a measurement. At 15-minute resolution the published profiles read as a step, so the ramp is kept to roughly half an hour — long enough to be physical, short enough not to invent energy movement the data does not show.
Short transients are modest by design. Modern tower-crane hoists are inverter-driven and do not draw locked-rotor current; the published sizing factor is 1.4–2× running power, not the 6–8× of a direct-on-line start. Measured crane peaks last on the order of ten seconds, so at a two-minute step they are largely averaged away rather than dominating.
A sanity check on the result: going from hourly to 10-minute metering raised observed site peaks by about 15% in the Oslo study, and the authors expect finer resolution to raise them further. The two-minute model puts the modelled peak roughly 20% above the scheduled peak, which is consistent with that direction and magnitude. The load-zone readout shows both figures so the difference is never hidden.
Sub-minute behaviour is still not resolved. Motor inrush and the instant of a welding strike live inside the two-minute step, so this model shows energy balance and staging, not instantaneous adequacy against real starting current. Equipment adequacy against inrush remains a separate calculation.
Reliability
"Load served" is a model output. Maintenance, derate, fuel contamination, and equipment failure are not modelled. It is not an uptime or availability guarantee.
Carbon
Diesel at 22.4 lb CO₂ per gallon, which cross-checks against the industry figure of 2.6 kg CO₂/L. Grid carbon defaults to 1.49 lb/kWh (eGRID HIOA) and should be set per site. Operational emissions only — equipment lifecycle carbon is not counted.
TethraAI — scenario analysis
Asset Catalog
Every asset the tool knows, with the provenance of its numbers — including the ones held back, each carrying its reason. Assets are JSON files validated against a published schema — adding a generator or BESS is a data change, not a code change.