Who Can Audit and Fix Your App Before a Security Review? Firms Compared (2026)
If you want to know how to tell if a software agency is padding the scope, read the quote for what it will not show you. Padding hides in a lump sum with no line items, in a contingency nobody explains, in a team heavier than the work, and in a rebuild proposed before anyone has read your code. This guide gives you the signs, the question that exposes each, and what an honest quote looks like, including when the big number is the honest one.
I run Razoyo, a software engineering firm in The Colony, Texas, that has taken prototypes and constrained systems into production since 2011. We write quotes for a living, so every test below works on ours too. Use them on us.
A quote is padded when you cannot trace the total back to specific pieces of work, each with its own effort and price. Padding is not always dishonest. Usually it is a vendor covering risk it has not understood, and you pay for it either way. Our own scoping page says it plainly: “A vendor who has not scoped either pads or lowballs.”
Six signs, roughly in the order they show up:
The opposite failure costs just as much. As that same page puts it, lowballing “wins the deal and finds the real scope later,” through change orders.
The questions that expose padding all ask the vendor to show their work: what they read, what each piece costs, and what happens when an assumption breaks. An honest vendor can answer every row in the meeting.
| Sign in the quote | The question that exposes it | What an honest answer sounds like |
|---|---|---|
| Lump sum, no line items | “Can you break this into pieces of work, each with an effort estimate?” | Features or epics, each with days and a price, adding up to the total |
| Activities instead of deliverables | “What will I be able to test at the end of each phase?” | Named, demonstrable software and documents, with acceptance criteria |
| Unexplained contingency | “Which risks does the contingency cover, and who approves spending it?” | Named risks with a size each, drawn only with your sign-off |
| Rebuild before reading the code | “What did you read before recommending a rebuild?” | Specific findings on the data model, architecture, tests, deploy path and access |
| Team heavier than the work | “What does each person on this plan do in week three?” | A role tied to work that exists that week, or a smaller team |
| No stopping point | “What do I own if I stop after the first phase?” | A finished document or working software you keep and can take elsewhere |
| Suspiciously low total | “Which assumptions, if wrong, move this number most?” | A short list of named assumptions and what each costs if it breaks |
A rebuild recommendation is only credible if the firm can tell you what it read and which finding forced it. “The code is messy” is not a finding. Messy code on a sound structure can usually be repaired. What forces a rebuild is a foundation that cannot carry where the product has to go.
Ask for the evidence by dimension. When we do technical due diligence, we check the same seven things every time: security and access, data integrity, architecture, test coverage, observability and alerting, a real deploy path, and documented ownership. A real rebuild case points at the expensive dimensions, usually the data model and the architecture. Missing tests and a manual deploy are cheap to fix.
Then ask the question that reveals the incentive: “What would the cheaper path cost, and why did you reject it?” A firm that never priced the repair has done a sales call, not an assessment. Our guide to rewrite versus refactor on an inherited codebase walks through that decision.
Here is what an honest rebuild looks like. Matrix began as an internal CRM for hotel sales teams, built for a single organization: every data model and workflow was scoped to one tenant, and performance was unreliable. To become a product many hotel groups could use, the foundation had to change, so we rebuilt it as Matrix, a multi-tenant SaaS platform, for M1 Intel. The case fit in one checkable sentence: it was single-tenant to its core. Hold every rebuild proposal to that standard.
Custom software projects go over budget mainly because the work was never defined well enough to price, and because software overruns are lopsided: most projects miss by a little, and a meaningful minority miss by multiples. The research agrees on the shape.
Be fair about the limits: the Flyvbjerg projects averaged $167 million and drew heavily on public agencies, and a $40,000 build is not an ERP rollout. But the shape transfers, and so does their advice: break big projects into pieces of limited size, complexity and duration. We left out the Standish CHAOS figures common on this topic because we could not check them against the original report.
From our side of the table, the cause is rarely the code. As our scoping page puts it, the reason projects overrun “is almost never a surprise in the code.” It is that nobody agreed what a piece of work was worth before it started. Vague requirements let “the build” mean three different systems depending on who you ask.
So a vendor facing an undefined scope can pad the quote to survive the tail, or define the scope until the tail shrinks. Only the second is worth paying for.
Neither protects you on its own: fixed price moves the overrun risk to the vendor, who prices it in, and time and materials keeps the risk with you, which only works with a ceiling and an approval on each piece. US federal contracting rules say it plainly. A firm-fixed-price contract, per FAR 16.202-1, places “maximum risk” on the contractor. That is why a fixed bid on an undefined scope carries padding: the vendor is buying insurance against your unknowns, with your money. Time and materials, per FAR 16.601, fits only when the extent or duration of the work cannot be estimated accurately up front, gives the contractor no profit incentive to control cost, and needs a ceiling price and real oversight.
| Model | Who carries the overrun risk | Where padding hides | When it fits | The question to ask |
|---|---|---|---|---|
| Fixed price for the whole build | The vendor, so it is priced in | A risk premium inside the total | Small, fully specified work | “What written scope is this price based on?” |
| Open-ended time and materials | You | Hours that expand to fill the budget | Short bursts with a technical lead on your side | “What is the ceiling, and what happens when we reach it?” |
| Fixed-price spec, then estimated and approved pieces | The vendor on the bounded step, you on each piece you approve | Very little, because each piece is priced before it starts | Custom builds whose scope is not yet written down | “Who approves each piece of work, and before or after it starts?” |
The third row is how Razoyo works, so weigh my opinion accordingly. The System Spec is $2,500 fixed because it is bounded work. The build carries a range until the Spec exists, then gets a real number in writing, and a business analyst puts a level of effort and a budget on each piece of work and gets your confirmation first. The full ladder is on our process page.
An honest software quote shows its work: what it is based on, what each piece costs, what it assumes, and where you can stop.
Stopping points matter. When a vacation-rental startup asked us to build a two-sided marketplace, we did not quote the build. We ran a $2,500 fixed-fee Production Spec instead. The product brief arrived ten days after kickoff, the PRD two weeks after that, and a working prototype of the host side within six weeks. The most they ever had at risk was $2,500.
A big quote is honest when it is big for reasons you can see: a foundation that has to change, integrations with systems you do not control, data that must move without loss, compliance work, or real scale. Matrix was one. The test is whether every part of the number traces to something in your project.
Sometimes the honest number is bigger than you hoped. Our scoping page describes a Spec where the estimate came back larger than the founder had in mind, and we did not shave it to make it easier to sign. She took the finished Spec to a development partner who could fund the build. A quote shaved to fit your budget is padding in reverse: the missing money comes back as change orders.
And sometimes you do not need a firm like ours. If your project is genuinely simple and already well defined, a freelancer may be the right call, and our pricing page says so. For something already built, our comparison of firms that take over existing codebases names alternatives and where each beats us.
Before signing, ask questions that make the vendor commit in writing to what they read, what each piece costs, and what you keep if you stop. Beyond the table above:
For what each step actually costs, see what it costs to take an AI-built prototype to production.
Run any quote through these six lines, ours included. Each is pass or fail, and each comes from how we price our own work.
Six passes means you are comparing on price and fit. Four or five means ask for the missing lines in writing. Three or fewer means nobody has scoped the work, and you would be paying for the guess.
Run it through the six lines before you negotiate the price, because a padded number negotiated down is still an unscoped project. If it fails on basis and pieces, scope the work first, then ask every vendor to price the same document. That is the only way two quotes become comparable.
How do I know if a software quote is padded? Ask the vendor to break the total into pieces of work, each with its own effort estimate and price. If they cannot, or the pieces do not add up to the total, the number is covering risk nobody has assessed.
Is a contingency in a software quote a red flag? Not by itself. A contingency is legitimate when it is sized, tied to named risks, and drawn only with your approval. It becomes a red flag when it is a flat percentage with no reasons and no rule for who decides to spend it.
How do I know if I really need a rebuild? A rebuild is justified when the foundation cannot carry where the product has to go, usually the data model or the architecture. Messy code on a sound structure can usually be repaired while the product keeps running. Ask what the firm read, which finding forced the recommendation, and what the cheaper repair would cost.
Why do custom software projects go over budget? Mostly because the work was never defined well enough to price. McKinsey and the University of Oxford found large IT projects ran 45 percent over budget on average, and Flyvbjerg and Budzier found one in six IT projects overran cost by 200 percent on average. Buying in small, bounded steps limits that exposure.
Is fixed price or time and materials better for custom software? Neither is better on its own. Fixed price moves the overrun risk to the vendor, who prices it in, so it suits small, fully specified work. Time and materials keeps the risk with you, so it needs a ceiling and an approval on each piece of work before it starts.
What should a software development quote include? The spec or requirements document it prices, line items with effort estimates, named assumptions, a visible contingency, stopping points, and approval before spend. Without the written basis, the rest is a guess.
What should I ask a software agency before signing? Ask what they read before giving you a number, what happens when they find something unexpected, whether they will ever tell you not to build, and who owns the code in writing. Vendors who have scoped the work answer these without hesitation.
How much does it cost to get a real estimate? At Razoyo, the 30 minute consultation is free and the System Spec is $2,500 fixed. The Spec produces a product brief, a PRD and a senior-engineer build estimate, and the brief and PRD are yours whether or not you build with us.
If you have a quote on your desk and cannot tell what is inside it, bring it to a free 30 minute consultation and we will run the Six-Line Quote Check on it with you. If it passes, you will hear that you should sign it. If the work has not been scoped yet, the next step is a $2,500 fixed System Spec that ends in a real build estimate in writing, which you can take to any team. Schedule Free Consultation.
Paul Byrne is President of Razoyo, a software engineering firm in The Colony, Texas taking prototypes and constrained systems into production since 2011.
These links open AI platforms with pre-written prompts about this page.
We use cookies to improve your experience. Do you accept?
To find out more about the types of cookies, as well as who sends them on our website, please visit our cookie policy and privacy policy.