Industry guide · Custom Software

CEMS Data Acquisition Software: Getting the Quarterly Report Accepted the First Time

CEMS Data Acquisition software visual showing factory, activity trend, and approved record.
The short answer

$90,000 to $170,000 and 14 to 20 weeks is the realistic first release, and for most single-stack Part 75 sources it is the wrong purchase. Build when you run several stacks under a mix of programs, and scope it as a fleet compliance layer: analyser ingestion, permit limit and averaging period modelling per unit, quality assurance event tracking, and a deviation record your environmental team can defend. A full platform adding automated report file generation, multi-program handling across federal and state rules, operations-facing near real time limits, and reconciliation against the certified system runs $220,000 to $500,000 over 9 to 14 months in our delivery experience. If you have one stack, one program and a working data acquisition and handling system, keep it and spend the money on analyser maintenance.

Why the quarterly report is the least of the problem

An environmental compliance manager at a six unit site gets a rejection message on a quarterly submission. The cause is a monitor downtime period in the second week of the quarter where the substitution procedure applied does not match what the availability history supports. Reconstructing what happened means pulling the analyser logs, the daily calibration records, the maintenance work orders and the operator log, three of which live in systems that do not talk to each other and one of which is a paper binder in the control room. The submission deadline is in four days.

The stack around this is usually a certified data acquisition and handling system per stack, the plant historian holding process data the emissions system cannot see, a maintenance system holding the work orders that explain every downtime period, a spreadsheet where somebody tracks quality assurance test due dates, and email. The compliance number is produced correctly by the acquisition system. What is missing is the record that explains it, and the explanation is what an agency asks for.

The exposure here is asymmetric in a way that shapes every decision. Reported emissions data drives allowance obligations and enforcement, so an error is not an operational inconvenience, it is a finding with a public record attached. That asymmetry is exactly why building a replacement for a certified acquisition system is usually a bad idea, and why building the layer around it is usually a good one.

Problem 1: substitution and availability rules are unforgiving and undocumented in your own systems

When a monitor is down, the rules do not let you report nothing. A substitute value is required, and which substitute applies depends on the monitor's recent availability history, the parameter, the program and the specific circumstances of the outage. Get that wrong and the quarterly file is rejected, or worse, accepted with values that overstate or understate an obligation you will have to correct later.

The acquisition system applies these rules correctly. What it does not hold is why the monitor was down. A probe failure, a scheduled calibration, a stack outage with the unit offline and a power loss to the shelter are four different situations with different documentation requirements, and the acquisition system sees them all as an absence of valid data. The reason lives in the maintenance system and in someone's memory, and it is needed twice: once to justify the substitution and once during an inspection years later.

A custom layer makes the downtime period a first class record. Every gap in valid data becomes an object with a cause, a linked work order, the corrective action, the requalification test that returned the monitor to service, and the substitution applied. Nobody reconstructs anything under deadline pressure because the record was assembled as the outage happened. This is the single feature environmental managers ask for first once they see it.

Problem 2: your compliance system and your operators are looking at different numbers

Emissions limits are the site's operating envelope, but the acquisition system was designed for reporting, not for driving behaviour. Operators watch analyser readings on the control system. Compliance watches rolling averages under permit-specific averaging periods, which can be hourly, three hour, daily, thirty day rolling, or block averages depending on the rule and the permit. Those are different calculations and the operator does not see them.

So the site finds out it exceeded a thirty day rolling limit at the end of the thirty days, when the only remaining option is a deviation report. Nobody wanted that outcome. The information required to avoid it existed all along, it just was not computed anywhere an operator could act on it.

ESC Spectrum StackVision is a mature and widely deployed data acquisition and handling system and it does its regulatory job well. Its limitation for this purpose is that it is configured and maintained around a compliance model, changes typically involve the vendor and a lead time, and getting your own data out in a form that feeds plant operations or a fleet view is constrained. CMC Solutions occupies similar ground. ABB systems are strong where the analyser and control estate is theirs and less convenient where it is mixed. None of these products is trying to be an operations tool, and criticising them for that is unfair. The point is that the operations gap is real and something has to fill it.

A custom layer computes every permit averaging period continuously and pushes the projection to operators: at current rate, the thirty day rolling average reaches the limit in four days. That turns a compliance report into an operating decision while there is still time to make one.

