Problems & solutions · Project Management

PSA Software Problems: The 5 That Cost Agencies Real Money, and How to Avoid Them

PSA Software Development software overview illustration showing common problems and fixes.
The short answer

The most expensive failure in an agency PSA build is modelling a rate as a single number on a person or a project. The day someone gets a raise, every prior month's margin silently rewrites itself, and the moment a client negotiates a rate change mid-contract, invoices keep going out at the old number because nothing enforces the new one. One consultancy we worked with renegotiated a senior rate from $165 to $185 and kept invoicing at $165 for six months, about $19,000, found only when the client queried a renewal quote. Effective-dated rates with a contract override order are not a refinement you add later. They are the data model, and retrofitting them means recomputing history.

Why does the dashboard-first scope failure happen so often?

The pain that gets an agency PSA project funded is always the same: the managing partner asks for current utilization in Monday's leadership meeting and gets a figure for a month that closed four days ago. So the brief is written as reporting. Sync Harvest, build a utilization dashboard, put it on a screen. It demos beautifully and it changes nothing, because the number on the dashboard is produced by the same arithmetic the operations director was already doing, just faster.

The thing that actually leaks margin sits underneath: there is no work-in-progress ledger between the timesheet and the invoice. Hours are approved, someone builds an invoice from an export, and time that never made it onto an invoice simply evaporates with no record that it existed. Two points of unbilled time across 80 billable people at a $150 blended rate is roughly $400,000 a year, and a dashboard cannot see it because a dashboard reports what was recorded, not what should have been billed.

The fix is to build the ledger first and the dashboard as a view over it. Every approved hour becomes a priced WIP line with a state: unbilled, billed, written off or carried. Writing time off requires a reason code and a name. Utilization then falls out of that data for free, and realization, which is the number that actually explains your P and L, becomes available for the first time.

What goes wrong when years of Harvest history are migrated?

Harvest exposes full time entry, project, client and invoice history through its interface, so people assume migration is a scripted afternoon. The extraction is the easy half. The problem is that your old Harvest project and task structure does not map cleanly onto the new rate card and contract model, and nobody discovers that until the mapping is attempted.

The specific defects repeat across agencies. Projects created per campaign rather than per contract, so a single master services agreement is spread across nineteen Harvest projects with no shared parent. Task codes that meant something in 2021 and were reused for something else in 2023. Time logged to a placeholder project called Internal that turns out to contain real billable work for two clients. People who left, came back as contractors, and exist twice with different cost assumptions. Feed that into a new margin engine and every historical number it produces will be wrong in a way nobody can explain.

The fix is a cleanup pass with your operations team before cutover, not during it. Produce a mapping table from old project and task codes to the new contract, client and service line structure, have a human sign off on the ambiguous rows, and decide explicitly how far back you are migrating priced history versus raw hours. Then cut over on a month boundary and run one full parallel invoice cycle, so no billing period is ever half in each system.

Why does the two-way QuickBooks sync break after launch?

The demo sync works. Draft invoice generates, pushes to QuickBooks Online, appears in the ledger. Everyone signs off. Then finance voids an invoice in QuickBooks because a client disputed a line, and the WIP behind it is still marked billed. Now your realization report is wrong and nobody knows, because the failure is silent.

The events that break a one-directional design are the ordinary ones: voids, credit memos, partial payments, an invoice edited directly in QuickBooks rather than in the new system, and a payment applied across two invoices. Each of those has to flow back and adjust the WIP lines that produced the invoice. A nightly export cannot do it, because a nightly export has no concept of which WIP line a credit memo relates to.

The fix is to design the reverse path before the forward one. Ask the developer directly what happens in their model when an invoice is voided in QuickBooks after the WIP behind it was marked billed. Anyone who has run a two-way ledger sync in production for a year answers immediately and describes the reconciliation job. Anyone who has not says the interface handles it. Insist on a daily reconciliation report that lists every invoice where the ledger and the WIP disagree, with an owner, because drift is not preventable and undetected drift is what makes the numbers untrusted again.

