The declared values in contract.json define the current monitoring model. There are 98 briefs (7 power values × 7 durations × 2 conditions) and eight fixed-family architectures per brief. Power and energy now use W and Wh; costs use GBP and the second resource is allocated cabinet volume in L. The migration and synthetic volume relation are explicit in scenarioMapping. Per-pack heat is a synthetic thermal design allowance, not a claim about measured heat at fixed load. Usable Wh is net DC energy after cell-internal losses; cooling electricity and converter loss are additional demands. atlas.json is generated by the actual pinned Python package and contains all 784 calculations, including catalogue-unavailable outcomes.

Query and architecture keys

Brief: {powerW:750,durationHours:8,condition:"hot"}, ID p750-h8-hot. Default is this brief. Architecture ID is {batteryId}-{converterId}-{coolerId}, e.g. standard-efficient-liquid. Families are standard|compact, standard|efficient, air|liquid, respectively. All eight records remain visible, including ties. Resource minimisation uses {capitalGBP,volumeL} componentwise.

Atlas schema

  • schemaVersion, title, domain, default, catalogueCaps, catalogues, conditions, interfaces, traceColumns, boundary, physicalAssumptions, unitContract, scenarioMapping copy the visible declared model.
  • provenance contains package version, GitHub source URL and pinned commit, hashes of actual imported package sources, modelSha256, contractSha256, generatorSha256, and deterministic build information. No time-dependent fields.
  • architectures: eight {id,label,battery,converter,cooler} objects; family fields are IDs.
  • queries: 98 {id,powerW,durationHours,condition,frontier,results} objects. frontier is an array of architecture IDs for all catalogue-feasible nondominated designs; equal cost/volume tuples retain every architecture ID.
  • results: eight objects with architectureId, calculation_status, catalogue_feasible, verified_complete, iterations, witness, service_only, trace, and catalogueChecks.
  • calculation_status is the package status string. Successful builds require converged and exact interface checks. A max_iter or diverged result aborts the build and must never be labelled catalogue infeasibility.
  • catalogue_feasible means the complete least count vector fits all three declared availability caps. verified_complete means its three physical model interfaces have been independently checked by direct arithmetic after package convergence; it does not mean the availability caps are met or that the design is field validated.
  • witness and service_only have the same shape: {counts:{batteries,converters,coolers},resources:{capitalGBP,volumeL},values:{energyWh,outputW,heatW,coolingW,drawW,lossW},checks:[{id,label,unit,required,provided,margin,satisfied}],complete}.
  • catalogueChecks: [{component,count,limit,satisfied}], in battery/converter/cooler order.
  • trace is an array of integer arrays, each ordered by traceColumns: [iteration,batteries,converters,coolers,heatW,coolingW,drawW,lossW,capitalGBP,volumeL]. The seed is row zero. Counts and component quantities come from the actual package trace; time and floating deltas are omitted. The converged duplicate final row is retained.
  • summary counts all cases, statuses, feasible results, and maximum iterations.

Meaning of the comparison

service_only sizes batteries from H×P and converters from P, then sizes cooling for those initial components’ heat. It stops without enlarging the batteries/converters to cover cooling draw and converter losses. Its exact three interface checks expose any undersizing. It is a deliberately incomplete once-through comparator, not another solver or a safe configuration. witness is the cold-start package feedback result.

Availability and UI ceilings

Modules calculate unbounded non-negative integer counts by exact ceiling division. Their declared extended-natural input posets also contain top (+infinity); each module explicitly maps top demand to all-resource top through the normal Module wrapper. This mathematical boundary does not add any supported outer power/duration value. module_boundary_tests.py checks the direct module calls, zero and first rating boundaries. After convergence the least count vector is checked against the explicit catalogue caps 32/12/20. Because the monotone count map starts at zero, its fixed point is componentwise no larger than every compatible count vector within the same architecture. Exceeding a cap therefore proves no available implementation of that architecture exists. This avoids the package’s partial-top/divergence behaviour when a module returns an empty antichain.

UI capital and cabinet volume ceilings filter only records with calculation_status="converged", verified_complete=true and catalogue_feasible=true. Retain family IDs and all ties. Such upper-resource ceilings preserve any admissible point’s componentwise dominators, so the global frontier may be filtered directly. If displaying all remaining architectures, recomputing its two-resource Pareto subset is merely post-filtering package results, not running a JS co-design solver.

Embedding and reproduction

The UI embeds the exact JSON in a script with id="mcdp-atlas" and type application/json; no network or Python browser dependency is needed. build_atlas.py writes only atlas.json; it does not edit the app. build_atlas.py --check regenerates and byte-compares the atlas. Install requirements.txt in an isolated environment. The independent oracle is maintained separately and imports no model sizing or transition helpers.

Route and unit boundary

The active page is monitoring-power-loop.html, schema monitoring-power-loop-1, record format monitoring-power-loop-comparison-1. New share links use powerW and volume query parameters. The historical rail-power-loop.html route is a static notice with no script, redirect or query forwarding. It links to the new default and to the immutable historical source. Its saved railway queries are never interpreted as monitoring watts. The legacy documentation directory is retained for stable source links; its current files describe the new monitoring contract.