Archives Collections Management Software Problems: The 7 That Cost Real Money, and How to Avoid Them
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.
The evidence behind this guide
Independent findings on why this investment pays off. Every link goes to the primary source.
- 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) →
- 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) →
- 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) →
- 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 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.
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?
What happens if I stop paying for maintenance after launch?
Can we migrate years of data out of our current system into new custom software?
How do I make sure custom software is secure and compliant with rules like HIPAA?
What happens to my software if the agency shuts down or we stop working together?
Who owns the code when an agency builds my software?
How much should a small business expect to pay for custom software?
How much should a small business budget for its first custom app or website?
Is a solo freelancer enough for my project, or do I really need an agency?
Can I build my product on a no-code tool like Bubble instead of hiring developers?
How do I work out whether custom software will pay for itself?
How do I vet a software development agency before signing a contract?
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.