What happens when contract terms are not modelled properly?

Your contracts are the product of years of negotiation: a retainer with 20 percent hour rollover, a fixed-fee build billed on milestones, a master services agreement with a rate escalator on each anniversary, a time and materials engagement with a cap. If the build treats a contract as a budget number and a rate, every one of those terms goes back to being enforced by staff memory, which is exactly the failure you paid to remove.

Three consequences follow. Rollover balances get tracked in someone's head, and a client eventually claims hours you did not know they had. Escalators do not fire, so you invoice at last year's rate through the whole of the new contract year. And fixed-fee revenue gets recognised on invoicing rather than on delivery, which is fine until an acquirer's diligence team asks how revenue is recognised under ASC 606 and the answer is a spreadsheet.

The fix is to make the contract a first-class object rather than an attribute of a project. Entitlements, rollover rules with expiry, milestone schedules, caps and escalators are enforced by the system and are visible to the account director before they promise anything. Recognition schedules generate from those terms and post monthly to your ledger. If a sale or an audit is anywhere in your future, this is the part that pays for the project on its own.

Should you build custom or configure what you already own?

Below roughly 40 billable people, a single entity and mostly time and materials billing, do not build. Harvest at about $12 per seat per month plus QuickBooks plus one disciplined operations person genuinely works, and the money is better spent on the operations person. Fix the obvious things first: put cost rates in one place with dates on them, standardise your project naming so exports stop needing manual repair, and close invoicing within five working days.

If you have outgrown that, the honest next step is a mid-market PSA before any build conversation. Productive, BigTime and Kantata exist precisely for agencies at your size, and if their data model expresses your contract terms then subscribing is the better commercial decision by a wide margin. Run your three most awkward agreements through a trial and see whether the system can enforce them without a spreadsheet on the side.

Build when the spreadsheet layer survives the trial. That is the real test. If someone senior still spends three or more days a month reconciling by hand after configuring a proper PSA, if your contracts contain rollover and escalation terms no vendor's model enforces, or if you run more than one entity with cross-border staffing, then the spreadsheet is your actual PSA. It is unaudited software with one maintainer, and replacing it with owned, tested software is the conservative choice.

How do hidden costs get into the quote?

Four places, consistently. The first is the accounting sync, quoted as an integration and delivered as a one-way push, with the reconciliation work reappearing as a change request three months later. Get the void, credit memo and partial payment cases written into the scope in words.

The second is migration. Extraction is cheap and mapping is not, and the mapping effort depends entirely on how disciplined your Harvest structure has been. Ask for migration to be priced after a discovery pass on your actual data rather than before.

The third is permissioning. Account directors seeing only their own clients, partners seeing everything, contractors seeing almost nothing, and cost rates hidden from people who should not see salaries. This is rarely in a first quote and always required before go-live.

The fourth is multi-entity and multi-currency. If a London strategist works a New York account, someone has to decide the transfer rate, which entity carries the revenue and what rate the hours convert at. That is a modelling decision with tax implications, not a configuration toggle, and it should be discussed before a number is agreed. Then budget 15 to 20 percent of build cost per year for maintenance and integration upkeep.

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

The builds that work start at the invoice and move backwards. If the system can produce next month's invoices correctly, with backing detail a client will accept, everything upstream of that is already right. Teams that start with resource planning because it is the most interesting screen tend to ship a beautiful forecast sitting on rates nobody trusts.

They also run parallel for one full billing cycle rather than cutting over on a weekend. Finance builds invoices both ways and compares them line by line. Every difference found in that week is a defect you would otherwise have shipped to a client, and the exercise is what converts finance from sceptics into owners.

They treat the write-off report as a feature, not an embarrassment. Making it visible who wrote off what, and why, is uncomfortable for about a month and then changes behaviour permanently, because realization stops being an accident.

