Problems & solutions · Custom Software

Campus One Card and Access Control Software Problems: The 7 That Cost Real Money, and How to Avoid Them

Campus Card AND Access Control Software code editor and API illustration showing common problems and fixes.
The short answer

The most expensive failure on a one card project is building a system that copies the access panel instead of replacing the decision behind it. If the new platform holds a cardholder record with a list of door groups, you have rebuilt what your head end already does and inherited every orphan group in it. The question a Director of Auxiliary Services gets asked after an incident is which doors a lost card would have opened between the moment it went missing and the moment it was flagged, and a system modelled on groups cannot answer it. Nor can it revoke cleanly, because nothing knows why any given grant existed.

Why does the entitlement model get underestimated so often?

Because the visible artifacts are a card and a door, so the project gets scoped as card issuance plus a connector. The actual system is the decision about what a person may open, and that decision is assembled from four or five sources that each hold part of the answer and none of which is the referee.

This is specific to campus because entitlement changes constantly and for reasons that have nothing to do with the card office. A registrar drops a course and a lab door group should die with it. Housing moves a student between buildings and two sets of rights should swap. Human resources (HR) terminates an affiliate. An academic department grants after hours access to a research space for a semester. Each of those is a different system with a different owner and a different publishing cadence, which is why the honest current answer at most institutions is that access is whatever the most recently pushed file said.

The fix is to make grants derived rather than entered. A grant should be a statement with a source, a reason and an expiry: this person may open this door group because housing assignment 44821 is active through a given date. When the assignment ends, the grant dies on its own because it was never a manual entry. Manual overrides will always exist, so model them explicitly with an owner and a review date rather than pretending they do not. Ask any developer to whiteboard person, credential and grant before you sign, and if they draw a cardholder with a list of door groups, they have described the panel you already own.

What goes wrong when you migrate cardholder groups and manual overrides?

You import a decade of accumulated exceptions and give them a clean interface. Every established access control system carries groups that were added manually for a reason that made sense at the time, by people who have since left, with no expiry and no owner. A straight migration preserves all of them, and because the new system now looks authoritative, nobody questions them again.

The second problem is that historic grants usually cannot be attributed to a source. You can see that a badge is in four groups. You cannot see that two came from housing, one from a departmental request in 2023 and one from a summer camp programme that ended. Without attribution, none of them can expire automatically, which means the new event driven model applies only to grants created after go live while the old ones sit underneath it forever.

Treat migration as an amnesty. Recompute every grant that can be derived from a current system of record and let it flow through the new model. Everything remaining goes into an exceptions list that a named owner reviews with a deadline, and anything unclaimed at the deadline is removed. This is politically uncomfortable and it is the only point at which the cleanup is cheap. Doing it later means asking the same departments the same questions with less momentum behind you.

Why do head end and student system integrations break after launch?

Because most of them are nightly files, and a nightly file fails in a way that looks like nothing happening. A student who drops an afternoon lab still has after hours access to a room with compressed gas cylinders until the next morning's run. A room change made at the housing desk at noon does not reach the doors until the following day, so the student is locked out of the room she moved into and can still open the one she left. Nobody reports the second half of that, because it works in their favour.

Head end integrations break differently. A second door platform is close to a second integration project rather than a configuration change, and institutions that grew by renovation or merger usually have two or three. Each has its own cardholder update semantics, its own tolerance for update volume and its own behaviour when a push partially fails.

Subscribe to change events where the source system supports them, poll tightly where it does not, and recompute grants only for the affected person so volume stays manageable. Target a change visible at an online reader inside a minute, and write every recomputation to an append only log with the triggering event attached, so the answer to why a door opened is a record rather than a theory. Then monitor for silence per source: a registration feed that normally produces hundreds of changes a day and produces none is an incident, not a quiet Tuesday.

What happens when offline locks and stored value reconciliation are not covered?

You get two gaps that both surface at the worst moment. Battery powered wireless locks on residence hall doors commonly hold a cached allow list and only learn about a revocation when a technician walks the building or the lock next reaches a gateway. A deactivation is therefore not complete when the card office presses the button, and most campuses have no view showing which locks have caught up and which have not. During an incident review that absence is the finding.

Stored value fails more quietly and costs more often. Declining balance, dining dollars, print quota, laundry credit and an off campus merchant programme behave like one account to a student and like five ledgers to your accounting office. A disputed charge at a participating restaurant exists in a terminal batch, possibly in the card system, and in a weekly settlement file. Proving what happened takes a person and an afternoon, every time.

