Problems & solutions · Inventory Management

Public Library Software Problems: The 7 That Cost Real Money, and How to Avoid Them

Public Library Management Software architecture and database illustration showing common problems and fixes.
The short answer

The most expensive failure mode in this sector is commissioning a replacement integrated library system. A full custom ILS is a $350,000 to $900,000 programme spread over 12 to 24 months in our delivery experience, and it ends with a cataloguing module worse than the one you already own, because thirty years of accumulated correctness in MARC handling, authority control, serials prediction and fines policy cannot be rebuilt inside a budget cycle. The money buys you a slower version of Koha. The coordination problems that actually cost you courier capacity, patron patience and consortium goodwill go untouched, because they were never the catalogue's job in the first place.

Why does a library keep getting sold a full system replacement?

The conversation starts honestly. Holds are routed badly, the consortium argues about money, the board wants usage figures nobody can produce without breaching a confidentiality statute, and four separate systems each hold a partial copy of your patron. Someone reasonably concludes that the library system is the problem, and a developer agrees, because replacing a system is a larger engagement than extending one.

The diagnosis is wrong in a way that is specific to libraries. None of those four complaints is a cataloguing failure. Your ILS records bibliographic and item data correctly, circulates accurately, and applies fines policy as configured. What it does not do is coordinate: decide which of 41 copies fills a hold given today's courier schedule, encode a consortium agreement about who pays when a member's item is lost by another member's patron, or separate the operational borrowing record from the analytical one. Those were never in scope for an ILS and no replacement will add them.

The fix is to scope the coordination layer and leave the catalogue alone. Koha and Evergreen both have open data models and real interfaces, which means custom work sits alongside them as a first class citizen rather than a hack, and Evergreen was designed around consortial borrowing from the start. Almost every library project we have delivered that succeeded kept the ILS and owned the layer above it. If a developer's first proposal is a replacement, ask them to price the routing layer separately and compare the two numbers against the same list of complaints.

What goes wrong when you migrate bibliographic and patron records?

Migration is where library projects lose their schedule, and the cause is almost never software. It is data that accumulated across decades of differing cataloguing practice.

Bibliographic cleanup is the largest single task. Records imported from vendors, records typed locally in the 1990s, records inherited when a member joined the consortium, and records that predate current descriptive cataloguing practice all coexist. Authority reconciliation is worse, because the same author appears under three heading forms and merging them changes what patrons find. Item records carry local practice encoded in fields nobody documented, such as a location code that means one thing at the main library and something else at a branch that closed in 2011.

Patron records bring a different problem. Your retention policy, and in most states your confidentiality statute, limits what borrowing history you may hold, and migration is exactly the moment someone proposes carrying five years of circulation history forward so the statistics still work. That is a board decision, not an engineering one, and it must be settled before anyone writes a mapping. Teams that defer it end up with a migration script waiting on a policy meeting.

Scope migration as its own project with its own budget and its own timeline, dominated by cataloguing staff time rather than developer time. Do not let it be bundled into an optimistic software number, because when the two are combined the cleanup gets squeezed and the result is a catalogue nobody trusts.

Why do the self check, inter library and digital lending integrations break after launch?

A public library runs more integrations than most mid sized businesses, and each speaks a different dialect. Self check machines and RFID pads use SIP2. Inter system circulation uses NCIP. Digital lending through OverDrive with Libby, plus Hoopla and similar services, uses its own authentication and holds its own usage data. Then there is public computer and print management, the courier manifest system and municipal finance for fines and fees.

The failures share a pattern. SIP2 implementations differ by vendor and by firmware version, so a message that works on the units at three branches fails on the older units at the fourth, and the failure looks like a network problem to staff. NCIP exchanges break when a partner system changes a code list without notice, and the symptom is holds that silently never arrive rather than an error anyone sees. Digital lending platforms authenticate patrons independently, so a patron record change on your side leaves them able to borrow ebooks from an account you have closed, and their usage never reaches your reporting, which means your annual circulation figures understate real use every single year.

