Problems & solutions · Internal Tools

Penetration Testing Delivery Software Problems: The 7 That Cost Consultant Days, and How to Avoid Them

Penetration Testing Delivery Software product interface illustration showing common problems and fixes.
The short answer

The failure that kills more testing platforms than anything else is report rendering that does not match the firm's existing template. The build ships, a senior consultant exports the first client deliverable, the appendix tables are wrong, the heading styles drift and the cover page is not quite right, so they paste it into Word and fix it by hand. Within three weeks every consultant is back in Word, the finding library stops filling, and a platform that cost six figures becomes a place where nobody stores anything. Getting the template right is unglamorous, it is usually the largest single line in the build, and it is the difference between a tool the practice adopts and a tool the practice quietly abandons.

Why does report template fidelity get underestimated in almost every quote?

Because it looks like formatting. A developer sees a Word document, sees a templating library that produces Word documents, and prices two weeks. What is actually in that document is a decade of accumulated client expectation: numbered heading styles that continue across appendices, a findings table that repeats its header row across page breaks, a severity chip whose colour matches the firm's brand, an executive summary that renders differently for a retest than for an initial engagement, and evidence images that must not push a finding onto an orphan page.

The consequence is specific and predictable. Consultants do not complain in a meeting. They export from the platform once, spend forty minutes fixing it in Word, and never mention it. Adoption dies silently, and the practice lead finds out at the quarterly review when the finding library still has eleven entries in it.

The fix is to invert the build order. Before any workflow is designed, take a real, recent, signed off report and reproduce it from structured data end to end, including the appendix and the retest variant. If the team cannot do that in the first three weeks, the rest of the project is at risk regardless of how good the feature list looks. Ask for that as a paid discovery deliverable if necessary, because it is cheaper than finding out in month five.

What goes wrong when you try to import historical findings from old reports?

Every firm wants the back catalogue in the new system, because trend reporting across engagements is the commercially valuable output and it needs history. The problem is that the history is prose. Five years of Word documents contain findings written by twenty different consultants in twenty different voices, with severities assigned by feel, evidence embedded as cropped images with no reproduction step, and no stable identifier linking the same issue across two engagements for the same client.

Firms attempt this in one of two ways and both go wrong. Manual re-keying gets scoped as a few weeks of junior time, then stalls at the point where somebody has to decide whether two differently worded findings are the same issue. Automated extraction produces a database full of plausible looking records that nobody trusts, which is worse, because the first trend report built on it will be wrong in a client meeting.

What works is a deliberate cut. Import structured metadata only for old engagements: client, date, scope, finding count by severity as recorded at the time, and a link to the original document. Do not attempt to normalise old finding text into the new taxonomy. Then start the real library from the current quarter forward, and accept that meaningful cross engagement trend reporting begins twelve to eighteen months after launch. Firms that accept that timeline get a clean data set. Firms that insist on backfilling get a dirty one and lose six weeks doing it.

Why do scanner imports and ticketing integrations break after launch?

Scanner output is the classic case of an integration that works in the demo and degrades quietly in production. Each tool exports its own shape, versions change those shapes without announcement, and the same underlying issue is described differently by two tools on the same host. A parser written against one export of one version will keep running after an upgrade and simply produce fewer findings, which nobody notices because nobody is counting what did not appear.

Ticketing is worse in a different way, because it involves someone else's system. Pushing findings into a client's issue tracker is a genuinely useful feature and it is the one most likely to break, because the client changes their project configuration, renames a field, tightens permissions on the service account, or moves to a different instance, and none of that is under your control. The failure is not an error message, it is a finding that silently never arrived, discovered when the client asks why remediation was never raised.

The fixes are unglamorous. Version detect on import and fail loudly on an unrecognised format rather than parsing what you can. Reconcile counts: if the file contains 214 findings and you created 190 records, that difference gets surfaced to the consultant before they proceed. For ticketing, treat every push as a job with a persistent status and an alert on stale queues, and give the client a reconciliation view listing findings that have no corresponding ticket. Assume the integration will break, and design so that its breaking is visible within a day.

