A realistic first-year cost to get Koha running is roughly USD 1,500–4,000 for a small library, 4,000–12,000 for a mid-size one, and 12,000–35,000+ for a large or multi-branch institution. That covers implementation, migration, hosting and training — not the software, which is free.
Those are indicative ranges in US dollars, assuming a paid implementation rather than staff doing it themselves. Below is where each figure comes from, so you can build your own number rather than trusting ours.
Why "free software" still costs money
Koha is released under the GPL. There is no licence fee, no per-seat charge and no renewal invoice — and that is a genuine, permanent saving against a commercial system.
What it does not cover is the work of turning software into a running library service. That work exists regardless of which system you choose; with a commercial ILS a large part of it is bundled into the fee.
The cost components
Server or hosting
A modest virtual server suits most libraries. This is a recurring cost rather than a one-off — covered separately in our hosting cost guide.
Installation and configuration
The package install is hours. Configuration is days: MARC frameworks, item types, patron categories, branches, circulation rules, OPAC settings. Circulation rules alone repay careful work, because a wrong rule produces wrong loan periods silently.
Data migration
Usually the largest single line, and it scales with how messy the source data is rather than how large it is. See our migration guide.
Customization and branding
OPAC branding to match your institution is modest. Deeper workflow changes cost more — and, importantly, cost again at every upgrade. Our customization guide explains that ladder.
Staff training
Undercosted almost universally. Staff who do not understand the cataloging module produce records you pay to clean up later.
The setup nobody quotes for
This is where quotes diverge most, and it is worth reading a vendor's proposal specifically for these lines:
- Mail server configuration and deliverability — SPF, DKIM, DMARC
- Writing and testing notice templates — overdue, hold, welcome, receipts
- Finding, adding and debugging Z39.50 copy-cataloging targets
- The backup job, off-server storage, and a restore test that actually ran
- HTTPS certificates, firewalling and hardening
- Scheduled jobs, and a way to tell whether they ran
- Making the public catalog crawlable so patrons can find it
Individually small. Collectively several days of specialist time — and every one of them has to be re-verified after each major upgrade, twice a year, forever.
Ongoing support and upgrades
Not an installation cost, but budget it at the same time. A library that budgets only for installation is a library that will be running an unpatched three-year-old Koha by year two.
Three worked examples
Indicative USD, first year, paid implementation.
| Line | School 8k titles, 2 staff | College 40k titles, 8 staff, 2 branches | University 250k titles, 30 staff, 5 branches |
|---|---|---|---|
| Hosting (year 1) | 150–400 | 400–1,200 | 1,500–5,000 |
| Installation & configuration | 400–900 | 1,000–2,500 | 3,000–8,000 |
| Data migration | 300–1,000 | 1,200–4,000 | 4,000–15,000 |
| Branding / OPAC setup | 150–500 | 500–1,500 | 1,500–5,000 |
| Training | 200–600 | 600–2,000 | 2,000–6,000 |
| First-year total | 1,200–3,400 | 3,700–11,200 | 12,000–39,000 |
The ranges are wide because migration complexity dominates. A college with clean MARC records in a modern system sits at the bottom; the same college with twenty years of local practice and a spreadsheet catalog sits at the top.
Hidden costs libraries forget
- Domain and certificates — small, but nobody budgets them.
- Backup storage — separate from server storage, and it grows.
- Upgrades — twice yearly, forever.
- Barcode or RFID hardware — see our RFID guide.
- Staff time — the largest uncosted item in every project. Data cleanup, testing and learning are real hours.
- Retraining — when the person who understood the system leaves.
Self-install versus paid implementation
Self-installing genuinely wins when you have technical staff with time, and it is a reasonable choice. Our installation guide is written to make it achievable.
It stops being a saving when the person who did it leaves, or when a problem appears that nobody can diagnose. The cost then arrives all at once, usually as an emergency.
There is also a third framing worth considering. Look again at "the setup nobody quotes for" — every line on it is a one-time build. On a hosted service, all of it is already built. The mail server and templates, the copy-cataloging sources, the backups, the security and the scheduled jobs are already running, so a new library is switched on rather than assembled. That is precisely why a complete setup that is hosted for you costs less than the figures above — you are not paying to build again what already exists.
How to reduce the cost
- Clean your data before migrating. The cheapest hour in the project. Duplicate barcodes and inconsistent item types cost far more to fix afterwards.
- Train a core group, then train internally. Two or three staff trained properly can teach the rest.
- Start with one branch. Prove the configuration, then roll out.
- Migrate less history. Twenty years of circulation history is rarely worth what it costs to move — and there is a privacy argument for leaving it behind.
- Decide the hosting model first. It changes every other line.
Figures reviewed August 2026. Indicative USD; get a written quote against your own collection.
Want a real number for your library? Tell us your collection size, branches and current system on our Koha installation service page, and we will quote the whole thing — implementation, migration and hosting — with nothing hidden in the small print.