The design that survives launch treats each integration as an adapter with its own monitored heartbeat, logs the actual message exchange rather than a summary, and reconciles rather than assumes. A nightly job that compares patron status across your ILS and each digital platform catches the closed account problem before a complaint does. A weekly count comparison catches silent NCIP failures. These are unremarkable engineering habits and they are the difference between an integration that quietly rots and one that tells you when it is unwell.

What happens when patron privacy and board reporting are not reconciled up front?

Borrowing records carry confidentiality protection under state statute across most of the United States, and the profession's own ethics go further. Directors simultaneously need to know what is being used, by which communities, to justify budgets and plan collections. Those two obligations pull against each other and most projects discover it late.

The late discovery is expensive because it is architectural. If circulation and reporting share one record, the only way to answer the board's question is to retain the linkage between patron and item, which is precisely what your policy tells you to discard. Teams then either keep more history than they should, or build reporting so coarse it answers nothing, and both outcomes are permanent once the data model is set.

Separate the two from the start. The operational record keeps the patron to item linkage only while the item is out, then discards it on return under your retention policy. Analytics is written at the moment of transaction as de identified aggregates: item, format, subject, branch, patron category, and census tract if your board approves that granularity, never the individual. Done this way you can tell a board which neighbourhoods are underserved for early literacy materials while holding no record of who borrowed what. Check your current ILS retention settings too, because several products default to keeping more than a library's written policy intends and nobody notices until a records request arrives.

Should you build custom or configure what you already own?

Buy the ILS. Always. If you run SirsiDynix Symphony or Innovative Polaris and staff are content, stay and build the coordination layer against their interfaces where they permit it. If you are considering a move, evaluate Koha and Evergreen seriously: there is no licence cost, both are genuinely capable, and Evergreen in particular was built for consortia. Ex Libris Alma is a serious platform whose design centre is academic libraries and their acquisitions and electronic resource workflows, which is a different problem from high volume branch circulation, community programming and consumer digital lending.

Before commissioning anything, spend a fortnight testing what your current system will already do. Hold routing rules are often more configurable than staff realise, floating collection thresholds frequently exist and are unset, and several reporting complaints turn out to be permissions rather than capability. Finding that out costs two weeks.

Build the layer above when the complaints are structural rather than configurational: your consortium has fairness arguments that spreadsheets cannot settle, hold routing is visibly consuming courier capacity, your board asks questions your privacy policy prevents you from answering, or you have accumulated four systems for room booking, programme registration, card signup and outreach that each hold a partial patron. That last one is more common than any director likes to admit and it is usually the cheapest to fix.

How do hidden costs get into the quote?

A first release covering hold routing, floating collection rules and privacy safe analytics on top of Koha or Evergreen runs $60,000 to $140,000 and ships in 12 to 16 weeks in Digital Heroes delivery experience. Extending to delivery logistics, a discovery front end, room and event booking and consortium settlement brings the programme to $160,000 to $380,000 across 6 to 12 months. The overruns are predictable.

  • Consortium member count. Each member has policies and each member has an opinion, and reconciling eleven opinions about floating thresholds is a governance process the schedule rarely budgets for.
  • Hardware variety. Self check and RFID units differ across branches by vendor and firmware, so SIP2 work is priced once and delivered several times.
  • Municipal finance integration. Usually a longer conversation with the city than a build, and the schedule belongs to them rather than to you.
  • Historical statistics through migration. Preserving them conflicts with retention policy and needs a board decision before an engineer touches it.
  • Data cleanup. Bibliographic and authority work is cataloguing staff time, not developer time, and quoting it inside a software number guarantees it gets squeezed.

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

Four things. The first is that the routing layer explains itself. The first question staff ask about any automated decision is why it sent that item there, and a system that cannot answer gets overridden until it is ignored. Show the reasoning: courier timing, queue depth at the owning branch, branch equity thresholds. Visible arithmetic earns trust that a better algorithm never will.

The second is that the layer talks to the ILS through its interface rather than its database. Reaching into the database works until the next upgrade, and then it breaks in ways nobody can predict from release notes. If something you need is missing from an open source ILS interface, extend the ILS and contribute the change upstream, which is also how the sector's shared infrastructure stays healthy.

