Sertainly Marketplace
Environmental reporting and greenhouse Gas accounting
US·Environmental reporting and greenhouse Gas accounting· U.S. Organizational GHG Accounting — Stationary Combustion suite · 2 APIs

EPA Stationary Combustion · Inventory Completeness Assessment

Sertainly Official Publishercontract v1

Decides whether a declared emission source belongs in a stationary combustion inventory, counts as a completeness gap, or falls under other guidance.

Overview

For each declared emission source, the package decides whether it is accounted for in the stationary combustion inventory, represents a completeness gap that needs closing, or belongs to a different emissions category entirely, and grades the quality of the fuel-use data behind it — driving corrections to activity data and gap-closure work ahead of inventory finalization.

The scope follows EPA stationary combustion inventory guidance, covering boilers, furnaces, internal combustion engines, turbines, flares, process heaters, incinerators, and cooling systems; sources declared as mobile combustion, purchased electricity, air conditioning/refrigerant equipment, or process and fugitive emissions are routed out to their own dedicated guidance rather than assessed here.

In practice, a boiler dropped from the inventory as immaterial before it was ever assessed comes back as a gap, even when it also lacks activity data — assessment has to happen before materiality can be claimed. A mobile combustion source never counts as a stationary gap at all; it is routed out of scope outright. Floor-area-prorated fuel estimates for a shared office boiler are accepted as legitimate estimated data rather than flagged as missing. A metered turbine sharing fuel with vehicles still gets accounted for, but carries a double-counting warning and a flag for an outstanding regulatory cross-check.

When a source triggers both an improper exclusion and a genuine data gap, the exclusion is the reported reason, since the guidance treats assessment as a precondition for any materiality call — the missing data alone would not have disqualified the source.

Every run returns a structured verdict — accounted, gap, or out of scope — plus an activity-data-quality grade and any completeness flags with citations to the underlying guidance, ready to feed directly into inventory review or audit workflows.

What it decides

Inputs
reporting_period_startrequired
date (string)
reporting_period_endrequired
date (string)
facility_identifierrequired
string
source_categoryrequired
string
boilers_furnacesinternal_combustion_enginesturbinesflaresprocess_heaters_ovensincineratorscooling_systemsmobile_combustionpurchased_electricityair_conditioning_equipmentprocess_or_fugitive_emissions
activity_data_basisrequired
string
meteredpurchase_recordsoperating_hours_estimatefloor_area_prorationcost_derivednone
excluded_on_materiality_without_assessmentrequired
boolean
fuel_serves_both_stationary_and_mobilerequired
boolean
completeness_cross_check_performedrequired
boolean
cross_check_reference
string
Every call returns
4 classifications · 5 reason codes · 2 evidence checks
Classifications
dispositionexactly one
source_accountedsource_gapsource_out_of_scope
source_scope_classificationat most one
stationary_combustion_sourcerouted_to_mobile_combustion_guidancerouted_to_purchased_electricity_guidancerouted_to_refrigerant_guidancerouted_to_process_or_fugitive_guidance
activity_data_qualityat most one
metered_activity_datapurchase_record_activity_dataestimated_activity_datacost_derived_activity_data
completeness_flagsmany
double_counting_risk_with_mobile_usecompleteness_cross_check_outstanding
Reason codes· 5
source_category_outside_stationary_combustion_guidance
The declared category is assessed under other guidance.
excluded_on_materiality_before_assessment
The source was excluded as immaterial without first being assessed.
no_activity_data_or_estimate
Neither measured
unknown_source_category
The submitted source category is not one the guidance enumerates.
unknown_activity_data_basis
The submitted activity data basis is not recognised.
Evidence it can request
source_categoryactivity_data_basis

Try it — live sandbox

Build a case and run it against the publisher's live production release — the exact rules a subscriber calls. Run the same case twice and the answer is identical: no LLM in the loop.

Sandbox · live evaluation
Case
Decision

Run a case to see the deterministic decision — tags, routes, reasons, evidence, and facts. Same case in, same answer out, every time.

Integrate — two ways

Call it directly over HTTP, or connect your coding agent over MCP. Same decision, same metering, either way.

One authenticated POST — the same deterministic, metered evaluation the sandbox runs, no LLM in the loop.

Integrate — one POST
# Request shape only. Replace sert_mk_YOUR_KEY and send every field from the Inputs contract above.
curl -X POST https://api.sertainly.ai/api/marketplace/v1/packages/stationary_combustion_inventory_completeness_assessment/evaluate \
  -H "Authorization: Bearer sert_mk_YOUR_KEY" \
  -H "content-type: application/json" \
  -d '{ "case": { "reporting_period_start": "example", "reporting_period_end": "example", "facility_identifier": "example" } }'

More from the U.S. Organizational GHG Accounting — Stationary Combustion suite