Problems & solutions · Custom Software

Tenant Portal Development Problems: The 5 That Cost Real Money, and How to Avoid Them

Tenant Portal Development product interface illustration showing common problems and fixes.
The short answer

The most expensive failure in a tenant portal build is the autopay migration, because enrollments cannot be transferred silently and a cutover that assumes they can produces a month where rent does not arrive from the residents most reliable about paying it. You then chase thousands of balances that were never delinquent, your ledger and your bank disagree for a full cycle, and the residents who had been on autopay for years are the ones you have taught not to trust the new system.

Why does the lease and payer model get underscoped so often?

Portal briefs are written from the resident's point of view, which is reasonable, and they describe screens. Pay rent. Submit a request. See documents. Every screen in that list attaches naturally to a person, so that is how the data model gets built, and it is wrong.

The payer entity in property management is the lease, not the individual. A balance belongs to a lease. Four roommates share one obligation while each needing their own login, their own share and their own autopay, with visibility of the household total. A resident who moves from one unit to another inside your portfolio is one person and two leases. A mid-month move-out hits proration on the lease, not on anybody's account. Teams without property management experience discover roommates in month four, and the rework touches payments, messaging and the ledger simultaneously because all three were built on the wrong key.

The second half of the same failure is the work order. Submitted as a form, it becomes a record with a status. Modelled as a lifecycle, it becomes the thing that actually deflects calls: received, triaged, vendor assigned, scheduled with an arrival window, parts ordered, completed, rate the repair. Residents call because the portal said in progress on day two and still says it on day nine.

Make the developer whiteboard units, leases, ledger lines, work orders and occupants before you sign anything, and ask specifically how a mid-month move-out prorates and how a roommate split posts to one lease. If they attach balances to people, they will learn this domain during your build.

What goes wrong when balances, work orders and autopay are migrated?

The migration in this category is small in volume and large in consequence, because it moves money.

Autopay is the item that hurts. Recurring payment authorizations are granted to a specific arrangement and cannot simply be moved into a new one, so residents have to re-enroll. A rollout that treats this as a data task discovers on the first of the month that a large share of the portfolio did not pay, and those are your most reliable residents. The fix is a deliberate enrollment campaign with prompts at rent time, both portals live in parallel for at least one full billing cycle, and a daily reconciliation during the overlap comparing what each system expected to collect.

Open balances are the second. Ledger lines carry meaning that a plain export loses: what the charge was for, whether it is disputed, whether a payment plan covers it, whether an eviction filing is active. Migrating amounts without that context produces a plain-language ledger that cannot explain anything, which was the point of building it.

Open work orders are the third, and they are usually the easiest to get wrong quietly. A request submitted last week in the old portal, with photos and a vendor already assigned by phone, needs to arrive in the new system with its history or the resident starts again. Migrate the open ones with their notes and attachments, and leave the closed ones in an archive rather than reconstructing them.

Why do the property management, payment and vendor integrations break after launch?

A resident portal that sits on top of an accounting system inherits every change made in that system by someone who does not know your portal exists.

The sync drifts in specific ways. A new charge code is added by accounting for a fee at one property, and the portal shows a ledger line labelled with a code instead of plain language. A property is onboarded from an acquisition with a different chart of accounts and the mapping does not cover it. Interface access tiers change, or a scheduled export starts landing somewhere nobody reads. Payments break differently: an automated clearing house return arrives days after a payment appeared to clear, and a portal that marked the balance paid on submission now shows a resident as current when they are not.

Vendor links break for a human reason rather than a technical one. Contractors do not log in. A vendor flow that requires an account, a password policy or an app install gets abandoned within a fortnight, and your coordinators go back to phoning for status, which is the exact cost the project was meant to remove.

Design accordingly. Map charge codes explicitly and raise an exception for unmapped ones rather than displaying a raw code to a resident. Handle return codes correctly so a returned payment reverses cleanly with a resident notification rather than silently. Alarm on silence for scheduled syncs, since a feed that stops looks identical to a quiet day. And give vendors a phone-friendly link with no install and no account, because adoption is the integration.

What happens when compliance and accessibility duties are not covered?

Three obligations get treated as policy questions rather than engineering, and each carries a real cost.

