Problems & solutions · Custom Software

Civic Engagement Platform Problems: The 6 That Undermine a Decision Record, and How to Avoid Them

Civic Engagement Platform code editor and API illustration showing common problems and fixes.
The short answer

The most expensive failure in civic engagement software is a platform that only knows about the comments that arrived through its own form. Everything else, the emails to the project address, the comment cards from four open houses, the petition, the Spanish and Mandarin comments taken at a community meeting, gets pasted in by an analyst under deadline or summarised in a paragraph. That paragraph is the artefact a challenger attacks, because its method cannot be reproduced by anyone else. The cost is not staff hours. It is a plan that has to be re consulted, a schedule that slips a season, and a public record showing your agency could not demonstrate that it considered what it was told.

Why does an engagement platform get scoped as a survey tool?

Because the survey is the part everyone can picture. It has a form, a response count and a chart, and it demonstrates well in a procurement meeting. So the requirement gets written around the online submission path, and the other seventy percent of input, which arrives by email, on paper, at a table in a library and through a councilmember's inbox, becomes an attachment.

The consequence is that the dataset the analysis runs on is not the input the public gave you. Your board sees a chart built from the online form and a narrative built from everything else, and the two cannot be reconciled by anyone who was not in the room.

The fix is to make the comment the object, with many intake paths, before you build any front end. One record, whether it arrived through a web form, a monitored project email address that parses into the same queue, a bulk import from a meeting transcription, a mobile capture of a comment card photographed at a station pop up, or a staff logged phone call. Then deduplication matters, because the same resident often comments at a meeting and again by email and should not be counted twice. Every record carries its channel, its date, whether the person is in the affected area, which element of the plan it addresses, and whether it raises a substantive issue that requires a response or states a preference. Build that model first and the front end becomes a detail. Build the front end first and the model becomes a spreadsheet.

What goes wrong when you migrate past consultations and departmental records?

The most common discovery is that there is no prior record to migrate, only reports. Planning holds a PDF summary of the 2023 corridor consultation, transit holds a spreadsheet from the same period with different categories, and the raw comments live in a mailbox belonging to somebody who left. Migrating summaries produces a system that can tell you what a report concluded but not what a resident said, which is the opposite of what you need when the same question comes back three years later.

Where raw comments do exist, the failure is taxonomy. Each department tagged its own consultation with its own theme list, and the lists do not map. Forcing them into a single controlled vocabulary retrospectively rewrites what the analysts meant. What works better is to import comments with their original tags preserved as source values, apply the new taxonomy only going forward, and accept that historical analysis stays historical.

The third issue is personal information. Public input is a public record in most jurisdictions, but the raw intake often contains home addresses, phone numbers and health details that residents included voluntarily and that your disclosure rules treat differently from the comment itself. Deciding what is published, what is retained internally and what is redacted is a legal exercise with your counsel and your records officer, and it belongs before migration rather than after somebody notices an address in a published dataset.

Why do GIS layers and email intake break after launch?

The map integration fails on refresh, not on setup. A shapefile uploaded once at launch is easy. A live connection to an enterprise geodatabase, where an alignment gets revised by the engineering team on a Wednesday, is a different arrangement, and if the platform is holding a copy from three weeks ago residents are commenting on a plan that no longer exists. Agree with your GIS team at the start whether layers are published live from the authoritative source or snapshotted per consultation with a visible version and date. Either is defensible. Silent staleness is not.

Email intake fails on volume and on spoofing. A monitored project address is the highest value intake path and the most fragile: an organised campaign sends four hundred identical messages, an autoresponder loop starts, or a resident replies to a notification and the reply lands somewhere nobody reads. Parse into the queue rather than a mailbox, detect near identical text and group it as a campaign rather than discarding it, since a coordinated campaign is legitimate input that should be reported as one campaign with a count rather than four hundred separate opinions, and always send a machine confirmation so the resident knows the comment was received.

The third integration that breaks quietly is the notification path. Residents subscribe to a project, then the comment period closes and nobody tells them what happened. If the response to comments is not wired back to the people who commented, your engagement record shows you collected and never closed the loop, which is exactly the criticism that follows an agency from one project to the next.