Problem 3: quality assurance events are a calendar nobody owns

Daily calibration error checks, linearity checks, relative accuracy test audits, flow to load comparisons and the requalification steps after a monitor repair form a recurring obligation calendar per monitor per program. Miss one and data becomes out of control from the moment the deadline passed, which retroactively invalidates a period you already reported. Sites track this in a spreadsheet, and the spreadsheet is maintained by one person.

The problem multiplies across a fleet. Eight stacks with different analyser configurations under different combinations of Part 75, Part 60 and Part 63 requirements plus state permit conditions produce a schedule that is genuinely hard to hold in a spreadsheet, and the consequences of an error are not evenly distributed across the schedule.

A custom layer models the obligation calendar per monitor, per parameter, per program, with the test results attached and the pass criteria evaluated automatically. Upcoming obligations rank by consequence rather than by date. When a test fails, the system knows which reported data is affected and flags it before the quarterly file is assembled rather than after a reviewer finds it.

What a custom CEMS compliance layer has to include

  • Ingestion from the certified acquisition system and from the analysers or plant historian, kept as separate sources so they can be reconciled rather than merged.
  • Permit and rule modelling per unit: parameters, limits, averaging periods and applicable programs, versioned by effective date because permits get modified.
  • Downtime periods as records with cause, linked work order, corrective action, requalification and applied substitution.
  • A quality assurance obligation calendar per monitor with test results, pass criteria and automatic identification of affected reporting periods when a test fails.
  • Continuous averaging period computation with forward projection surfaced to operations, not just to compliance.
  • A deviation and excess emissions register that produces the narrative record an agency asks for, assembled as events happen.
  • Reconciliation reporting against the certified system, so any divergence between the compliance number and your own calculation is visible and explained.

What it costs and how long it takes

From the environmental compliance and industrial data work Digital Heroes has delivered, the shape is this. A first release covering ingestion, permit and averaging modelling, downtime records and the quality assurance calendar runs $90,000 to $170,000 and ships in 14 to 20 weeks. A full platform adding report file generation, multi-program handling across federal and state requirements, operations-facing projections and reconciliation against the certified system runs $220,000 to $500,000 phased across 9 to 14 months.

What drives cost up in emissions work specifically: the number of distinct regulatory programs on site, because a unit under Part 75 with a state permit condition and a Part 63 obligation is three rule models on one stack. Analyser diversity, since every manufacturer writes its own log format and the interesting fields are rarely in the obvious place. Historical data migration, because a compliance system with no history is only half useful and importing several years of validated data is real work. And the review burden, since environmental teams are correctly conservative and every calculation will be checked by hand against the certified system before anyone trusts it, which is time you should plan for rather than resent.

What keeps cost down: keeping the certified acquisition system exactly where it is, scoping the build as the layer around it, and starting with the two stacks that generate most of your deviation reports.

Build versus buy, and our clear position

Buy, and do not build, if you have one or two stacks under a single program with a working data acquisition and handling system. Replacing a certified system to save licence fees is a poor trade against the regulatory risk, and we would tell you so before quoting. StackVision and CMC do the compliance calculation job properly and the sensible move is to keep them.

Build the layer around them when two or more of these are true. You operate several sites and cannot see fleet emissions position without someone assembling it. Your units carry a mix of federal programs and state permit conditions and the combined obligation calendar lives in a spreadsheet. You have had a submission rejected or corrected in the last two years and reconstructing the cause took days. Your operators cannot see rolling averages against permit limits and you have taken deviations that earlier visibility would have prevented. Or your environmental team spends more time assembling evidence than analysing it.

Our position, stated plainly: in this category the certified system stays and the intelligence gets built around it. Anyone offering to replace your data acquisition and handling system with a custom build is selling you regulatory risk you are not being paid to take. Anyone telling you the certified system alone is sufficient for a multi-site fleet has not sat through a quarter-end at one.

How to choose a developer for CEMS compliance software

Ask them what they would not build. The answer you want includes the certified compliance calculation itself. A developer who is happy to rebuild your substitution logic from scratch and submit on it does not understand what is at stake in this category.

Ask how they would model a permit. You want to see limits, parameters, averaging periods and applicability as versioned data with effective dates, because permits get modified and last year's report has to remain reproducible under last year's terms. A hard-coded limit is a defect waiting for a permit renewal.