And they settle ownership before kickoff: the repository, the cloud accounts, the documentation, under work-for-hire terms. This system produces the numbers in your statutory accounts and the evidence in your next diligence process. Any arrangement where a developer hosts it on accounts you cannot access, or licenses your own system back to you, is a dependency you will pay to escape later.

Research & sources

The evidence behind this guide

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

  1. McKinsey argues software developer productivity can be measured by combining system-level metrics (DORA and SPACE) with its own outcome-oriented approach, which it reports deploying across nearly 20 tech, finance, and pharmaceutical companies - a claim that sparked significant debate in the engineering community. Source: McKinsey & Company (2023) →
  2. Only about 30% of digital transformations succeed at meeting their objectives, but getting six critical success factors in place (leadership commitment, talent, agile culture, progress monitoring, clear strategy, and a modernized platform) raises the odds of success from 30% to 80%. Source: Boston Consulting Group (BCG) (2020) →
  3. Only 22% of firms are 'future ready' having significantly transformed digitally; these companies show average revenue growth 17.3 percentage points and net margins 14.0 percentage points above their industry average. Source: MIT Center for Information Systems Research (MIT Sloan) (2022) →
  4. Mordor Intelligence sizes the field service management market at USD 6.26 billion in 2026, forecasting USD 9.87 billion by 2031 at a 9.54% CAGR, confirming sustained double-digit-adjacent demand for FSM software. Source: Mordor Intelligence (2026) →
Naomi B. · Senior Account Director · Enterprise · New York

Naomi runs enterprise accounts, which means procurement cycles, security reviews, multiple stakeholders and a scope that shifts as it climbs the org chart. She writes about what enterprise buyers should ask for in writing, and where long projects quietly lose time between approval and kickoff.

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

FAQ

Frequently asked questions

We already have a utilization dashboard and the numbers are still disputed. Why?

Because a dashboard reports what was recorded, and the dispute is usually about what should have been recorded. Without a work-in-progress ledger there is no record of hours that were worked, approved and then never made it onto an invoice, so unbilled time does not appear anywhere as a number. Add the ledger underneath and utilization becomes a view over data that also gives you realization, which is the figure that explains the margin gap people are actually arguing about.

How far back should we migrate Harvest history?

Migrate raw hours as far back as you keep them, and priced history only as far back as you can map confidently onto the new contract and rate structure. Most agencies find that two to three years is where the project and task codes still mean what they appear to mean. Beyond that, the reuse of codes and the placeholder projects make repricing history a guess dressed as a number. Keep the older data readable as an archive rather than feeding it into a margin engine.

What actually breaks in a QuickBooks integration after go-live?

Voids, credit memos and partial payments, in that order. A forward-only sync pushes an invoice successfully and then has no idea what happened to it, so when finance voids an invoice in QuickBooks the work-in-progress behind it stays marked billed and realization quietly goes wrong. Design the reverse path first, and run a daily reconciliation report that lists every invoice where the ledger and the WIP disagree, with a named owner. Drift is not preventable; undetected drift is what destroys trust in the numbers.

Our rates change mid-project. How should that be handled?

With effective dates on every rate, and a defined resolution order: contract override first, then client rate card, then role rate. A January raise must never rewrite October's margin, which is exactly what happens when a rate is a single field on a person. This is a data model decision rather than a feature, so it has to be right at the start. Retrofitting it means recomputing every historical WIP line, which costs more than building it correctly did.

How do we stop retainer rollover and rate escalators being forgotten?

Make the contract a first-class object rather than an attribute of a project, with entitlements, rollover rules and their expiry, caps and anniversary escalators enforced by the system. The account director should see remaining entitlement before they agree to extra work, and the escalator should fire without anyone remembering it. If those terms live only in a signed PDF, they are enforced by staff memory, which is the failure you are paying to remove.

Should we cut over at the start of a quarter or a month?