The third is that consortium settlement is computed continuously and published where every member can see it. Net lending balance, loss and damage liability and courier apportionment assembled by hand from reports are contested numbers, and contested numbers make long meetings. The same numbers computed from circulation data and visible to all eleven members change the character of the conversation more than any feature does.

The fourth is ownership. Hold the repository and the infrastructure accounts, and agree before kickoff what gets contributed back upstream if the work extends an open source ILS. At Digital Heroes the library owns the code from the first commit, and in a sector built on shared infrastructure, contributing improvements back is usually the right instinct as well as the generous one.

Research & sources

The evidence behind this guide

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

  1. Digital Champions expect to achieve about 16% in cost savings and around 15% in revenue gains from digital operations over five years; the study surveyed 1,155 manufacturing executives across 26 countries. Source: PwC / Strategy& (2018) →
  2. In a survey of 113 supply chain leaders (conducted late March to mid-April 2022), 67% had implemented digital dashboards for end-to-end visibility, and those companies were about twice as likely as others to avoid supply chain problems during the disruptions of early 2022; 71% expected to revise inventory policies going forward. Source: McKinsey & Company (2022) →
  3. Across ten outpatient clinics the mean no-show rate was 18.8%, and the marginal cost of no-shows reached $14.58 million per year for those clinics, at roughly $196 per missed appointment (2008 figures). Source: BMC Health Services Research / PubMed Central (Kheirkhah et al.) (2015) →
  4. Retailers connecting point-of-sale and loyalty data in an omnichannel strategy reported up to 15% lower cost per purchase and nearly 20% higher incremental store revenue. Source: Deloitte (2024) →
Priya D. · Senior PR & Comms Manager · New York

Priya handles press and communications, from launch announcements to the messages a company sends when something goes wrong. Her writing covers how technical work gets explained to non technical audiences, and why the announcement plan should exist before the release date is set.

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

FAQ

Frequently asked questions