Deposit itemization deadlines are the sharpest. States set the clock, California allows 21 days, and missing it because the inspection photos live on a technician's phone is an expensive filing error that will happen at scale across a large portfolio. The build should run the whole arc: a digital notice to vacate that timestamps itself, a make-ready pipeline triggered automatically, a self-scheduled inspection with photos captured in the system, and an itemization delivered in the portal against the statutory clock for that property's state.

Second, automated messaging and fair housing. A portal that sends templated messages at scale is generating housing-related communication, and templates written casually can create exposure. Review the message library against fair housing rules before launch, keep the templates in one governed place rather than scattered through code, and log what was sent to whom.

Third, accessibility. Residents include screen reader users, and a portal is a service, so build to recognised web accessibility standards from the start. Retrofitting accessibility after launch means reworking every component rather than adding a setting, and it is one of the few compliance items that gets more expensive with every screen you ship.

Should you build custom or configure what you already own?

Under roughly 1,500 to 2,000 units with a single asset class and standard policies, the AppFolio, Buildium or Yardi RentCafe portal at list price is a bargain and your pain is probably staffing or process rather than software. Spending six figures to rebuild a portal for 800 doors is a vanity project and we would tell you so.

Where an operator already owns one of these, the honest first move is to check whether the specific gap is configurable. Some are. Announcement targeting, some fee rules and some document handling can be tightened without engineering. What is not configurable is the shape of the resident experience: granular work order states that depend on vendor input, roommate split payments against one lease, payment plans with promise dates and escalation, and different modules for market rate, affordable and association residents from one back office.

Whatever you decide, do not replace the accounting core. Operators who attempt to rebuild trust accounting, bank reconciliation and tax reporting burn the entire budget re-implementing rent rolls and residents never see any of it. Keep the system of record where it is and build the layer residents actually touch, syncing charges, payments and work orders through the available interface or scheduled exchange.

How do hidden costs get into the quote?

Five items sit outside most portal quotes. Money movement, which is the largest: automated clearing house returns, refunds, partial payments and trust accounting rules are real engineering rather than a payment button. Ask specifically what happens when a payment is returned four days after it appeared to clear.

Second, sync depth, because a real-time integration with your property management system costs meaningfully more than a nightly exchange and the difference is rarely stated in a proposal. Third, the number of asset classes, since affordable, association and student housing each add a module with its own workflow, and a quote scoped on market rate apartments will not cover them. Fourth, affordable housing document workflow, which is a compliance queue rather than an upload form. Fifth, accessibility, if it was not scoped from the start.

What barely moves the price is unit count. Building for 2,000 doors and for 12,000 doors costs nearly the same, and the difference shows up in hosting rather than development. Attach a written exclusion list naming the asset classes and the payment scenarios included.

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

Rollout discipline decides this more than features do. The builds that work go property by property with enrollment prompts at rent time, run both portals in parallel for at least one billing cycle, and reach high adoption within two cycles. The builds that fail cut the whole portfolio over on the first of the month, which puts every payment problem, every autopay lapse and every confused resident into one week that your support team cannot absorb.

The second differentiator is whether the portal is treated as core infrastructure from the day autopay moves onto it. That means deployment freezes across the rent window at the start of each month, a named on-call arrangement, and a clear picture of what support looks like in month seven rather than at launch. A portal outage on the third is a collections problem, not a technical incident.

The third is ownership. Full assignment of the custom code, with repositories and cloud accounts opened in your company's name from day one and a documented handover package, agreed before work starts. The whole reason to build this layer is that you did not want your resident experience defined by someone else's roadmap. Ending up dependent on an agency instead of a vendor is the same trap with a smaller support desk.

Research & sources

The evidence behind this guide

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

  1. 48% of private companies cite integration with legacy systems or technical debt as a top obstacle to realizing the full value of their digital and AI investments (behind data quality/availability at 72% and gaps in AI fluency or technology talent/leadership at 53%). Source: Deloitte (2026) →
  2. Median SaaS spend reached $9,455 per employee, and organizations leave an average of 36% of their SaaS licenses unused. Source: Zylo (2026) →
  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. 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) →
Veer S. · Senior iOS Engineer · Delhi

