Problems & solutions · Custom Software

Tenant Screening Platform Problems: The 5 That Invite Fair Housing Claims, and How to Avoid Them

Tenant Screening Platform Development code editor and API illustration showing common problems and fixes.
The short answer

The most expensive failure mode is a decline with no record of what rule produced it. A leasing agent glances at a score, opens two uploaded pay stubs, does mental arithmetic against a three times rent rule, and declines. Nothing captures which criteria were applied or in what order. When a fair housing tester or a state attorney general asks the only question that matters, show us your criteria and show us they were applied identically to every applicant, there is no answer, and the absence of the record is itself the finding. That exposure is open across every application you have ever processed, it cannot be fixed retroactively, and it is far more costly than the loss rate anyone is trying to manage.

Why does a screening project become a report viewer?

The requirement that reaches a developer is usually pull credit, criminal and eviction data and show it to the leasing team in one place. That is a report viewer, it demos well, and it leaves the actual product untouched. The bureaus sell you inputs. What determines your loss rate, your fair housing exposure and your leasing velocity is the policy applied to those inputs, how consistently it runs, and whether you can evidence it afterwards.

A viewer moves the judgement to a human at a leasing office, which is precisely where inconsistency lives. Two agents in two properties reading the same report reach different conclusions, and the pattern of those differences is what a disparate impact analysis surfaces.

The second half of the same failure is deciding your Fair Credit Reporting Act posture late. The FCRA imposes obligations on entities that assemble or evaluate consumer information and furnish it to third parties for tenant screening decisions, so a platform other landlords use sits differently from one you run on your own portfolio. If those obligations apply, consumer file access, dispute handling and reinvestigation with defined timelines are first class features rather than a later phase. Put that question to counsel in week one, before any architecture is chosen. Retrofitting the consumer side later is expensive and usually gets discovered after the first demand letter.

Scope the first release around applicant intake with identity verification, a rules based decision engine with recorded reasons, payroll and bank income verification, document fraud checks and adverse action generation. That is $80,000 to $170,000 over 14 to 22 weeks in our delivery experience.

What goes wrong when existing criteria are turned into rules?

Every operator believes they have written criteria. What they usually have is a page that says minimum credit score, income of three times rent, no evictions in the last however many years, plus a set of unwritten practices that leasing staff apply daily: what counts as acceptable proof of income for a self-employed applicant, when a guarantor is offered instead of a decline, and when a higher deposit is used instead.

Turning that into a rule set forces every unwritten practice into the open, and it takes longer than anyone plans. Two things surface. Different regions apply different thresholds, which nobody had quantified. And some practices cannot survive being written down, because once a rule is explicit somebody has to own it, and the owner realises they would not defend it in writing.

That discomfort is the value of the exercise, and it needs counsel in the room rather than after the fact. Version the criteria set with effective dates, because you will change it and you need to know which version decided each application. Migrate historic decisions as records rather than as recomputable cases. And resist encoding a single blunt income multiple. Deposit stability across several months, income volatility and rent burden against local cost data predict payment behaviour better and treat variable earners more accurately.

Why do the bureau, payroll and record source feeds break after launch?

Four categories of supplier, four different failure modes. Bureau feeds break on certification and contract terms rather than technology: a permissible purpose configuration changes, or a certification is renewed with a different requirement. Payroll and bank connection providers such as Argyle, Truv, Pinwheel or Plaid break on coverage, meaning a payroll processor changes something and a segment of applicants can no longer connect. Criminal aggregators break on source availability, because a county changes how it publishes and coverage silently narrows. Eviction data varies enormously by county in quality and freshness.

The dangerous pattern is silent degradation rather than an outage. If a criminal source stops returning results for a jurisdiction, your platform reports clean applicants and nobody notices, because a clean result looks like a normal outcome. If a payroll provider loses coverage for an employer, applicants quietly fall back to document upload.

The fix is to monitor the shape of results, not just the availability of the endpoint. Track hit rates per source per jurisdiction, verified connection rates per provider, and fallback to document upload as a rate rather than an event, and alarm on a shift. Record for every decision which sources were queried and what each returned, including empty results, so the evidence shows what you actually knew. Then keep a manual review path usable when a source is degraded, because the alternative is declining people on the basis of missing data.

What happens when adverse action and disputes are not covered?

Adverse action is where a decentralised portfolio is most measurable and most often wrong. When an application is denied, or approved on worse terms such as a higher deposit or a required guarantor, notice obligations are triggered. In practice these go out inconsistently, late, or not at all, and the copy varies by office. Any regulator or plaintiff's firm looking at your process starts here, because it is countable.

Conditional approvals are the case most often missed entirely, since staff do not experience them as a denial. A higher deposit is a worse term, and the obligation follows.

Generation has to be automatic, triggered by the decision itself rather than by a person remembering. The notice identifies the consumer reporting agency that supplied the information, states the applicant's rights including the free file copy and the dispute route, and is delivered through a channel that records proof of delivery. Where an individualised assessment is required in a jurisdiction, capture it as structured input rather than a free text note.