What happens when accessibility, language access and records law are not covered?

These three are treated as compliance overhead and they are the three most likely to invalidate the work.

The Department of Justice rule for state and local government web content sets a WCAG 2.1 Level AA standard, with compliance dates that landed in 2026 for larger jurisdictions and 2027 for smaller ones, and your counsel should confirm your scope. The hardest surface by far is the interactive map. Placing a point on a map is a mouse gesture, and a resident using a screen reader needs a parallel path to the same outcome, which means selecting a location by address, by named intersection or by named segment, with the resulting comment carrying the same weight and appearing in the same dataset. That is design work, not a testing task at the end, and platforms that added a map widget later almost always fail here.

Language access is the second. Agencies receiving federal funds carry Title VI obligations, and meeting them properly means the interface, the notices, the supporting documents and the intake all work in the languages your community actually speaks, plus a way to receive and analyse comments written in those languages rather than only translating outward. Translating the survey and leaving the analysis monolingual produces participation you cannot use.

Records law is the third and the least discussed. Public input is generally a public record, so retention, disclosure and the handling of personal information inside comments all apply, and a platform that deletes drafts, overwrites tags or hard deletes spam may be destroying records. Ask your records officer what the retention schedule is before you agree a data model, and make deletion a documented state rather than an absence.

Should you build custom or configure what you already own?

If you run three or four consultations a year, mostly text based, in one or two languages, with no budgeting programme, buy. EngagementHQ from Granicus and PublicInput are mature, hosted and supported, and they will run a conventional comment period better than a half funded custom build. Put the difference into outreach, which is where participation actually comes from.

Decidim and Consul are serious open source participation platforms with active civic communities, and they are a legitimate route if you have real engineering capacity or a competent local partner. The failure mode is specific and common: deploying either one with nobody assigned to maintain it, so an unpatched instance holding public input becomes a liability. Zencity does something different again, listening to ambient sentiment rather than structuring a formal process, and it is not a substitute for a consultation record.

Build when two or more of these are true. Your consultations feed a statutory process where the decision record gets legally reviewed. Geography is central, meaning transit, planning, utilities or capital projects, and generic map widgets cannot express your alternatives. You run participatory budgeting with real money and an eligibility rule no product implements. Language access is a substantial obligation rather than a checkbox. Or several departments each bought their own tool and nobody can tell whether the public already answered a question, which is the most common and most expensive version of this problem.

How do hidden costs get into the quote?

Languages are the first multiplier and the most understated. A quote for a multilingual platform usually covers interface strings. It rarely covers translated notices, translated supporting documents, intake and analysis in those languages, or the human translators you will need for open text responses. Ask what is included and in how many languages.

GIS depth is the second. Publishing live layers from an enterprise geodatabase, with a versioning and refresh arrangement agreed with your GIS team, is a different piece of work from uploading a file once, and only one of them is usually quoted.

Identity verification for participatory budgeting is the third, particularly if the programme includes mailed codes or staffed in person paths, each of which is an operational process with software attached rather than a feature.

Accessibility conformance on interactive maps is the fourth and is genuinely harder than on ordinary pages. Historical migration is the fifth. Your own staff time is the sixth: designing the taxonomy, writing the response to comments policy and agreeing the retention schedule are your planners', your counsel's and your records officer's hours, and all three are on the critical path.

What separates a build that works from one that fails here?

Launch on a real but low stakes consultation. A park master plan, not a contested corridor. Give staff two weeks of internal use before the period opens, because the tagging taxonomy always changes once real comments arrive, and never launch a new platform on the day a statutory comment window starts.

Show the machine's work. If language models help classify comments, and they should, every suggestion must be visible, editable and attributed, with the human decision and the person who made it stored alongside. An automated summary of public input is the artefact a challenger will go after first, and defending it is harder than doing the classification transparently in the first place.

Report who did not participate. Collect optional demographic and geographic information with a stated privacy purpose, compare participation against community composition at tract level, and let that report drive a second outreach phase rather than sit in an appendix. Documenting the gap and what you did about it is what makes an engagement record credible to a reviewer.

