Problems & solutions · Custom Software

Archives Collections Management Software Problems: The 7 That Cost Real Money, and How to Avoid Them

Archives Collections Management Software software overview illustration showing common problems and fixes.
The short answer

The most expensive failure in archives software is access decisions living in one archivist's memory rather than in the system. A donor agreement closes a series for a period computed from the latest document in it, student records carry obligations under the federal education records statute, and a deed of gift sits in a folder in the director's office. The reference desk therefore answers restriction questions by asking a colleague, which fails in both directions: material that could be served is refused, and occasionally material that should not be served is produced. The first loss is invisible and continuous. The second costs you a donor relationship, sometimes a legal problem, and always the institutional trust that took decades to build.

Why do archives projects end up rebuilding description?

The brief starts with an operational complaint: we cannot find boxes, or we cannot tell researchers what is restricted. Then somebody demonstrates ArchivesSpace and finds a screen they dislike, and by the third meeting the proposal includes a new description module. That is the biggest scope failure in this sector, and it is expensive because archival description is much harder than it looks.

Description under the sector's content standard runs from collection to series to subseries to file to item, and description at any level applies to everything beneath it. Encoded Archival Description exists because that structure is not optional. A general purpose records table with a parent identifier will not express it, and a team that discovers this in month four has spent your budget learning what ArchivesSpace and Access to Memory already implement properly.

The fix is a boundary agreed before scoping. Description, accessioning and the component tree stay in the description system, which remains the system of record. The custom work owns the operational layer that those products deliberately leave thin: restriction rules that can be evaluated, container and location control, reading room and digitization queues, and backlog triage. Everything reads from and writes back to the description system through its interfaces. In our delivery experience the archives projects that hold that line ship in a single funding cycle. The ones that cross it do not ship at all.

What goes wrong with legacy finding aids and hierarchical data?

Every established repository has finding aids in Word, in PDF, in HTML exported from a website built in the early 2000s, and in typescript in binders. Retyping them is a multi year clerical project that never gets funded, so those collections stay invisible, which is the same in practice as not holding them.

Migration of the descriptions you do have structured brings its own failures. Component trees move badly when the target model assumes every node has a title and a date, because plenty of real archival components have neither. Container links are the classic loss: a folder record migrates fine and arrives with no idea which box it is in, because the legacy system stored that association in a place the export did not include. Boundwith and multi container relationships break. None of this produces an error, and the collection level records look correct, which is why it passes review.

The fix on legacy conversion is machine assisted parsing with archivist review, which is one of the clearer places a language model does useful work: identify hierarchy levels, extents, date ranges and container references, propose structured components with confidence scores, and route anything ambiguous to a human. Expect supervision rather than automation, because inconsistent typescript defeats naive parsing. On migration, test container associations explicitly and reconcile per collection rather than in total, and never accept an export whose container linkage nobody has verified against the shelf.

Why do reading room, preservation and storage integrations break after launch?

An archive's integrations are unusually consequential because each one sits between a researcher and material. ArchivesSpace interfaces feeding description into your operational layer. A reading room platform such as Aeon handling requests. A digital preservation system such as Preservica holding objects. An offsite storage vendor with its own barcodes and retrieval process.

They fail in ways that surface at the desk rather than in a log. An ArchivesSpace upgrade changes an interface response and component identifiers stop resolving, so paging slips start printing with the wrong container reference. The offsite vendor changes its request file format and retrievals silently queue rather than dispatch, which the reference desk discovers when a researcher who travelled arrives to nothing. Digital surrogates lose their link to the archival component they represent, and the repository ends up with thousands of scans nobody can place in a finding aid, which wastes the entire digitization budget retrospectively.

The fix is to key everything to a stable component identifier that travels with the object into every other system, including into the preservation platform, and to verify that identifier on the way back rather than trusting it. Alert on absence: an offsite request with no acknowledgement within the vendor's stated lead time should raise a flag the same day. And build a reconciliation report between description and containers that a collections manager runs monthly, because a broken link discovered by a report is an afternoon and one discovered by a researcher is a reputation.

What happens when restrictions are not enforceable?

