// blog
Collect Data From Your Clients Without the Spreadsheet Chase: a Working Example
A client data collection portal lets clients send the spreadsheet they already have instead of filling in your template. It finds the heading row, matches the columns to your fields, repairs what Excel mangled (dropped leading zeros, dates stored as numbers, amounts typed as text), combines rows for the same person across files, and then asks the client only about what’s still missing or looks wrong. Tallowbrook Plan Services is a working example: a TPA collecting the year-end 401(k) census, with the same portal also set up for a health insurance renewal census and a 1099 contractor list.
Ask a client for a spreadsheet and you’ll get one. Just not the one you asked for. The columns are in a different order and called something else, the heading is on row 5 under a company logo, half the dates are numbers like 46113, and somebody’s Social Security number lost its leading zero.
Then the real work starts: email back and forth, phone calls, a second file, a third. For a business that collects the same data from dozens or hundreds of clients a year, that chase is most of the job.
So I built an example of the alternative: Tallowbrook Plan Services, a fictional retirement plan administrator (a TPA) with a year-end census portal.
Why a TPA’s census
Every year, a TPA asks each employer whose 401(k) plan it runs for a census: everyone who worked there during the year, with birth date, hire and termination dates, hours, pay and contributions. The TPA needs it to run the IRS’s annual tests, and the deadlines are tight: a failed test has to be corrected by March 15 for a calendar-year plan, or a 10% excise tax applies.
It’s the hardest version of the “send us your data” problem: personal data, many dates, money that has to add up, and clients whose payroll service decides what their file looks like. If a portal handles this, it handles a broker’s renewal census or an accountant’s 1099 list too.
Send the file as it is
The client drops in what payroll gave them: one file or several, Excel or CSV. The portal:
- Finds the heading row, wherever it is, and matches the columns by the names payroll systems really use (“Social”, “DOH”, “Gross Wages YTD”, “401k EE”). A wrong guess is fixed with a dropdown.
- Repairs what Excel mangled: leading zeros put back on SSNs and ZIP codes, Excel’s date numbers turned into dates, “2/28/58” read as 1958 rather than 2058, “$12,345.67” typed as text turned into a number.
- Leaves out what isn’t a person: subtotal and grand total rows, repeated headings, the “Confidential” footer, and the payroll service’s test employee.
- Combines rows for the same person: an employee on the old and the new payroll service after a mid-year switch, or on both the hourly and salaried tabs, becomes one row with the year’s totals.
Every change is listed, grouped (“217 values repaired: 68 amounts typed as text, 39 Excel date numbers…”), so the client and the TPA can see exactly what was altered.
Then ask only about what’s missing
Instead of sending the whole file back with “please fix”, the portal shows a short list of questions, each with the reason it matters:
- Tove Lindqvist: date of birth is missing. Age decides eligibility and limits.
- Daniel Okafor: paid $198,000 but 0 hours. One click credits 45 hours a week, which many plans use for salaried staff.
- Deniz Yilmaz: hire date 03/02/2026, but last year’s census says 02/12/2024. Rehired? One click keeps the original hire date and records the rehire.
- Grace Sutherland was on last year’s census but isn’t on this one. Add her, or say she left.
It also checks the total: deferrals on the census against the number on payroll’s year-end report. A gap of exactly one person’s contributions usually means one person is missing.
Things only the TPA can decide (who’s a highly compensated employee, who’s over the yearly deferral limit of $24,500 for 2026) are flagged for them, not asked of the client.
The same portal, for other businesses
The fields, the column names and the checks are a template, not code. Switch the template in the example and the same portal collects:
- A health insurance renewal census for a benefits broker: date of birth, home ZIP code, coverage, hours a week.
- A 1099 contractor list for an accountant: who was paid what, their SSN or EIN, and who needs a 1099-NEC.
A payroll bureau onboarding new clients, a school collecting enrollment data or a property manager collecting tenant details have the same problem. Talk to us about yours.
Key takeaways
- Let clients send the file they have; match it to your fields, not the other way around.
- Repair the predictable damage (zeros, dates, amounts) automatically, and show every repair.
- Ask only about what’s really missing, with the reason, and offer one-click answers for the common cases.
- Check totals against a number the client already has.
Try it with the messy sample files →
Collecting data from your clients every year? We’ll build a portal for it, with sign-in, encrypted storage and an export into the system you already use. Because we work with AI-assisted development, it costs far less than you might expect. Let’s talk.
Frequently asked questions
Do clients have to use our template?
No. The portal reads the file they already have, finds the heading row wherever it is, and matches columns by the names payroll and accounting systems really use. The client corrects a match with a dropdown if it guessed wrong.
Is the client's file uploaded?
In the example, no: it's read in the browser and nothing leaves the visitor's computer. In a real portal the clean result goes to you over an encrypted connection, into an account only you and that client can see, with every change logged.
What about clients who send PDFs or call it in?
The portal asks for Excel or CSV and explains how to get one. For clients without a file, there's a grid to type it in, already filled with last year's people.