AtomaLive showcase
โ† All finished work

Energy dispatch simulator for a commercial microgrid

Software3 deliveries12 min 10 s in total$0.18 in total

Step 1 of 3

The request

Energy dispatch simulator for a commercial microgrid

Read the full request

Build GridShift, an interactive energy dispatch simulator for a commercial microgrid. Seed three named synthetic days, each with 96 quarter-hour demand and solar forecasts and time-of-use prices. Combine a scenario panel, stacked dispatch chart, battery charge timeline and transparent cost breakdown. Users adjust capacity, initial charge, charge/discharge power, reserve percentage and price threshold. Deterministic policy: solar serves demand first, surplus solar charges the battery subject to capacity and charging power, expensive intervals discharge the battery into unmet demand subject to reserve and discharge power, and the grid covers the rest. Do not export battery energy or charge it from the grid. Convert kW to kWh using 0.25 hours, assume 100% efficiency and explain this simplification. Reject negative or nonfinite values and initial charge outside reserve-to-capacity bounds. Expose interval arithmetic, save two named scenarios, compare grid import, peak grid kW and energy cost, and export 96 CSV rows. Use a precise midnight-and-cyan engineering aesthetic. Deliver a directly previewable root index.html using self-contained HTML/CSS/JavaScript, synthetic data clearly labelled, English copy and no remote assets, external APIs or credentials. Include accessible labelled controls, keyboard focus, useful empty/error states, local persistence and Reset demo. Provide a README and executable Node built-in tests for the domain logic. Verify the real main user journey in a browser at mobile and desktop widths before delivery. Before delivery, exercise each acceptance criterion with recorded, observable results. For persistence, save a distinctive value, reload the actual page and observe the restored UI. Keep domain calculations separate enough for tests to import the production functions.

The journey

  1. Read the requestTurned it into a list of things it would have to prove before calling the work done.
  2. Did the workPlanned the pieces, built them and checked the result as it went.
  3. Delivered4 files handed over.

The result

  • index.html13.6 KB
  • README.md1.4 KB
  • server.js430 B
  • test/gridshift.test.js1.2 KB
Time5 min 39 s
Cost$0.07
Finished2026-10-07

Step 2 of 3

The request

Fix GridShift simulator charging math, tariff bands, and invalid saves

Read the full request

Correct and deliver the existing GridShift microgrid simulator, preserving its features. Fix three concrete defects. First, charging power is in kW while remaining capacity is in kWh: for quarter-hour intervals cap charging kW by (capacity - storedCharge) / 0.25. A one-interval case with capacity 20 kWh, initial charge 15 kWh, charge power 20 kW, demand 80 kW, solar 100 kW and reserve zero must end at 20 kWh, not 16.25. Second, the cost-breakdown tariff bands must be disjoint and sum each interval's actual imported kWh times its price. Three rows importing 1 kWh each at 0.12, 0.24 and 0.48 must total 3 kWh and $0.84; the band rows must sum to that same total without double counting. Third, reject saving an invalid scenario rather than pairing invalid inputs with stale prior results. From the default initial charge 90, capacity 20 is invalid and must not enter the saved library. Calculate each saved summary from its validated saved configuration. Preserve valid saved scenarios and handle invalid persisted entries safely. Add regressions exercising the production calculation and save-validation paths, without duplicating formulas in test-only implementations. Run those tests, verify valid scenario comparison and rejected invalid save in the browser, and gather evidence for all six original acceptance criteria after the final changes.

The journey

  1. Read the requestTurned it into a list of things it would have to prove before calling the work done.
  2. Did the workPlanned the pieces, built them and checked the result as it went.
  3. Delivered4 files handed over.

The result

  • index.html14.6 KB
  • README.md1.4 KB
  • server.js430 B
  • test/gridshift.test.js1.7 KB
Time4 min 20 s
Cost$0.07
Finished2026-10-07

Step 3 of 3

The request

GridShift simulator fixes with final test suite verification

Read the full request

Deliver the corrected GridShift simulator with compact verification evidence and an executed final domain test suite. Preserve the completed tariff and restoration fixes. Confirm production tariff totals for two 1 kWh rows at 0.12 and 0.18 are 2 kWh and $0.30, and retain the 3 kWh/$0.84 case. Confirm a rejected invalid active configuration and an invalid saved entry cannot discard valid saved scenarios after actual reload. Keep the browser evidence for all six original acceptance criteria compact: 96 intervals, charge/reserve bounds, interval energy balance, two-scenario comparison and actual CSV with 97 lines, at desktop and mobile widths. After all file changes and the final browser checks, execute node test/gridshift.test.js as the final verification step and include its actual output and exit code. The prior run changed the Math.abs balance assertion after executing the suite, so that final test file still needs to run. Make a targeted correction only if a real check fails, then rerun the complete test suite after the last edit. Report every criterion and the two known bug regressions together with observed results.

The journey

  1. Read the requestTurned it into a list of things it would have to prove before calling the work done.
  2. Did the workPlanned the pieces, built them and checked the result as it went.
  3. Delivered4 files handed over.

The result

  • index.html14.7 KB
  • README.md1.4 KB
  • server.js430 B
  • test/gridshift.test.js2.3 KB
Time2 min 11 s
Cost$0.04
Finished2026-10-07

Have a request of your own?

Describe the outcome you want. Atoma works on it in a private project and gives you the same story: every step, every check, and the finished result.

Start your own