For locks, model the estate as assets with a last known sync time, compute a revocation completeness figure per building after every deactivation, trigger push updates through gateways where the hardware supports them, and generate a prioritised technician walk list where it does not. For money, run one account ledger with double entry semantics, every transaction carrying the terminal, the credential used, the device timestamp and your own, plus an idempotency key so a replayed batch cannot double post. Refunds and adjustments are entries, never edits.

Should you build custom or configure Transact or CBORD?

If you are a single campus under roughly 3,000 students, on one access control platform, with dining run in house and no off campus merchant programme, run Transact Campus, CBORD or Atrium as delivered with their standard connector and spend the money on readers instead. A custom layer would be an expensive way to solve a problem you do not have.

Even when you do build, keep those platforms. They are strong where they were designed to be strong: card issuance, dining plan mathematics, declining balance accounts and the merchant estate. Replacing them rarely makes sense. What you build sits above them as the entitlement authority, and they remain the system of record for their own accounts. The mistake institutions make is not choosing the wrong card platform, it is buying a very good component and asking it to be an architecture.

Build when two or more of these hold: you run more than one door platform such as Lenel OnGuard alongside C-CURE 9000 or Genetec Synergis, your entitlements come from three or more systems of record and reconciling them is somebody's job, you have offline locks and cannot state your revocation latency as a number, your stored value programme crosses third party merchants, or you are launching mobile credentials and your identity assurance at provisioning is a portal password.

How do hidden costs get into the quote?

Five places. The number of distinct door platforms, which is the single largest driver and is routinely quoted as though the second were a configuration item. Offline wireless locks and elevator controllers, each with its own update mechanism. Off campus merchant programmes, because settlement with third parties brings financial controls and dispute handling that a campus only programme does not. Payment card scope, if you take top ups in a way that touches your own infrastructure, which you should avoid by using a hosted payment page or tokenising gateway so account numbers never reach your servers. And affiliate populations, since contractors, visiting scholars, camp attendees and alumni gym members each need their own lifecycle, and each is a small policy project with a stakeholder attached.

Count the affiliate populations before you scope. Institutions consistently name three and find nine. Each one needs a rule for how the person is created, what they may access, who approves it and when it ends, and those rules cannot be inferred from the student model.

What separates a campus card build that works from one that fails?

The builds that work make revocation measurable. Not instant, which is a claim no one can make honestly across battery powered residence hall hardware, but measurable: a completeness figure per building after each deactivation, expressed in plain language for the card office and campus safety. If a developer tells you revocation is instant, they have not worked with this hardware and you will discover it during an incident review rather than a demo.

They also settle data protection early rather than as a late requirement. Door history is sensitive information about students and staff, and it forms part of an education record subject to FERPA in the relevant contexts. Decide who may query it, whether campus safety needs a documented reason, and how long you retain it, because the default in most access platforms is to keep everything forever. Build the retention policy and the approval workflow into the system rather than leaving it as an operational habit.

Finally, ask what the developer has integrated by name. Lenel OnGuard and C-CURE 9000 are different problems. Banner and Workday Student are different problems. A vending supplier's batch file is a different problem from a print management interface. Then get ownership in writing before kickoff: the repository, the cloud accounts and the right to hire anyone else. At Digital Heroes the code is yours from the first commit, and middleware sitting on the critical path for life safety and money is not something to rent.

Research & sources