Disputes are the other deferred gap. If you carry consumer reporting agency obligations, a dispute is a tracked case with a clock, a reinvestigation record of what changed, and propagation of corrections to every decision that relied on the disputed data. Building that after launch means going back through decisions already made. The useful side effect of doing both properly is that decline reasons become analysable, so you can run your own disparate impact review first.

Should you build custom or configure what you already own?

If you screen a few hundred applications a year, do not build. TransUnion SmartMove exists for exactly that operator and building anything would be indefensible. If you are mid sized with simple uniform criteria in markets without fair chance ordinances, RentSpree plus a bureau report will serve. If your only real problem is forged documents, buy Snappt and stop there. If you want an outsourced decision with a guarantee attached, look at what Findigs offers before you build the same thing.

Before commissioning anything, do the work that costs nothing. Write your criteria down completely, including the unwritten practices, and have counsel review them. Standardise your adverse action template and make sending it a required step in whatever tool you use today. Pull a few hundred recent decisions and check whether the stated criteria actually predict them, because if they do not, no software will make them consistent. Those three frequently remove the largest share of exposure and tell you what is left to build.

Build when two or more of these are true. Screening is part of a product you sell, in which case the platform is the business. You operate across jurisdictions with materially different record rules and cannot enforce them through training. Your criteria are genuinely differentiated and a packaged product forces you back to a blunt ratio. You need decision level evidence for fair housing defence and your current stack cannot produce it. Or fraud losses have become a line item and generic detection has stopped keeping up.

How do hidden costs get into the quote?

Five items produce most of the overrun in screening builds.

  • Consumer reporting agency posture. If you carry those obligations, consumer file access, disputes and reinvestigation are effectively a second product with their own interface, timelines and support load.
  • Supplier onboarding calendars. A credit bureau, a criminal aggregator, an eviction source and an identity provider are four contracts with four certification processes, and no amount of engineering effort compresses them. Start them in parallel with development, not after.
  • Jurisdiction coverage. Every fair chance housing ordinance is separate rule work with separate counsel review, and the rule set needs effective dates because ordinances change.
  • Document fraud depth. Metadata and editing artefact analysis, font and object anomaly detection and internal arithmetic checks are a specialist build.
  • Criteria definition. Getting the unwritten practices written, quantified and approved by counsel is weeks of your people's time and it is never in a developer's estimate.

What keeps the number down is buying the data and building the decision. Integrate a bureau product for the report and put the engineering budget into policy, verification, consistency and evidence, which is where both the value and the risk live.

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

Ask about FCRA posture in the first meeting. A developer who does not immediately ask whether you will be furnishing reports to third parties has not built in this space, and the answer determines the architecture rather than a feature list.

Ask them to model the decision out loud. You should hear applicant, identity, data source result with match confidence, jurisdiction rule set with effective dates, criteria version, decision with reasons, notice and dispute. If the sketch is applicants and reports, you will get a report viewer and inherit the compliance problem you were trying to solve.

Ask how a record with a weak identity match is handled. Criminal and eviction sources often match on name and date of birth alone, which returns records belonging to other people, and the applicants most affected are those with common surnames. The right answer stores match confidence per record with the fields that matched, sets a threshold below which nothing can drive an automated decision, routes those to human review with the evidence visible, and logs every suppressed record and why.

Then settle ownership in writing before kickoff. You should own the repository, the cloud accounts, the database and the full decision audit log. At Digital Heroes the client owns the code and the data from the first commit. Those records are the evidence in any fair housing or FCRA matter and may be needed years after the application was decided.

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. An A/B test comparing an optimized landing page against the original delivered a 53.37% increase in revenue per visitor and a 33.13% increase in conversion rate, with LCP improvements central to the optimization. Source: web.dev (Google Chrome team) (2021) →
  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. Per Sensor Tower's State of Mobile 2026, worldwide consumers spent about $85 billion on apps in 2025 (up 21% YoY), and for the first time non-game apps surpassed games in consumer spending; generative-AI in-app purchase revenue more than tripled to top $5 billion. Source: Sensor Tower (via TechCrunch) (2026) →
Parth Srivastav · General Manager · Delhi

As General Manager, Parth connects commercial decisions to what the delivery teams can realistically build. Scope, pricing structure, team shape and account health all cross his desk. His writing is useful for anyone trying to work out what a software project should cost and why.

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

FAQ

Frequently asked questions

