Why most skip tracing services make you redo your list
If you have used skip tracing tools before, you know the drill. You pull a fresh list of property owners, absentee owners, or pre-foreclosure leads, you open it in Excel, and you spend the next twenty minutes renaming headers, splitting full names into First Name and Last Name, converting California into CA, deleting blank rows, deduplicating, and praying the upload accepts UTF-8. Most providers built their pipelines around a strict template. If your file does not match it byte for byte, the upload bounces, sometimes silently, sometimes with a cryptic error.
That prep work is supposed to come before you get any actual skip tracing results. For real estate wholesalers, mortgage brokers, roofing companies, HVAC crews, and investors running weekly outreach, that step adds up to hours every month and a real chance of human error: a column accidentally renamed, a row accidentally lost, a state code missed.
We built our skip tracing platform with that frustration in mind from day one. The premise is simple: any list a real customer actually has should run, even if the headers are messy, the names are mashed together, the entity types are mixed, or the file is in a slightly off format. Our job is to figure it out. Not to bounce your file back.
Meet the Universal File Engine
The Universal File Engine (UFE) is the part of our skip tracing platform that handles file ingestion. It runs every uploaded list through three classification layers before anything is billed or submitted to the trace pipeline. Most files clear the first layer and never need the rest.
Smart Column Mapper
A smart mapper reads your headers and matches them against the canonical fields the engine needs (address, city, state, name, zip, business name). Headers like prop_addr, Property Address, address1, ADDRESS, or Subject Address all map to the same field with no work on your side.
Row Classifier
Each row is checked for owner-name presence, entity keywords, address completeness, and dedup signals. Rows are bucketed into Standard Homeowner, Advanced, Business / Entity, or Skip. A mixed file is split internally so each row goes to the right trace type.
Smart Safety Net
If a row is genuinely ambiguous, the engine takes one final look before the file is routed. Examples: a single name column where the split between first and last is unclear, an entity name with no recognised suffix, or a row that mixes address pieces. Most files never trigger this layer.
The result: the vast majority of files we receive run end to end with zero cleanup on the customer side. The 1-row test file from a new account, the 20,000-row enterprise mortgage refi list, the messy hand-edited spreadsheet, the export from a county portal: almost all of them route on the first or second layer.
"My file has 50 columns" and that is fine
This is the single most common worry we hear from new users. Your file can have any number of columns, named anything, in any order. The engine looks for the specific fields each trace type needs and ignores the rest. Extra columns (loan amount, equity, lead score, notes, last contact date) are kept untouched and copied into the result file so your downstream workflow stays intact.
What matters is whether the columns required by the trace type you want are present somewhere in your file. The next three sections tell you exactly which columns those are.
Standard Homeowner Trace
The cheapest path. Used by most of our customers.
You need five required columns. Mailing-address fields are optional but help when the owner does not live at the property they own (common for absentee landlords, out-of-state investors, and probate situations).
| Column | Required? | Example |
|---|---|---|
| First Name | Required | Maria |
| Last Name | Required | Lopez |
| Address | Required | 1428 Oak Ridge Dr |
| City | Required | Austin |
| State | Required | TX |
| Mailing Address | Optional | PO Box 421 |
| Mailing City | Optional | Round Rock |
| Mailing State | Optional | TX |
Here is what a clean Standard Homeowner file looks like when opened in Excel or Google Sheets. Notice it also has extra columns the engine does not need (Loan Amount, Notes); those are ignored for the trace and copied through to the result file:
| First Name | Last Name | Address | City | State | Mailing Address | Loan Amount | Notes |
|---|---|---|---|---|---|---|---|
| Maria | Lopez | 1428 Oak Ridge Dr | Austin | TX | PO Box 421, Round Rock TX | $340,000 | absentee |
| James | Patel | 902 N 3rd St | Phoenix | AZ | $215,000 | ||
| Karen | Wright | 55 Lakeview Cir | Tampa | FL | 1900 Bay Harbor Rd, Sarasota FL | $478,500 | probate lead |
| David | Nguyen | 317 Maple Ct | Denver | CO | $612,000 | ||
| Sarah | Cohen | 88 Highland Ave | Newark | NJ | $295,000 | refi target |
// orange = required by the trace. grey = optional or extra columns the engine ignores.
Typical match rates on Standard Homeowner traces sit between 75% and 92% on fresh county records or recent MLS exports. Older marketing lists can land lower because the underlying owners may have moved or sold; skip tracing is a live lookup, not a static database join, so list freshness matters more than list size.
Advanced Trace (address-only lists)
For address-only lists. The engine finds the owner first, then traces.
You need three required columns: Address, City, State. Zip is optional; if missing, the engine fills it in. This is the right path for files where you wrote down properties without knowing who lives there: driving for dollars, foreclosure feeds, county auction sites, code-violation lists, vacant-property scouting.
Important: if your file is address-only, do not add fake or empty First Name / Last Name columns to "make it look complete". The engine handles missing-name files natively. Adding empty name columns can confuse the row classifier into thinking you intended Standard trace and the rows have data quality issues.
| Column | Required? | Example |
|---|---|---|
| Address | Required | 930 Oban Dr |
| City | Required | Los Angeles |
| State | Required | CA |
| Zip | Optional | 90065 |
Here is what an address-only file looks like in a spreadsheet. Notice the file also has a "Notes" column from the field crew; the engine ignores it for the trace and copies it into the result file:
| Address | City | State | Zip | Notes |
|---|---|---|---|---|
| 930 Oban Dr | Los Angeles | CA | 90065 | old roof, gutters bad |
| 4501 Beverly Blvd | Los Angeles | CA | 90004 | vacant |
| 712 W Olympic Pl | Seattle | WA | 98119 | overgrown lawn |
| 2105 SW 8th St | Miami | FL | 33135 | storm damage on porch |
| 14 Broad St | Charleston | SC | 29401 |
// Zip column blank? No problem. The engine fills it in.
If your list mixes rows that have names and rows that do not, you do not need to split the file yourself. The engine splits it internally and reports each batch separately, so you see Standard rows priced as Standard and Advanced rows priced as Advanced in the same job summary.
Typical match rates on Advanced Trace land in the 60-80% range. The number is bounded by how many of your addresses correspond to a real, current property record; vacant lots and brand-new construction can lower the rate.
Business / Entity Trace (LLC, INC, TRUST)
Different data sources, deeper search, real entity records.
This is the surprise to most users: Business / Entity Trace requires only two columns. The engine pulls registered agents, officers, members, and contact records by querying state corporate filings using the entity name and the state it is registered in.
| Column | Required? | Example |
|---|---|---|
| Business Name | Required | Sunrise Holdings LLC |
| State | Required | NC |
| Address | Optional | 4400 Camden Rd |
| City | Optional | Charlotte |
The engine recognises business entities by keyword: LLC, INC, CORP, CORPORATION, TRUST, HOLDINGS, PARTNERS, LP, LTD, ASSOCIATES, ENTERPRISES, FOUNDATION, VENTURES, MANAGEMENT, REALTY, CAPITAL, and dozens of common variants. Mixed files (individuals + entities in the same name column) are split out and routed correctly without you doing anything.
One important note about the State column: for Business / Entity Trace, State should be the state of formation, the state where the LLC or entity was registered. In most cases this matches the property state, but not always. A Delaware LLC that owns property in Florida should show DE in the State column, not FL. The state of formation is what state corporate filings index by, which is what the trace queries.
Here is what a minimal Business Trace file looks like. Just two columns are needed:
| Business Name | State |
|---|---|
| Sunrise Holdings LLC | NC |
| Bayview Properties Trust | FL |
| Greene Family Partners LP | NY |
| Northstar Realty Inc | MN |
| Cedar Ridge Investments LLC | ID |
// two columns is genuinely enough. Address and city help with deduplication but are never required.
And here is a fuller Business Trace file with optional address fields. These are useful when one LLC owns multiple properties (common for landlord and investor entities holding dozens of homes), so each row in the result file maps cleanly back to a specific property:
| Business Name | State | Address | City |
|---|---|---|---|
| Sunrise Holdings LLC | NC | 4400 Camden Rd | Charlotte |
| Bayview Properties Trust | FL | 210 Ocean Dr | Miami |
| Greene Family Partners LP | NY | 15 Court St | Brooklyn |
| Northstar Realty Inc | MN | 820 W Lake St | Minneapolis |
| Cedar Ridge Investments LLC | ID | 340 Pine St | Boise |
Typical match rates on Business / Entity Trace land in the 50-70% range. Entities registered in states with strong public corporate filings (Florida, Texas, North Carolina, Wyoming) tend to match higher than entities in states with restrictive disclosure (Delaware, Nevada, New Mexico) where the registered agent may be the only public contact.
What you get back: the result file
The result file is your original file with sixteen contact columns appended on the right. Every column you uploaded is preserved untouched, in the original order, so any extra fields you cared about (Loan Amount, Notes, Lead Score, etc.) flow straight into the result and your downstream workflow stays intact.
Here is what the appended skip-trace columns look like:
| Primary Phone | Type | Email-1 | Email-2 | Mobile-1 | Mobile-2 | Landline-1 | Status |
|---|---|---|---|---|---|---|---|
| 2102627815 | Mobile | [email protected] | [email protected] | 2105197834 | 2102944075 | 2106268993 | OK |
| 3614255926 | Mobile | [email protected] | [email protected] | 3617049378 | OK | ||
| 8177143169 | Mobile | 2542913563 | OK |
// the full append: primary_phone, primary_phone_type, Email-1..5, Mobile-1..5, Landline-1..3, Status (16 columns total).
The full set of appended columns:
- primary_phone: the best phone we found for the owner
- primary_phone_type:
MobileorLandline - Email-1, Email-2, Email-3, Email-4, Email-5: up to 5 emails per record, ordered by quality
- Mobile-1, Mobile-2, Mobile-3, Mobile-4, Mobile-5: up to 5 mobile numbers per record
- Landline-1, Landline-2, Landline-3: up to 3 landlines per record
- Status:
OKfor matched records, blank or status code for unmatched
Empty cells mean we did not find that data point. A row with one phone and one email is still a useful match. A row with five phones and five emails is gold; you will see that on the highest-quality records.
How the engine picks the right path
Once you upload, the file passes through the three Universal File Engine layers (Smart Column Mapper, Row Classifier, Smart Safety Net). The output is a routing decision: which rows go to which trace type, what the file would cost, and whether anything looks off.
You see all of that on screen before payment. If the engine wants to route your file to Advanced Trace because no name columns were detected, you get a clear notice with the reason, and a chance to edit the column mapping if you disagree. If your file is mostly Standard but contains 12 LLC rows, the engine flags the split, prices each part separately, and offers a single combined job. There is no surprise routing and no surprise billing.
Things you do not need to fix before uploading
Every item on this list is handled automatically. If your file has any of these "issues", ignore them.
- Header capitalization, spacing, or order:
FIRST_NAME,First Name,firstname, andfnameall map to the same field. - State written as
Californiainstead ofCA: auto-converted to two-letter codes. - Mixed Zip formats (
90065or90065-4215): both fine. - Empty rows, header-only rows, junk rows at the bottom: dropped automatically before billing. You are not charged for blank rows.
- Duplicates: deduplicated before submission. You are not billed for duplicates.
- Encoding: UTF-8, Latin-1, Windows-1252, BOM-prefixed files are all detected and normalised.
- Files with extra columns you do not need: ignored for the trace, kept in the result file for your reference.
- Quoted fields with embedded commas: handled.
- Different delimiters (CSV, TSV, semicolon-separated): all parsed correctly.
- Single name in one column like
"MARIA LOPEZ": split automatically. - Two names in one cell like
"JOHN & MARY SMITH": primary owner traced, co-owner noted.
Common file issues and how we deal with them
Excel files with multiple sheets
The first sheet is read by default. If your data lives on a different tab, save just that tab as a CSV before uploading.
PDFs and scanned documents
Not supported as direct input. Export to CSV or XLSX first. If you only have a PDF and no idea how to convert it, message us in the dashboard chat; we can help.
Truly missing addresses (for trace types that need address)
Standard Homeowner and Advanced both need address rows. Rows with no address at all are dropped from the billable count. You see the dropped count on the pre-payment screen.
Files that are mostly garbage
If a file is so messy that the engine cannot make sense of it (rare, but it happens), you get a clear error explaining what could not be parsed, and no charge.
Real-world examples by industry
The same Universal File Engine handles dramatically different lists from dramatically different customers. Here are five common patterns we see, and the trace type each one routes to.
Pulling tax-delinquent lists, code-violation lists, MLS exports
These files almost always have owner names + property addresses, sometimes mailing addresses. They route to Standard Homeowner Trace. Match rates are usually 85-90% on fresh county data. Common file size: 5,000 to 50,000 rows.
HMDA exports with loan rate, recording date, equity columns
Mortgage refi lists typically come pre-enriched with 50+ columns. The five the engine cares about are still First Name, Last Name, Address, City, State. The other 45+ columns (loan amount, current rate, equity tier, recording date) are passed straight through to the result file so refi campaigns can use them downstream. Common file size: 10,000 to 50,000 rows.
Driving the neighborhood, writing down addresses of houses with old roofs / failing AC units / no panels
These crews almost never know who owns the houses they are looking at. They drive a route, mark addresses, and want to call or mail the owners. Their files have only addresses: no names, no mailing data, often just one column of "Address, City, State" plus crew notes like "shingles curling" or "compressor rusted".
This is exactly what Advanced Trace was built for. The engine finds the current property owner first, then traces phones and emails for that owner. You get a callable list out of a list of addresses you wrote down on a clipboard.
Tax records show "Sunrise Holdings LLC" instead of a person
Going after LLC-owned property is one of the highest-leverage strategies in modern real estate, because LLC-owned homes are disproportionately investment property and the owners are reachable through state filings. These files have an entity name in the owner column.
They route to Business / Entity Trace, which finds registered agents and members tied to each LLC. If the file mixes LLCs with individual owners, the engine splits and prices each part separately.
One CSV with individuals, LLCs, and a couple of address-only rows
Real lists are messy. A typical wholesaler's file has 80% individual owners, 15% LLCs, and 5% rows where the owner field is blank. You do not need to split it three ways yourself. Upload as-is. The engine routes each row to the correct trace internally and shows you the breakdown before payment: "X rows Standard, Y rows Business, Z rows Advanced".
File size and row limits
The upload accepts files up to 25 MB. For typical CSVs that translates to roughly 300,000 to 500,000 rows, depending on how many columns you have. Most of our customers upload between a few hundred rows and 50,000 rows per job.
The largest single job we have processed is just under 35,000 rows in roughly 2 hours. If you have a list bigger than 100,000 rows, message us in chat first; we will set up the right batching so it processes smoothly without hitting the size cap.
A note on pricing per trace type
Standard Homeowner Trace is the cheapest path per record. Advanced Trace and Business / Entity Trace cost more because they pull from additional data sources and run deeper lookup chains. The exact rate depends on your volume tier and is shown on your dashboard before you confirm any job. For full pricing and how we compare to other skip tracing services, see the main page.
Still not sure your file is ready?
Upload it as-is. The Universal File Engine will tell you exactly how it would route the file, what the cost would be, which rows are skip-eligible, and whether anything looks off, before you pay a cent. If something genuinely cannot be processed, our team is one message away in the dashboard chat.
Upload a File