A month boundary, with one full parallel invoice cycle. Finance builds that month's invoices in both systems and compares them line by line before the new system becomes the source of truth. Every difference found during that week is a defect that would otherwise have gone to a client, and the exercise is what turns finance from sceptics into owners of the system. It adds calendar time and removes almost all cutover risk.

We tried Productive and still ended up with spreadsheets. Does that justify building?

It is the strongest signal there is, provided you can say precisely which spreadsheet survived and why. Usually it is one of three things: a contract term the product cannot enforce, a rate structure it cannot express, or a multi-entity allocation it has no concept of. Write down the specific gap with an example agreement attached. That document is both your justification and the best possible brief for a developer, and occasionally it reveals a configuration you missed instead.

What should we budget for after launch?

Plan 15 to 20 percent of the original build cost per year for maintenance, integration upkeep and small features, based on Digital Heroes delivery experience. Accounting interface changes and newly negotiated contract types drive most of it, because every genuinely new deal shape is a small piece of modelling work. Budget second-phase modules such as resource planning or a client portal separately rather than assuming they fit inside the maintenance line.

How long does it take to build custom project management software?
Plan on 12 to 16 weeks for a working first version and 6 to 9 months for a mature platform; those are typical Digital Heroes delivery timelines. The schedule killers are undecided permission rules and mid-build scope additions, not the code itself. Locking the workflow map during discovery is what keeps a build inside 16 weeks.
Who owns the code when an agency builds my project management software?
You should, in full, and the contract must say so: work-for-hire language with all intellectual property assigned to you on final payment. Watch for agencies that license you their platform or framework, because that quietly turns your custom tool back into a subscription you cannot leave. Digital Heroes assigns full ownership and delivers into a GitHub organization the client controls; treat anything less as a red flag.
How do I work out whether a custom project management tool will pay for itself?
Add three lines: the per-seat fees you stop paying, the consultant and plugin spend you eliminate, and the hours your team stops losing to manual status reporting and duplicate data entry. On seat savings alone, payback typically lands between years two and four, which is why Digital Heroes tells teams under about 50 seats not to build. It gets much faster when the tool replaces both a SaaS bill and a consultant-maintained Jira setup, or when a client portal becomes part of what you charge for.
What happens if the agency that built our project management tool shuts down?
Nothing fatal, if you set things up correctly from day one: code in your own GitHub organization, infrastructure in your own cloud account, and written deployment documentation as a contract deliverable. With those in place, any competent team can take over a standard-stack codebase in one to two weeks. Takeover disasters happen when the vendor hosted everything in accounts they owned, so verify account ownership before the first sprint, not after the relationship sours.
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.
Can a solo freelancer build project management software, or do I need an agency?
A strong freelancer can deliver a single-team internal tracker in the $15,000 to $25,000 range. Once you need role-based permissions, real-time updates, several integrations, and someone on call after launch, you need a 4 to 5 person team, because those features cross design, backend, and QA at once. The bigger freelancer risk is continuity: one person on vacation becomes an outage in your delivery pipeline.
What should the first version of a custom project management tool include, and what should wait?
Version one is the painful workflow plus the basics: tasks, projects, permissions, and one integration, shippable in 12 to 16 weeks. Everything that feels essential but is not should wait: Gantt views, custom report builders, native mobile apps, and public API access all belong in version two, once real usage shows what matters. Teams that run the MVP for a quarter before expanding consistently spend less and drop features that looked critical on paper.
Will a custom tool built for 50 people still work when we're 500?
Yes, if it sits on a standard stack; a PostgreSQL-backed application handles 500 concurrent users without exotic engineering, and unlike Monday or Asana, seats 51 through 500 add nothing to your license bill. What does need rework at that scale is organizational rather than technical: permission models, department-level reporting, and admin tooling. Have the agency design the data model for multi-team use on day one, even if version one serves a single team.
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.
Who can build a custom project management software system?

Digital Heroes builds custom project management 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 project management 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?