Why is a decline with no recorded reason more dangerous than a wrong decline?
Because the absence of the record is itself the finding. A single wrong decline is a dispute. A process that cannot show which criteria were applied, in what order, and that they were applied identically across applicants is an exposure spanning every application you have ever processed. It cannot be reconstructed after the fact, and it is the first thing a fair housing tester or state regulator asks for. Recording the criteria version and the reasons at decision time costs almost nothing and closes it.
When should the FCRA question be settled?
In week one, with counsel, before any architecture is chosen. The Fair Credit Reporting Act imposes obligations on entities that assemble or evaluate consumer information and furnish it to third parties for screening decisions, so a platform other landlords use sits differently from one you run on your own portfolio. If those obligations apply, consumer file access, dispute handling and reinvestigation with defined timelines are first class features. Retrofitting them into a landlord-only platform is expensive and usually happens after a demand letter.
What surfaces when you write down criteria that were previously unwritten?
Two uncomfortable things. Different regions turn out to apply different thresholds, which nobody had quantified. And some practices cannot survive being written down, because once a rule is explicit somebody has to own it and the owner realises they would not defend it in writing. That discomfort is the value of the exercise rather than a reason to avoid it, which is why counsel should be in the room while the rule set is drafted rather than reviewing it afterwards.
How do screening data feeds fail without anyone noticing?
By degrading rather than stopping. If a criminal aggregator loses coverage for a county, your platform reports clean applicants and a clean result looks like a normal outcome. If a payroll provider loses coverage for an employer, applicants quietly fall back to document upload. Monitor the shape of results rather than endpoint availability: hit rates per source per jurisdiction, verified connection rates per provider, and fallback rates, with an alarm on a shift. Record which sources were queried per decision, including empty results.
Which adverse action case is missed most often?
The conditional approval. A higher deposit or a required guarantor is an approval on worse terms, so notice obligations follow, but leasing staff do not experience it as a denial and the notice never goes out. Generate notices automatically from the decision rather than relying on a person remembering, identify the consumer reporting agency that supplied the information, state the applicant's rights including the free file copy and dispute route, and deliver through a channel that records proof of delivery.
Why is identity matching the biggest fair housing risk in an automated system?
Because criminal and eviction sources frequently match on name and date of birth alone, so returned records belong to other people, and the applicants most affected are those with common surnames. A system that treats a returned record as identified will decline the wrong people at volume in a pattern that a disparate impact analysis will find. Store match confidence per record with the fields that matched, set a threshold below which nothing drives an automated decision, and log every suppression with its reason.
Can we detect forged pay stubs reliably?
Partly, and the better answer is to need documents less often. Prefer verified sources through payroll connections such as Argyle, Truv or Pinwheel and bank connections through Plaid or a comparable aggregator, and keep upload as a genuine fallback because some applicants cannot connect. For documents, the checks that work are producer and modification metadata, font and object anomalies, internal arithmetic between gross, deductions and net, and cross document consistency between employer names and deposit descriptors. A model that scores without showing why is a liability.
What should we fix before commissioning a screening build?
Write your criteria down completely including the unwritten practices and have counsel review them. Standardise the adverse action template and make sending it a required step in whatever tool you use today. Then pull a few hundred recent decisions and check whether your stated criteria actually predict them. If they do not, no software will make the process consistent, and you have found the real problem for the cost of an afternoon rather than the cost of a platform.
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.
We run everything on Airtable and spreadsheets. When is it time to go custom?
The switch usually makes sense when you hit one of two walls: Airtable's record caps (125,000 records per base on the Business plan) or logic the tool cannot express, like multi-step approvals with conditional pricing. There is also a simple cost signal: 25 people on Business at roughly $45 per seat per month is about $13,500 a year, forever, for a tool you are already fighting. Custom is worth it when the workflow is core to how you make money; for peripheral processes, staying on Airtable is the right call.
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.
If we build for 20 users now, will the software cope with 500 later?
It should, without a rewrite, if it was built on a standard cloud stack; going from 20 to 500 users is mostly a hosting configuration change costing hundreds a month, not a second project. What actually breaks under growth is sloppier work: database queries never indexed for volume and features designed assuming one office's worth of data. Before signing, ask the vendor what happens to the system at ten times today's data, and listen for a specific answer.
How many SaaS seats do we need before building custom becomes cheaper?
The crossover usually shows up between 20 and 50 seats on premium tiers. Salesforce Enterprise lists at $165 per user per month, so 40 users cost about $79,000 a year in subscriptions, which is real money against a custom system you would own outright. Run the comparison over three years: if subscription spend beats the build cost plus 15-20% annual maintenance, custom wins on price before you even count workflow fit.
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.
How do I calculate whether custom software will pay for itself?
Divide the build cost by the monthly benefit, where benefit is hours saved times loaded hourly cost, plus subscription fees replaced, plus any revenue the software unlocks. Three staff saving 10 hours a week each at a $40 loaded rate is about $62,000 a year, which pays back a $60,000 build in roughly 12 months. Across Digital Heroes internal-tool projects, 12 to 24 months is the normal payback range, and anything projecting under 6 months usually means the spreadsheet is hiding costs.
How much should a small business budget for its first custom app or website?
For a focused first build, most small businesses land between $8,000 and $60,000: roughly $8,000 to $45,000 for a custom website and $25,000 to $60,000 for an internal tool or simple web app, based on Digital Heroes delivery across 2,000+ projects. Customer-facing products with payments, logins, or a mobile app start around $40,000. Quotes far below these bands usually mean a template with your logo on it, not software shaped around your workflow.
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?