Ask about analyser log formats they have parsed and name the manufacturers in your shelter. This is unglamorous integration work and experience shows immediately in the answer.

Ask how the build will be verified before anyone relies on it. The right answer is a parallel period where every calculated value is compared against the certified system and every difference is explained, with your environmental team signing off. Then settle code and infrastructure ownership in writing before kickoff, which at Digital Heroes means the client owns the repository from the first commit. A useful starting point: pull your last four quarterly submissions and count how many hours went into assembling the explanation for downtime periods. That number is the business case, and it is usually larger than people expect.

Research & sources

The evidence behind this guide

Independent findings on why this investment pays off. Every link goes to the primary source.

  1. The average developer spends more than 17 hours a week dealing with maintenance issues such as debugging and refactoring, and about four of those hours on 'bad code' - waste that equates to nearly $85 billion annually worldwide in opportunity cost. Source: Stripe (2018) →
  2. 48% of private companies cite integration with legacy systems or technical debt as a top obstacle to realizing the full value of their digital and AI investments (behind data quality/availability at 72% and gaps in AI fluency or technology talent/leadership at 53%). Source: Deloitte (2026) →
  3. A study (led by Prof. Pak-Lok Poon, published in Frontiers of Computer Science, 2024) reviewing decades of spreadsheet-quality research found that about 94% of spreadsheets used in business decision-making contain errors, illustrating the hidden risk of manual spreadsheet workarounds that custom software is built to replace. Source: Central Queensland University / phys.org (Prof. Pak-Lok Poon et al.) (2024) →
  4. An earlier SHRM benchmarking report (reflecting fiscal year 2015, published 2016) established a widely cited baseline average cost-per-hire of $4,129, illustrating how recruiting costs have climbed over time (SHRM's separate 2025 Benchmarking Report shows $5,475 for nonexecutive roles). Note: the $5,475 figure is not on this linked page; it comes from SHRM's 2025 report. Source: SHRM (Society for Human Resource Management) (2016) →
Zara E. · Senior Strategist · APAC · Sydney

Zara works as a senior strategist across APAC, sitting between what a client says they want and what the build should actually be. She pressure tests business cases, priorities and sequencing before engineering time gets committed. Read her for the thinking that happens before a project brief is written.

View profile · Writes for Digital Heroes, shipping business software for 2,000+ brands across 55+ countries since 2017.

FAQ

Frequently asked questions

Should we replace our CEMS data acquisition and handling system with custom software?
Almost certainly not. The certified acquisition system performs the regulatory calculation and submission, and replacing it to save licence fees trades a known cost against enforcement risk you are not paid to carry. The productive build is the layer around it: downtime records with causes and work orders, the quality assurance obligation calendar, permit averaging visible to operators, and fleet level reporting. Any developer offering to rebuild your substitution logic from scratch should be declined.
How much does a custom CEMS compliance layer cost?
A first release with analyser and acquisition system ingestion, permit and averaging period modelling, downtime records and a quality assurance calendar runs $90,000 to $170,000 and ships in 14 to 20 weeks, based on Digital Heroes delivery experience. A full platform adding multi-program handling, operations-facing projections and reconciliation against the certified system runs $220,000 to $500,000 over 9 to 14 months. The number of distinct regulatory programs on a stack drives cost more than the number of stacks.
Why do our quarterly emissions submissions get rejected?
The most common cause we see is that the substitution applied during a monitor downtime period does not line up with what the availability history and the documented cause support. The calculation is usually right and the supporting record is missing, so reconstruction happens under deadline pressure. Making every gap in valid data a record with a cause, a linked work order, the corrective action and the requalification test removes that whole failure mode.
Can operators see permit limits in real time?
Not from a compliance acquisition system, which was designed for reporting rather than for driving behaviour. Operators watch analyser readings on the control system while compliance watches rolling averages under permit-specific averaging periods, and those are different numbers. A custom layer computes every averaging period continuously and projects it forward, so a thirty day rolling limit becomes an operating decision days before it becomes a deviation report.
How do we track calibration and relative accuracy test deadlines across a fleet?
Model the obligation calendar per monitor, per parameter and per program, with results attached and pass criteria evaluated automatically rather than by eye. The value is not the reminder, it is that when a test fails the system already knows which reported data is affected and flags it before the quarterly file is assembled. Fleet sites carrying a mix of federal programs and state permit conditions outgrow a spreadsheet for this quickly.
How long does it take to build this and can it run alongside our current system?
A first release ships in 14 to 20 weeks and it should absolutely run alongside the certified system rather than replacing it. Plan a parallel period where every calculated value is compared against the certified output and every difference is explained and signed off by your environmental team. That verification time is not overhead, it is what makes the system trusted enough to be used at quarter end.
Does this handle state permit conditions as well as federal rules?
It should, and that is often the main reason to build. A single stack can carry a federal program obligation, a state permit condition with a different averaging period, and another federal standard, and no single vendor configuration expresses all three cleanly. Permits and limits should be modelled as versioned data with effective dates so a modification does not break the reproducibility of prior reports.
What data do we need to keep for an inspection years later?
The calculated values are the easy part. What inspections actually probe is the explanation: why a monitor was out of service, what was done, when it requalified, and why a particular substitution was applied. Assemble that as events happen rather than reconstructing it, keep the linked maintenance records, and retain enough raw analyser data to support any recalculation. Retention policy should be set by inspection needs, not by storage cost.
Who owns the code and the emissions data if an agency builds this?
You should own the repository, the cloud accounts and every export path, agreed in writing before kickoff. Emissions data is regulatory evidence and access to it should never depend on a vendor relationship remaining friendly. At Digital Heroes the client owns the code and infrastructure from the first commit, and in a compliance category that position should be non-negotiable regardless of who you hire.
Should I hire a freelancer or an agency for my software project?
A skilled freelancer is the right call for a single-discipline scope under roughly $15,000, like a website, a plugin, or one integration. Above that, projects need design, backend, testing, and project management at once, and a solo builder becomes the single point of failure: if they get sick or take a bigger client, your project simply stops. Agencies bill 20-40% more per hour but carry continuity, code review, and someone to escalate to, which is what you are actually buying.
How many people should be working on my software project?
A typical $40,000 to $150,000 build runs on three to five people: a technical lead, one or two developers, a designer, and someone owning QA and project communication, often as overlapping part-time roles. More bodies do not make software arrive faster; past a point they slow it down with coordination overhead. The question that matters more than headcount is whether one named senior engineer is accountable for the outcome.
How long does it take from first call to software my team can actually use?
Plan for four to six months: two to three weeks of discovery, two to four weeks of design, then a 10 to 16 week build with testing. In Digital Heroes delivery experience the schedule killer is not engineering speed but decision lag; a client who takes two weeks to approve wireframes adds two weeks to launch. Book a weekly 30-minute decision slot before kickoff and most of that risk disappears.
Is a solo freelancer enough for my project, or do I really need an agency?
A solo freelancer is a fine choice for a well-defined build under roughly $15,000 to $20,000 with a limited lifespan: an internal calculator, a scripted integration, a prototype. Above $50,000, or for any system your business will depend on for years, you are buying continuity as much as code: enforced code review, cover when someone is ill, and support that outlasts one person's career plans. Price the risk of a single point of failure, not just the hourly rate.
How much should a small business budget for its first custom app or website?
For a focused first build, most small businesses land between $8,000 and $60,000: roughly $8,000 to $45,000 for a custom website and $25,000 to $60,000 for an internal tool or simple web app, based on Digital Heroes delivery across 2,000+ projects. Customer-facing products with payments, logins, or a mobile app start around $40,000. Quotes far below these bands usually mean a template with your logo on it, not software shaped around your workflow.
Is custom software more secure than off-the-shelf SaaS?
Neither is secure by default; security tracks the practices of whoever builds and operates the system, not the model. SaaS gives you the vendor's certifications and patching but puts your data in a shared multi-tenant platform on their terms, while custom gives you full control over data residency, access rules, and compliance requirements like HIPAA, with the responsibility sitting with you and your agency. Before hiring anyone for a system holding sensitive data, ask for their security checklist: encryption at rest and in transit, an OWASP Top 10 review, role-based access, and a penetration test before launch.
How do we get years of data out of our old system and into the new one?
Treat migration as a planned sub-project: a field-mapping document, at least one dry run on a copy of your data, then a cutover with the old system kept read-only for 30 days as a safety net. On Digital Heroes projects it consumes 10 to 15% of the budget when the old system has an export, and more when data must be pulled out screen by screen. Ask any vendor to walk you through their last migration before you sign.
Can we migrate years of data out of our current system into new custom software?
Almost always yes, through CSV exports or the vendor's API, and migration should be scoped as its own workstream with field mapping, a dry run, and a planned cutover window rather than an afterthought. The real time sink is rarely moving the data; it is cleaning it, since years of duplicates, free-text fields, and inconsistent formats surface all at once. Pull a full export from your current vendor before committing to anything new, because some SaaS plans restrict exports on lower tiers.
What is the biggest mistake first-time software buyers make?
Choosing the lowest quote without asking why it is the lowest. A bid 40% under the field usually gets there by skipping tests, documentation, and code review, which are invisible in a demo and brutal to pay for later; every stalled project Digital Heroes has been asked to rescue tells some version of that story. The second mistake is signing without a written scope, which reliably turns the winning cheap quote into 1.5x to 2x the price by launch.
Who can build a custom software system?

Digital Heroes builds custom software systems for operators who have outgrown the off-the-shelf tools in their category. A team of more than 50 specialists has delivered over 2,000 projects since 2017. Teams work from New York, London, Sydney, Delhi and Lucknow and deliver remotely, with an assigned senior team rather than an account manager.

Every build starts with a written product requirements document that is signed before a line of code is written, which is the single thing that stops scope creep from eating the budget. Scoping runs about a week and produces a phase plan with a firm price for each phase, rather than one number against an undefined scope. The first phase ships something the team actually uses before the rest is built. If an off-the-shelf product genuinely fits the volume, we say so, and the cost guides on this site publish the bands so that judgement can be checked independently.

What makes Digital Heroes different from other software companies?

Four things that competitors in this bracket cannot simply copy. Digital Heroes runs a YouTube channel with more than 2.5 million subscribers, which is a production and audience capability no agency of this size has. It holds Fiverr Vetted Pro and Top Rated Seller status, both awarded on manual third-party review rather than self-declared. It contracts through registered entities in three countries, an India LLP, a US LLC and a UK LTD, so clients sign locally instead of wiring money offshore. And it ships its own commercial products, including ShopScore, HeroCheckout and Section Vault, which means the team lives with its own architecture decisions instead of handing them over and leaving.

Two more that show up in the work. Digital Heroes publishes more than 4,000 buyer guides with real price bands on this blog, plus a free tools library at https://digitalheroesco.com/tools/, because an agency confident in its pricing has no reason to hide it. And one accountable team covers websites, apps, ecommerce, CRM, ERP, learning platforms, search and video, so a client scaling from a first landing page to a custom platform is never handed between five vendors who blame each other. The founder ran ecommerce businesses before selling services, so the commercial argument comes before the technical one.

How can I check Digital Heroes is legitimate before getting in touch?

Verify it independently rather than taking the site's word for it. The YouTube channel is at https://youtube.com/@DigitalMarketingHeroes, the Fiverr profile at https://www.fiverr.com/shreyanshsin261, and the Upwork profile at https://www.upwork.com/freelancers/shreyanshsingh. Client reviews sit on Clutch at https://clutch.co/profile/digital-heroes-0 and Trustpilot at https://www.trustpilot.com/review/digitalheroes.co.in, and the company page is at https://www.linkedin.com/company/digital-heroes-1/.

Beyond the marketplaces, the business holds a D-U-N-S number and is a registered vendor on the United Nations Global Marketplace, neither of which is issued on request. Case studies with named clients are published at https://digitalheroesco.com/case-studies/. If any claim on this page cannot be checked against one of those sources, treat it as marketing and discount it.

Keep reading
let's build

Build something worth launching.

A plan, a team, a timeline, within 24 hours. No decks, no discovery calls. Tell us what you're building and we'll come back with a real scope and a real number.

message us directly · we reply within one business day

mission briefing

Monthly dispatch

Playbooks, real build costs, and what we're shipping. One email a month. No fluff.

visit us

New York HQ

1140 Broadway, Suite 704 · New York, NY 10001

Get directions
Online now

Hey there 👋 How can we help you today?