What happens when tenant isolation and evidence retention are not covered?

These are the two requirements where a shortcut is not a technical debt, it is a business ending event, and both are routinely left until the client portal ships.

Isolation has to be enforced at the data layer, with tests that prove a query executed in one tenant's context cannot return another tenant's rows. Filtering in application queries works right up until one developer writes one query without the condition, and the failure mode is a client seeing another client's vulnerabilities. There is no recovery from that in a testing practice. If a developer describes it as an ordinary access control problem rather than a data layer boundary designed on day one, that is disqualifying.

Evidence retention is the one your own clients will ask about before you think of it. Screenshots and request captures from an engagement frequently contain live customer data, session tokens and internal hostnames. Once that material is in your platform rather than on a consultant's laptop, you have taken on custody of it, which means you need per client retention rules, deletion that actually deletes including from backups, and automated detection of common sensitive patterns before a report renders. Regulated clients will put all of this in a supplier assessment, and a build that has no answer will cost you the account it was meant to serve.

Should you build custom or configure what you already own?

Most testing firms should buy, and we say so before quoting. PlexTrac is a mature product built for exactly this workflow, with a reusable finding library, evidence handling and reporting that a firm of fifteen consultants will not beat with a build. AttackForge is strong on workflow and automation. Dradis has done the finding library well in the open source world for years and is worth a look if you have engineering appetite and want to avoid per seat costs.

Configure rather than build when your dissatisfaction is about report formatting or a missing field, because both are configuration problems in the mature tools and neither justifies a platform. Configure when your finding library is inconsistent, because that is a content and editorial problem, not a software one, and no build fixes a taxonomy nobody has written down.

The build case is arithmetic. It appears when your methodology and finding taxonomy are what you sell against and a generic library dilutes them, when per consultant and per portal user licensing has become a real line item, when enterprise clients need a portal authenticated against their own identity provider, when you have a commercial model such as retainer day drawdown that your tooling cannot express, or when data residency obligations for regulated clients rule out a hosted platform. Two or more of those, at twenty or more consultants, and the numbers work. One of them, at ten consultants, and they do not.

How do hidden costs get into the quote?

Five items, and each is usually a single line in a proposal.

The report template. Discussed above, and consistently the largest underestimate in this category. Price it as its own workstream against your real document.

Per client single sign on. Every enterprise client wants their own identity provider, and each one is an onboarding exercise with the client's own IT team, not a setting. Ask how many the quote assumes.

Scanner parsers. Each tool is its own parser with its own maintenance. A quote saying scanner ingestion without naming the tools is quoting an unknown.

Multi tenancy done properly. Adding a hard data layer boundary after the fact is a rebuild of the data access layer, so it either exists from day one or it costs several times more later.

Evidence storage and residency. Storing evidence for regulated clients under their residency terms can mean a second deployment region, which affects hosting, backups and operations for the life of the platform.

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

Consultant adoption first, portal second. A client portal sitting on top of a platform your own people avoid is money spent on a facade. Ship the finding library, structured evidence and report generation, watch three real engagements run through it end to end, and only then build the client facing side.

Restraint about where AI belongs. Drafting a finding narrative from structured evidence in your house voice, rewriting technical detail into a business impact paragraph, and clustering duplicate findings across a large scope are all useful and safe because a consultant reviews before anything ships. Generating findings, inventing impact or assigning severity without a human is not acceptable, because your signature on that report is the product. A developer who offers the second set has not understood what you sell.

Scoring that encodes your own matrix rather than a base score. A vulnerability score describes the vulnerability, not the client's exposure, and the reason your seniors argue in review is that the reasoning lives in prose. Encode asset exposure, data classification, exploit complexity and compensating controls as inputs, let the rating fall out, and have the report explain the reasoning in your language.