Restrictions in archives are not one flag. A collection may be open with three exceptions. A donor agreement may close a series for a number of years from the date of its latest document, which requires computing a date rather than storing one. Student records carry statutory obligations. Medical material in an institutional collection carries its own rules. Files concerning living individuals may be closed for a period after death, which depends on a fact the archive does not hold. And restrictions inherit downward through the component tree unless locally overridden.

Systems that offer a restriction note give you text a human reads, which means the decision depends on whether that human reads it, understands the deed it references and knows the exceptions. Every repository has at least one archivist who is the actual access control system, and that person will retire.

The fix is a restriction record attachable at any level, carrying a type, a legal or donor basis, a fixed or computed end date, a review requirement, and downward inheritance with local override. The reference archivist then opens a folder record and sees a determination: open, closed until a computed year under a named clause, or requires curator review. This is the single highest value thing a custom layer does in an archive, because it converts institutional memory into a rule the next hire inherits, and because it protects the repository at the exact moment protection matters. Pair it with the same check on paging slips, so a slip is never issued for material that cannot be served.

Should you build custom or configure what you already own?

Use ArchivesSpace or Access to Memory for description and do not consider replacing them. Both are open source, both implement the standards properly, and rebuilding archival description is a poor use of anyone's money. A single repository with under roughly 3,000 linear feet and no reading room should run one of them as it comes and spend the budget on processing staff, which will do more for access than any software.

Preservica is the right answer for digital preservation if you hold digital material with long term obligations, and it is not a substitute for a collections management system. Axiell Collections suits institutions whose holdings are mostly objects rather than hierarchical archival material. Aeon is the established reading room product, and integrating with it is usually smarter than rebuilding request handling.

Build the operational layer above when restriction decisions currently depend on a specific archivist's memory, when containers are tracked in a spreadsheet and boxes go missing, when you run offsite storage and cannot tell a researcher when material will arrive, when your backlog needs to be evidenced to funders, or when legacy finding aids keep whole collections invisible. The tipping point is not holdings size. It is whether access decisions and physical control have moved out of institutional memory into something a new colleague can use on their second week.

How do hidden costs get into the quote?

Legacy finding aid volume is the first, and it should be priced by document count rather than estimated. A repository that says it has some legacy finding aids and then produces four hundred documents in six formats has changed the project. Count them and sample them before anyone quotes.

Offsite storage vendor integration is the second. Each vendor has its own interface, its own file format and its own lead time model, and the elapsed cost is waiting for a vendor with no commercial incentive to prioritise you.

Multi repository institutions are the third. When a university archive, a manuscripts library and a records management programme share infrastructure but not policy, every rule needs three answers and a governance meeting to agree them. That coordination is real project cost even in weeks when no code is written.

Fourth is public access. Exposing material publicly raises questions about restriction correctness that internal use lets you defer, and it usually triggers a review of legacy restriction data that nobody has looked at in years. Fifth is digital preservation integration, which brings its own metadata expectations and its own vocabulary, and should be scoped as a separate piece of work rather than folded into a general integration line.

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

The working build starts from the right data model. A developer who has worked with archives whiteboards accession, resource, component tree, container, location, restriction and event, and they ask whether a container can hold components from more than one series, because the answer is yes and it complicates everything downstream. One who proposes a flat records table with a parent identifier is about to learn archival hierarchy on your budget.

The second difference is that the system copes with material described only at accession level. Most of your holdings will be in that state for years, and a system that assumes full description will fight your staff every day. Unprocessed material has to be locatable, requestable and restrictable without a component tree beneath it.

The third is that backlog triage is treated as evidence rather than a to do list. Record each accession with extent, condition, restriction risk, known demand and format complexity, hold the intended processing level so nobody quietly does item level work on material that warranted a box list, and report the backlog in linear feet. That number wins grant funding far more reliably than a narrative does.

The fourth is ownership and portability settled in writing before kickoff: the repository owns the code and the cloud accounts, and export in Encoded Archival Description is a contractual requirement so descriptions stay portable regardless of what happens to any vendor. At Digital Heroes the repository owns the code from the first commit. For an institution whose entire purpose is long term custody, depending on software you cannot take with you is a contradiction worth refusing.

Research & sources