Is there ever a case for building a custom integrated library system?
Almost never, and we say that against our own commercial interest. An ILS embodies decades of accumulated correctness in MARC 21 record handling, authority control, serials prediction and fines policy engines, and a full custom replacement runs $350,000 to $900,000 over 12 to 24 months while producing a worse cataloguing module. Adopt Koha or Evergreen and build the coordination layer where the operational pain actually is: hold routing, floating rules, consortium settlement and privacy safe reporting.
Why does our hold sometimes travel across the state when a copy is nearby?
Because most systems fill holds by longest idle copy or a fixed branch order, and neither rule knows today's courier schedule. A copy that misses this afternoon's van is worth less than one that catches it, and stripping a branch of its only copy while its own patrons wait creates a second problem. A routing layer that weighs courier timing, queue depth at the owning branch and branch equity fixes this without touching the catalogue, and it must show staff why it made each decision.
What makes an ILS migration take so much longer than the software estimate?
Data, and specifically cataloguing staff time rather than developer time. Bibliographic records span decades of differing practice, authority headings need reconciliation before merging changes what patrons find, and item records carry undocumented local codes including ones tied to branches that closed years ago. Scope migration as its own project with its own budget, and never let a vendor bundle it into an optimistic software number, because the cleanup is what gets squeezed.
How do we report usage to the board without keeping borrowing histories?
Separate the operational record from the analytical one at the data model level, before anything is built. Circulation holds the patron to item linkage only while the item is out and discards it on return under your retention policy. Analytics is written at transaction time as de identified aggregates covering item, format, subject, branch and patron category, plus census tract if your board approves that granularity. Retrofitting this later is not possible, which is why it has to be decided first.
Why do our circulation statistics not match what patrons are actually using?
Because digital lending platforms such as OverDrive with Libby and Hoopla authenticate patrons independently and hold their own usage data, which most ILS reporting never sees. Annual figures therefore understate real use, sometimes substantially, and collection decisions get made on a partial picture. The same independence causes a quieter problem: a patron account closed on your side may still borrow ebooks, which a nightly status reconciliation catches before a complaint does.
How do floating collections end up draining our smallest branches?
Floating means items stay where they are returned, so without balancing rules stock concentrates at high traffic locations and small branches empty. You need per branch and per collection thresholds, so once a branch exceeds its share the routing layer starts sending items outward rather than accumulating them. Make the thresholds visible and adjustable by staff, because the correct balance is a service decision your community services team should own rather than a technical constant.
What should a consortium settle before any development starts?
The agreement itself, expressed as numbers. Who pays when a member's item is lost by another member's patron, how reciprocal borrowing is balanced when one large member lends far more than it borrows, how courier cost is apportioned, and what floating thresholds apply. These are governance decisions across independent budgets, they take longer than the software that implements them, and eleven members reaching agreement mid project is the most reliable schedule risk in a consortium build.
Should custom work reach into the ILS database or use its interface?
The interface, always. Direct database access works right up to the next upgrade, at which point the layer breaks in ways the release notes will not predict and nobody on staff can diagnose. If a capability you need is genuinely missing from an open source ILS interface, the better path is extending the ILS itself and contributing the change upstream, which keeps you on the supported path and improves the shared infrastructure the sector depends on.
We already use Fishbowl. When does replacing it with custom software make sense?
Replace Fishbowl when you are paying for workarounds: manual exports to cover missing reports, third-party connectors patching integration gaps, or processes bent to fit its QuickBooks-centric model. Fishbowl remains a solid choice for QuickBooks-linked manufacturing inventory, so if it fits your workflow, keep it. Custom wins when your process is the differentiator, for example serialized rentals, consignment stock, or a picking flow Fishbowl cannot model.
What tech stack should a custom inventory system be built on?
A deliberately boring one: PostgreSQL for the stock ledger, a mainstream backend such as Node.js, Python, or .NET, a web dashboard, and a mobile app or mobile web interface for scanning. The data model matters far more than the language; an append-only movement log with atomic stock updates prevents overselling in any stack. Reject anything exotic that only the original developer can maintain.
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.
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 many SKUs are too many for managing inventory in Excel or Google Sheets?
Excel and Google Sheets typically start failing past roughly 1,000 SKUs, more than one sales channel, or more than two or three people editing stock levels. The failure mode is not the row count but stale, conflicting edits that cause oversells and phantom stock. If someone on your team spends hours each week reconciling the sheet against the shelf, you have already outgrown it.
Will a custom system keep up if we grow to more SKUs, orders, and warehouses?
Yes, if the architecture is designed for it up front, which is much of the point of building custom. A properly structured stock ledger handles 100,000+ SKUs and peak-season order volume without per-record or per-user pricing, and adding a second warehouse becomes a configuration change rather than a plan upgrade. Systems that fail at scale were built against a demo-sized dataset with a quantity field that gets overwritten.
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.
Who owns the code when an agency builds my inventory system?
You should, in full, with intellectual property assignment written into the contract before any payment is made. Insist on the code transferring to a repository you control no later than final payment, plus hosting and domain accounts in your own name. If an agency offers to license you their platform instead of assigning the code, you are buying another Cin7 with fewer features.
How long does it take to build a custom web or mobile app from scratch?
Plan on 8 to 16 weeks for a focused first version and 4 to 9 months for a larger platform, which is the typical spread across Digital Heroes builds. The first 2 to 3 weeks go to discovery and design before any production code ships. The two things that stretch timelines most are integrations with legacy systems and slow feedback from your side, not developer speed.
Is custom software more secure than off-the-shelf SaaS?
Neither is secure by default; security tracks the practices of whoever builds and operates the system, not the model. SaaS gives you the vendor's certifications and patching but puts your data in a shared multi-tenant platform on their terms, while custom gives you full control over data residency, access rules, and compliance requirements like HIPAA, with the responsibility sitting with you and your agency. Before hiring anyone for a system holding sensitive data, ask for their security checklist: encryption at rest and in transit, an OWASP Top 10 review, role-based access, and a penetration test before launch.
Who can build a custom inventory management software system?

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