Ownership settled before kickoff: the repository, the infrastructure accounts and the right to hire another firm. At Digital Heroes the client owns the code from the first commit, and for a platform holding client vulnerability evidence we would expect your own team to test it before go live, which is exactly what we would demand if we were the client.

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. McKinsey found that tech debt can amount to 20-40% of the value of a company's entire technology estate before depreciation, and CIOs report that 10-20% of the budget for new products is diverted to resolving tech-debt issues. Source: McKinsey & Company (2020) →
  3. Workers can expect 39% of their existing skill sets to be transformed or become outdated over 2025-2030; 77% of employers plan to upskill their workforce, and 63% identify skill gaps as the biggest barrier to business transformation. Source: World Economic Forum (2025) →
  4. McKinsey found that currently demonstrated technologies can fully automate about 42% of finance activities and mostly automate a further 19%, indicating roughly 60% of finance work is technically automatable. Source: McKinsey & Company (2018) →
Imogen N. · SEO Specialist · APAC · Sydney

Imogen handles SEO for APAC clients, covering the technical side as much as the content side: crawlability, site structure, page speed and the internal linking that decides what search engines find. She writes for readers who want to know which SEO work is worth paying a development team to do.

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

FAQ

Frequently asked questions

Why do consultants stop using a new pentest platform after a few weeks?
Nearly always because the report it produces does not match the firm's template, so the first person to export a real deliverable fixes it in Word and quietly keeps working that way. Nobody raises it in a meeting, the finding library stops filling, and the platform becomes a place where nothing is stored. Reproduce a real signed off report from structured data, including the appendix and the retest variant, before any workflow screens are designed.
Should we import five years of old reports into a new finding library?
Import structured metadata only: client, date, scope, finding counts by severity as they were recorded, and a link to the original document. Do not try to normalise old prose findings into a new taxonomy, because the exercise stalls the moment somebody has to decide whether two differently worded findings are the same issue, and automated extraction produces records nobody will defend in a client meeting. Start the real library from the current quarter and accept that trend reporting begins twelve to eighteen months later.
What is the safest way to handle tenant isolation in a testing platform?
Enforce it at the data layer with tests that prove a query in one tenant's context cannot return another tenant's rows, and design it on day one rather than when the client portal ships. Application level filtering holds until one developer writes one query without the condition, and the failure mode is one client seeing another client's vulnerabilities, which a testing practice does not recover from. Retrofitting the boundary later means rebuilding the data access layer.
How do scanner imports fail without anyone noticing?
A parser written against one export format keeps running after the tool is upgraded and simply produces fewer findings, and nobody counts what did not appear. The fix is version detection that fails loudly on an unrecognised format, plus a reconciliation step that compares the finding count in the file against the records created and shows the consultant the difference before they proceed. Quotes that say scanner ingestion without naming the specific tools are pricing an unknown.
What evidence handling obligations come with storing client screenshots?
Once evidence leaves consultant laptops and lands in your platform you have taken custody of material that frequently contains live customer data, session tokens and internal hostnames. That means per client retention rules, deletion that genuinely removes data including from backups, automated detection of common sensitive patterns before a report renders, and an answer ready for supplier assessments. Regulated clients ask these questions in procurement, so a platform with no answer costs you the account it was meant to serve.
Is PlexTrac good enough, or should we build our own delivery platform?
For most firms PlexTrac or AttackForge is the better economics and we say so before quoting, particularly below about fifteen consultants. The build case appears when your methodology and taxonomy are what you sell against, when per consultant and per portal user licensing has become a real line item, when enterprise clients need a portal on their own identity provider, when your commercial model such as retainer day drawdown cannot be expressed, or when data residency rules out a hosted platform. Two or more of those at twenty plus consultants is when the numbers work.
Where does AI genuinely help in report delivery, and where is it dangerous?
Safe and useful: drafting a finding narrative from structured evidence in your house voice, rewriting technical detail into a business impact paragraph for an executive summary, and clustering duplicate findings across a large scope. Not acceptable: generating findings, inventing business impact, or assigning severity without a consultant reviewing, because your signature on the report is the product. A developer who offers the second set has misunderstood what your firm sells.
Which line items most often blow up a pentest platform budget?
Report template fidelity against your real document, per client single sign on where each enterprise client is its own onboarding exercise, one parser per scanner tool with ongoing maintenance, multi tenancy done at the data layer, and evidence storage under a client's data residency terms which can mean a second deployment region. Each appears as one line in a proposal and each is a workstream. Ask for separate estimates on all five before signing.
Is a custom internal tool secure enough for HR records and financial data?
A properly built custom tool is generally safer for sensitive data than the shared spreadsheet it replaces, because you get role-based access, audit logs, encrypted storage, and the ability to cut one person's access instantly. Ask the agency specifically for encryption in transit and at rest, permissions down to the field level, and an audit trail showing who viewed or changed each record. If HIPAA, GDPR, or SOC 2 expectations from enterprise clients apply to you, raise it before the quote, because compliance features add real scope.
How long does it take to build an internal tool from scratch?
A working first version typically ships in 4 to 8 weeks, and larger multi-module tools run 10 to 16 weeks. Across Digital Heroes internal tool projects the schedule splits into roughly one week of process mapping, 3 to 6 weeks of build, and 1 to 2 weeks of testing with your actual staff. The most common delay is not development but waiting on the client for sample data and workflow decisions, so name one internal owner before kickoff.
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 are the biggest mistakes first-time software buyers make?
Choosing the lowest bid, paying more than 30-40% upfront instead of on milestones, skipping a written specification, and having no maintenance plan for after launch. The most expensive of the four in Digital Heroes rescue projects is the missing spec: without written acceptance criteria, done becomes an argument instead of a checklist, and every disagreement resolves in the vendor's favor. Fix those four and you have avoided most of the ways these projects fail.
Can a custom internal tool connect to QuickBooks, Salesforce, and the other software we already use?
Yes, and integrations are usually the strongest argument for going custom instead of chaining tools together with Zapier. QuickBooks, Salesforce, Shopify, Stripe, Slack, and Google Workspace all have mature APIs, and each integration typically adds $1,500 to $5,000 to a Digital Heroes build depending on how much two-way syncing you need. The honest caveat is legacy industry software without an API, which may need file-based imports instead of a live connection, so list every system in the first conversation.
How much does a custom internal tool cost to build?
Most custom internal tools cost $8,000 to $40,000 to build, based on Digital Heroes delivery data across 2,000+ client projects. A single-purpose tool like an approval dashboard or inventory tracker sits at the low end, while a multi-department platform with role-based access and several integrations pushes past $40,000. The three biggest cost drivers are the number of user roles, the number of systems the tool must connect to, and custom reporting requirements.
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.
Will a custom internal tool scale as our company grows?
Yes, provided it sits on a standard stack with a real database: PostgreSQL comfortably handles millions of records, and adding users costs hosting pennies rather than per-seat fees. The real scaling risks are organizational, not technical: new departments want features, processes change, and the tool needs a budget line to evolve. Set aside a small quarterly improvement budget instead of treating launch as the finish line, and the tool stays useful for a decade rather than getting rebuilt every two years.
What are the most common mistakes companies make when building internal tools?
The three failures Digital Heroes sees most: building for every department at once instead of nailing one workflow, designing without the end users so staff quietly go back to their spreadsheets, and leaving no named owner after launch so small bugs pile up until the tool dies. A subtler fourth is faithfully recreating the old spreadsheet, including its workarounds, instead of fixing the process first. Start with one team's most painful workflow and put the actual users in the room from week one.
Who can build a custom internal tools system?

Digital Heroes builds custom internal tools 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 internal tools 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?