The evidence behind this guide

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

  1. In PMI's 2014 Pulse of the Profession report on requirements management, inaccurate requirements management is cited as a leading cause of project failure, with 47% of unsuccessful projects failing to meet goals due to poor requirements management. Source: Project Management Institute (PMI) (2014) →
  2. 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) →
  3. 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) →
  4. The NRF discontinued its long-running annual shrink report, stating that a broad study of retail shrink 'is no longer sufficient for capturing the key challenges and needs of the industry' - important context that qualifies how POS/shrink benchmarks should be cited going forward. Source: Retail Dive (2024) →
Ben H. · Account Manager · UK B2B · London

Ben handles business to business accounts, where the buyer is rarely the end user and sign off involves several people who want different things. He writes about running a software project through a committee: gathering requirements that conflict, and getting a decision before the quarter closes.

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

FAQ

Frequently asked questions

How should a restriction that closes a series for 25 years be modelled?

As a restriction record attached at the series level with a type, a stated basis such as the deed of gift clause, and an end date computed from the latest document date rather than stored as a fixed year. It should inherit down the component tree with local override, so a folder four levels below returns a determination without anyone reading the deed. The reference archivist then sees open, closed until a computed year, or requires curator review, on the record itself.

Can we replace ArchivesSpace with something better designed?

You can, and we would advise against it. Archival description under the sector's content standard is hierarchical with inheritance at every level, and Encoded Archival Description exists because that structure is not optional. ArchivesSpace and Access to Memory implement it properly and are open source. The productive custom work sits above them: restriction rules that can be evaluated, container and location control, reading room and digitization queues, and defensible backlog triage.

Why do boxes go missing when we already have a container list?

Because a container list inside a description system is an intellectual arrangement, not an inventory, and it does not know that box 214 is on a reading room cart or at conservation. Track containers as physical objects with barcodes, scan on every move, and hold current location separately from home location. Once a box that is out is reported as out rather than as shelved, the searching stops and the genuinely missing ones become visible instead of hiding among the ones simply in use.

How much of legacy finding aid conversion can be automated?

Enough to change the economics, not enough to leave unsupervised. A parsing pass can identify hierarchy levels, extents, date ranges and container references and propose structured components with confidence scores, routing ambiguous cases to an archivist. Inconsistent typescript from decades of different practice defeats naive parsing, so expect review rather than automation. The realistic gain is turning a task nobody would ever start into one an archivist can work through at pace.

What is most likely to break in a description migration?

Container associations. The folder records migrate cleanly and arrive with no idea which box they are in, because the legacy system held that link somewhere the export did not cover. Collection level records look correct, so the problem passes review and surfaces at the reference desk months later. Reconcile container linkage per collection against the shelf rather than checking aggregate record counts, and treat any export whose container associations nobody has verified as incomplete.

How do we keep digital surrogates linked to the right component?

Run digitization as a queue inside the system that holds the description, so every scan is created against a stable component identifier rather than a folder name in a spreadsheet, and make that identifier travel with the object into your preservation platform. The common failure is a shared drive of thousands of images nobody can place in a finding aid, which retrospectively wastes the digitization budget. Verify the identifier on the way back rather than assuming it survived the round trip.

Can the system handle collections that are only described at accession level?

It must, because most holdings will be in that state for years. Unprocessed material needs to be locatable, requestable and restrictable without a component tree beneath it, and a system that assumes full description will fight your staff daily. Ask any prospective developer how they represent an accession with 412 boxes and a one page inventory, because the answer tells you quickly whether they have worked in archives or only in collection systems.

How do we justify backlog funding with software?

Record each accession with extent, condition, restriction risk, known research demand, donor expectations and format complexity, then rank against criteria your head of collections sets and hold the intended processing level per accession. Report the backlog in linear feet by decade of accession. That figure, with a defensible ranking behind it, tends to move funders far more reliably than a narrative, and it also stops staff quietly doing item level work on material that warranted a box list.