Veer builds iOS applications at Digital Heroes, working in Swift on everything from the interface layer to the networking and offline handling underneath. Readers get engineer level detail on how features are actually implemented, and why some requests are far more expensive than they look.

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

FAQ

Frequently asked questions

Rent collection dropped the month we launched. What went wrong?
Almost certainly autopay. Recurring payment authorizations are granted to a specific arrangement and cannot be silently transferred, so residents must re-enroll, and a cutover that treats this as a data migration finds out on the first of the month. Recover by running both portals in parallel through a full cycle, prompting enrollment at rent time, and reconciling daily during the overlap. The residents affected are your most reliable payers, so the reputational cost is worse than the cash gap.
Our new portal still gets status calls. Why did it not deflect anything?
Because the work order is modelled as a submission with a status rather than as a lifecycle. Residents call when the screen says in progress on day two and still says it on day nine, since that state covers everything from a vendor assigned an hour ago to a part on backorder. Show received, triaged, vendor assigned, scheduled with an arrival window, parts ordered and completed, with a notification on each transition, and get the states from the vendor rather than from office staff.
Roommates broke our payment model. How should it have been built?
With the lease as the payer entity rather than the person. A balance belongs to a lease, and each roommate gets their own login, their own share and their own autopay with visibility of the household total. Attaching balances to individuals works until the first shared unit, and the rework touches payments, messaging and the ledger at once because all three sit on the same key. This is the single question worth making a developer whiteboard before you sign.
A resident shows as current but their payment was returned. How is that handled properly?
By treating the automated clearing house return as a first-class event rather than an exception. A payment that appeared to clear can be returned days later, so the portal must reverse the credit, apply the correct return code handling, notify the resident and restore the balance without a staff member noticing manually. Marking a balance paid on submission is the common shortcut and it produces a ledger that disagrees with your bank for the rest of the month.
Our vendors will not use the portal. What now?
Remove every barrier that is not the job itself. A phone-friendly link with no app install and no account, where the vendor accepts the work, sets an arrival window and uploads completion photos. Anything requiring provisioning or a password policy gets abandoned within a fortnight, and your coordinators go back to phoning for status, which is the exact cost the project was meant to remove. Vendor adoption is the integration, not a nice addition to it.
Which compliance items must be built rather than documented?
Deposit itemization against each state's statutory clock, with inspection photos captured in the system rather than on a technician's phone, since missing that deadline is an expensive error at portfolio scale. Fair housing review of the automated message library, kept in one governed place with a log of what was sent to whom. And accessibility built in from the start, because retrofitting it means reworking every component rather than changing a setting.
What is the most commonly missed cost in a tenant portal quote?
Money movement. Returns, refunds, partial payments and trust accounting rules are real engineering, and quotes frequently price a payment button. Ask what happens when a payment is returned four days after it cleared. After that it is sync depth, since a real-time property management integration costs meaningfully more than a nightly exchange and proposals rarely say which is included, then the number of asset classes, because affordable and association residents each need their own module.
Should we replace our property management system while we are at it?
No. Rebuilding trust accounting, bank reconciliation and tax reporting is a multi-year effort with regulatory risk and almost no resident-facing payoff, and operators who attempt it spend the budget re-implementing rent rolls that nobody outside accounting ever sees. Keep the system of record where it is and build the layer residents touch, syncing charges, payments and work orders through the available interface or scheduled exchange. The calls you are drowning in come from the resident experience, not the ledger.
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.
Should I hire a freelancer or an agency for my software project?
A skilled freelancer is the right call for a single-discipline scope under roughly $15,000, like a website, a plugin, or one integration. Above that, projects need design, backend, testing, and project management at once, and a solo builder becomes the single point of failure: if they get sick or take a bigger client, your project simply stops. Agencies bill 20-40% more per hour but carry continuity, code review, and someone to escalate to, which is what you are actually buying.
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.
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.
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.
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.
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.
What is the biggest mistake first-time software buyers make?
Choosing the lowest quote without asking why it is the lowest. A bid 40% under the field usually gets there by skipping tests, documentation, and code review, which are invisible in a demo and brutal to pay for later; every stalled project Digital Heroes has been asked to rescue tells some version of that story. The second mistake is signing without a written scope, which reliably turns the winning cheap quote into 1.5x to 2x the price by launch.
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?