The evidence behind this guide

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

  1. OECD research finds that digitalisation offers SMEs opportunities to improve performance, spur innovation, enhance productivity and compete more evenly with larger firms; it reports that increased use of online platforms produced significant multi-factor productivity gains in SME-heavy sectors such as hospitality and retail, while smaller firms lag in adoption due to skills, resource and financing gaps. Source: OECD (2021) →
  2. The federal government spends about 80% of its IT budget on operations and maintenance of existing systems rather than on development or modernization, with many critical systems being decades old. Source: U.S. Government Accountability Office (GAO) (2025) →
  3. A study (led by Prof. Pak-Lok Poon, published in Frontiers of Computer Science, 2024) reviewing decades of spreadsheet-quality research found that about 94% of spreadsheets used in business decision-making contain errors, illustrating the hidden risk of manual spreadsheet workarounds that custom software is built to replace. Source: Central Queensland University / phys.org (Prof. Pak-Lok Poon et al.) (2024) →
  4. Salesforce's field-service research (State of Service / field service trends, survey of 5,500+ service professionals) found that 74% of mobile workers report increasing workloads and 47% say appointments don't go as planned due to customer miscommunication, unaccounted-for parts, or insufficient appointment lengths and travel times. (The separate claim that admin tasks consume ~30% of a technician's hours is NOT supported by the report - the seventh-edition data instead states technicians spend about 18% of working hours, ~7 hours/week, on admin, and only ~32% of time interacting with customers.). Source: Salesforce (2024) →
Varalika D. · Web Developer · Lucknow

Varalika turns design files into working pages, which involves more judgment than it sounds: spacing that holds at every screen width, states the mockup never showed, and interactions that need to feel right rather than merely function. She writes about the gap between a design and a built site.

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

FAQ

Frequently asked questions

How fast can a lost campus card actually be deactivated?
Online doors on a wired panel revoke in seconds. Battery powered wireless locks on residence hall doors often hold a cached allow list and only update when a technician walks the building or the lock next reaches a gateway, so on those doors the card stays live until they sync. The honest deliverable is not instant revocation, it is a revocation completeness figure per building after each deactivation plus a prioritised walk list for locks that have not caught up.
Why do access rights survive a room change or a course drop?
Because entitlement moves as a nightly file rather than an event, and because grants are stored as door group memberships with no record of why they exist. A grant should carry its source and an expiry, so ending a housing assignment kills the associated access on its own. Without that, every change depends on a file arriving and on nobody forgetting to remove the old membership, which is a process that fails in one direction only.
What should we do with the manual door groups we inherited?
Treat the migration as an amnesty and do it once. Recompute every grant that can be derived from a current system of record, then put everything left over into an exceptions list with a named owner and a deadline, and remove whatever is unclaimed. It is politically uncomfortable and it is the only moment when the cleanup is cheap, because after go live the new system makes those legacy grants look authoritative again.
Can we keep Transact or CBORD and still build the middleware?
Yes, and that is usually the right architecture. Those platforms handle card issuance, dining plan mathematics and declining balance accounts well, and replacing them rarely pays. What you build above them is the entitlement authority: one person record, one grant model with sources and expiries, and event driven push to your access head ends. The card platform keeps being the system of record for its own accounts and stops being asked to be an architecture.
How do we keep payment card compliance scope small on card top ups?
Keep your own infrastructure out of scope rather than trying to comply the hard way. Use a hosted payment page or a tokenising gateway so primary account numbers never reach your servers, and document that decision in the architecture before your treasury office asks. Your stored value ledger then holds tokens and transaction references only. Confirm the final scope position with your institution's payment compliance officer rather than with a developer.
Why do stored value disputes take so long to resolve?
Because the evidence is spread across a terminal batch, possibly the card system, and a weekly settlement file, with no single record tying them together. One account ledger with double entry semantics fixes it: every transaction carries the terminal, the credential used, the device timestamp and your own, with an idempotency key so a replayed batch cannot double post, and refunds recorded as entries rather than edits to the original.
Does a second door platform really double the integration work?
Close to it. Each head end has its own cardholder update semantics, its own tolerance for update volume and its own behaviour when a push partially fails, so a second platform is nearer a second integration project than a configuration change. Institutions that grew through renovation or merger usually have two or three. Name every platform in the scope and price them separately rather than accepting a single line for access control integration.
What data protection issues come with campus access logs?
Door history is sensitive information about students and staff and forms part of an education record subject to FERPA in the relevant contexts. Decide explicitly who may query it, whether campus safety needs a documented reason, and how long it is retained, because most access platforms default to keeping everything indefinitely. Build the retention rule and the query approval workflow into the system so the policy is enforced rather than remembered.
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 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.
Should I ask for a fixed price or pay the agency hourly?
Fixed price for the first version, hourly or retainer for what comes after launch. A fixed-scope, fixed-price V1 puts the estimation risk on the agency, which is exactly where you want it while trust is unproven; hourly billing on an unscoped greenfield build is a blank check. After launch, flip it, because maintenance and small features arrive unpredictably and fixed-pricing every ticket wastes everyone's time.
Is it cheaper to customize Salesforce than to build a custom CRM from scratch?
If you use less than a third of what Salesforce does, a custom CRM is often cheaper by year three. Salesforce Enterprise lists at $165 per user per month, so 25 seats cost about $49,500 a year before admin and consultant fees, while a focused custom CRM runs $60,000 to $100,000 once plus 15 to 20% a year in maintenance. If you genuinely need Salesforce's ecosystem, reporting, and app marketplace, customizing it beats rebuilding it; the mistake is paying enterprise prices to use it as a glorified contact list.
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.
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.
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.
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.
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?