What is a discovery phase, and is it worth paying for separately?
Pay for it, and treat the output as yours. A discovery phase runs two to three weeks, typically 5 to 10% of the eventual build budget, and produces a written scope, wireframes, and a fixed quote you can take to any vendor, including a competitor of the agency that wrote it. Skipping it is how projects end up quoted from a two-paragraph email and delivered at twice the price.
What happens if I stop paying for maintenance after launch?
Nothing breaks on day one, which is what makes it dangerous. Within 6 to 18 months, unpatched dependencies accumulate known vulnerabilities, an integrated API like Stripe ships a breaking change, and the first fix requires a developer to relearn a stale codebase at full price. Budget 15 to 20% of the build cost per year for upkeep; it is the difference between a $500 patch and a $15,000 emergency.
Can we migrate years of data out of our current system into new custom software?
Almost always yes, through CSV exports or the vendor's API, and migration should be scoped as its own workstream with field mapping, a dry run, and a planned cutover window rather than an afterthought. The real time sink is rarely moving the data; it is cleaning it, since years of duplicates, free-text fields, and inconsistent formats surface all at once. Pull a full export from your current vendor before committing to anything new, because some SaaS plans restrict exports on lower tiers.
How do I make sure custom software is secure and compliant with rules like HIPAA?
Start with the baseline every business system should have: encryption in transit and at rest, role-based access control, and audit logs. If HIPAA applies, the hosting provider must sign a Business Associate Agreement, which AWS, Azure, and Google Cloud all offer, and access controls have to be designed in from day one, not bolted on. SOC 2 certifies a company's operating practices, not a codebase, so ask vendors what they have shipped in your regulated domain rather than which logos are on their website.
What happens to my software if the agency shuts down or we stop working together?
Nothing dramatic, if the engagement was set up correctly: the code sits in your repository, hosting runs on your cloud account, and a handover document explains how to deploy and operate the system. Any competent replacement team can then take over in days rather than months. If the agency controls the repo, the servers, or the domain, fix that now, because renegotiating access during a dispute is the most expensive place to discover the problem.
Who owns the code when an agency builds my software?
You should, completely, through a written intellectual property assignment that transfers everything on final payment; without that clause, copyright stays with whoever wrote the code by default. Insist that the repository lives in your own GitHub organization from day one and that hosting, domains, and third-party accounts are registered to you. Also check for licenses to the agency's proprietary frameworks buried in the contract, because those can make switching vendors practically impossible even when you own your own code.
How much should a small business expect to pay for custom software?
Across 2,000+ Digital Heroes projects, a small business system that replaces spreadsheets or one core workflow typically lands between $40,000 and $80,000, with more complex first versions running up to $150,000. The two levers that move the number most are integrations and user roles, not the team's hourly rate. Any quote under $15,000 for a full production system means the vendor has not understood your scope yet.
How much should a small business budget for its first custom app or website?
For a focused first build, most small businesses land between $8,000 and $60,000: roughly $8,000 to $45,000 for a custom website and $25,000 to $60,000 for an internal tool or simple web app, based on Digital Heroes delivery across 2,000+ projects. Customer-facing products with payments, logins, or a mobile app start around $40,000. Quotes far below these bands usually mean a template with your logo on it, not software shaped around your workflow.
Is a solo freelancer enough for my project, or do I really need an agency?
A solo freelancer is a fine choice for a well-defined build under roughly $15,000 to $20,000 with a limited lifespan: an internal calculator, a scripted integration, a prototype. Above $50,000, or for any system your business will depend on for years, you are buying continuity as much as code: enforced code review, cover when someone is ill, and support that outlasts one person's career plans. Price the risk of a single point of failure, not just the hourly rate.
Can I build my product on a no-code tool like Bubble instead of hiring developers?
For testing whether anyone wants the product, yes, and Bubble's paid plans start at $29 a month, which is the cheapest validation you will ever buy. The ceiling arrives with complex data relationships, heavy integrations, performance at a few thousand users, and the fact that you cannot export a Bubble app to servers you control. A path many Digital Heroes clients take: prove demand on no-code, then rebuild custom once revenue justifies it, treating the no-code version as a paid prototype rather than a foundation.
How do I work out whether custom software will pay for itself?
Do the arithmetic on hours before anything else: if the system saves three staff eight hours a week at a $35 loaded hourly cost, that is about $43,700 a year against, say, a $70,000 build plus 15 to 20% annual maintenance, a payback around two years. Add revenue effects only if you can name them specifically, like faster quotes or fewer abandoned orders, not as vague growth. In our delivery experience the businesses that see payback inside 24 months are the ones automating a process they already measure.
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.
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?