Wire the loop closed. Every substantive comment should be traceable to a response, and every person who commented should be told where to find it. This is the single feature that changes how residents talk about an agency between projects.

Finally, settle ownership in writing before kickoff: the repository, the cloud accounts and the right to hire another firm. At Digital Heroes the client owns the code from the first commit. Public input is a public record, and it should never live somewhere your agency cannot leave.

Research & sources

The evidence behind this guide

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

  1. Organizations that scaled intelligent automation report an average cost reduction of 32% (up from 24% in 2020), and respondents expect an average 31% cost reduction over the next three years. Source: Deloitte (2022) →
  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. Gallup reports global employee engagement fell to 20% in 2025 (its lowest since 2020, down from a 2022-2023 peak of 23%), and estimates low engagement costs the world economy an estimated $10 trillion in lost productivity, or 9% of global GDP. (Note: this figure appears in Gallup's evergreen State of the Global Workplace page, currently reflecting the 2026 edition reporting on 2025 data.). Source: Gallup (2025) →
  4. In an RCT, the no-show rate was 23.5% for patients receiving a text-message reminder versus 38.1% for the control group - a 14.6 percentage-point reduction (p = 0.04). Source: Clinical Pediatrics / PubMed Central (Lin et al.) (2016) →
Oliver H. · Senior Account Director · UK · London

Oliver runs UK client accounts day to day, chairing the calls where scope, budget and timeline meet reality. He is useful reading for anyone about to commission custom software and wondering what a healthy agency relationship should feel like from the client side.

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

FAQ

Frequently asked questions

How do we capture comments that never touch the online form?
Model the comment as one object with several intake paths rather than treating the web form as the system and everything else as attachments. That means a monitored project email address that parses into the same queue, bulk import from meeting transcription, mobile capture of comment cards at pop ups, and staff logged phone comments. Then deduplicate, because the same resident often comments at a meeting and again by email and should be counted once.
Should we migrate past consultations?
Migrate raw comments where they still exist, with their original tags preserved as source values, and apply your new taxonomy only going forward. Migrating report summaries gives you a system that knows what a report concluded but not what residents said, which is useless when the same question returns in three years. Involve your records officer first, since raw intake often contains addresses and health details that your disclosure rules treat differently from the comment text.
What is the accessibility trap on map based comments?
That placing a point is a mouse gesture with no equivalent for a resident using a screen reader. The parallel path has to produce the same outcome, meaning selecting a location by address, named intersection or named segment, with the resulting comment carrying identical weight in the dataset. That is design work from the start, not a testing task at the end, and platforms that bolted on a map later usually fail it.
How should residency be verified for a participatory budgeting vote?
Not against the voter roll, because most programmes deliberately include residents who are not registered and often set a younger age floor. Practical methods are matching a submitted address against the municipal address file, mailing a one time code to the residence, and staffed in person verification with a recorded sign off. Whichever you choose, document the rule before voting opens and store the verification basis with every ballot so the count can be recomputed.
Can we use AI to summarise public comments?
Use it to suggest tags and group near duplicates, with every suggestion visible, editable and attributed, and the human decision recorded alongside. Do not use it to produce the narrative summary that goes to a board. An automated summary is precisely the artefact a challenger will attack, and you cannot defend a method nobody can reproduce. Transparent classification is more work up front and far less work under review.
Why do map layers go stale after launch?
Because the engineering team revises an alignment and nobody told the engagement platform. Decide at the start whether layers publish live from your enterprise geodatabase or are snapshotted per consultation with a visible version and date. Either is defensible to a reviewer. Silent staleness, where residents comment on a plan that no longer exists, is not, and it is the version that usually happens by default.
How do we handle four hundred identical emails from a campaign?
Group them as one campaign with a count rather than either discarding them or reporting them as four hundred independent opinions. Coordinated input is legitimate and should appear in the record as what it is. Detect near identical text automatically, let a human confirm the grouping, and keep every individual message retrievable, since each one is a public record even when the content is shared.
Which costs are most often missing from a civic engagement quote?
Languages beyond interface strings, meaning translated notices, documents, intake and analysis. GIS depth, since live publishing from an enterprise geodatabase is a different arrangement from a one time file upload. Identity verification paths for budgeting, particularly mailed codes and staffed in person options, which are operational processes. And your own staff time designing the taxonomy, writing the response to comments policy and agreeing retention with your records officer, all of which sit on the critical path.
Is it cheaper to customize Salesforce than to build a custom CRM from scratch?
If you use less than a third of what Salesforce does, a custom CRM is often cheaper by year three. Salesforce Enterprise lists at $165 per user per month, so 25 seats cost about $49,500 a year before admin and consultant fees, while a focused custom CRM runs $60,000 to $100,000 once plus 15 to 20% a year in maintenance. If you genuinely need Salesforce's ecosystem, reporting, and app marketplace, customizing it beats rebuilding it; the mistake is paying enterprise prices to use it as a glorified contact list.
How many people should be working on my software project?
Three to five for a typical focused build: a project lead, one or two engineers, a designer, and part-time QA, which is the standard shape across 2,000+ Digital Heroes projects. Larger platforms justify 6 to 10, but a ten-person team on a small first version usually signals bill padding rather than horsepower. What predicts success is whether a senior engineer is writing your code daily, not the headcount on the proposal.
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.
What should I have ready before I contact a development agency?
Three things, none of them technical: a one-page description of the problem in your own words, a list of the tools and spreadsheets the new system must replace or connect to, and a must-have versus nice-to-have split of features. Add a budget range, even a wide one, because it changes the conversation from fantasy to engineering. You do not need a formal specification; producing that is what a discovery phase is for.
How do I vet a software development agency before signing a contract?
Ask to speak with two past clients whose projects resemble yours in size and industry, and ask exactly who will write your code, since some agencies sell senior faces and deliver junior or subcontracted hands. Demand a written specification with acceptance criteria before any fixed price, and check that their portfolio links to products that are actually live. An instant quote given without questions about your workflows is the clearest warning sign there is.
How do I calculate whether custom software will pay for itself?
Divide the build cost by the monthly benefit, where benefit is hours saved times loaded hourly cost, plus subscription fees replaced, plus any revenue the software unlocks. Three staff saving 10 hours a week each at a $40 loaded rate is about $62,000 a year, which pays back a $60,000 build in roughly 12 months. Across Digital Heroes internal-tool projects, 12 to 24 months is the normal payback range, and anything projecting under 6 months usually means the spreadsheet is hiding costs.
What questions should I ask a development agency on the first call?
Ask who exactly will build it, what happens when scope changes mid-project, what their maintenance terms are after launch, and what they will need from you every week. Then ask them to describe a project that went wrong and what they changed afterward; teams that have shipped at real volume have war stories, and teams claiming a perfect record are hiding something. The scope-change answer matters most: a disciplined shop describes a written change-order process, not a vague promise to be flexible.
Does it matter which tech stack the agency wants to use?
Yes, but not in the way most buyers expect: the goal is boring, popular technology such as React, Node.js or Python, and PostgreSQL, because any future team can maintain it and hiring a replacement developer takes days, not months. The red flag is an agency-proprietary framework or an unusual language, which welds you to that one vendor no matter what your contract says about code ownership. A useful test: could you find three freelancers fluent in this stack within a week? If not, push back.
Can custom software connect to the tools we already use, like QuickBooks, Stripe, and Google Workspace?
Yes, and connecting your existing tools is one of the main reasons to build custom: mainstream platforms like QuickBooks, Stripe, Shopify, and Google Workspace all publish documented APIs. Budget 1 to 3 weeks of work per integration depending on API quality and how much data flows in both directions. Ask any vendor whether they have integrated with your specific tools before, because quirks like QuickBooks' OAuth token handling and API rate limits get learned on someone's project, and it should not be yours.
How small can the first version of my software be and still be worth building?
One workflow, end to end, for one type of user: the single process that currently burns the most hours or loses the most money. In Digital Heroes delivery experience, first versions scoped to 6 to 10 weeks of build time ship, get used, and generate the feedback that makes version two obviously right, while 9-month first versions routinely launch with features nobody touches. Everything you cut from v1 gets cheaper to build later, because real usage reorders the roadmap for you.
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?