← Back to Help Center

Importing Your Existing Time & Billing Data

I've got years of time entries in a spreadsheet — do I really have to retype all of it?

Upload What You Already Have

Import Data in the sidebar takes a CSV, XLSX, or XLS file exported from whatever you're using now — a spreadsheet, another billing tool, anything with rows of dates, cases, hours, and rates. You don't need to reformat it first; the import wizard is built to handle messy, inconsistent exports as they actually come out of other systems.

If you upload an Excel workbook with more than one sheet, the wizard asks which one has your billing data before it analyzes anything — or, if each sheet is actually a different matter, you can import all of them at once and it'll use each sheet's tab name as the case name.

Sheet picker showing two sheet name buttons and an option to import all sheets using each sheet name as the case

It Maps Your Columns For You

After upload, you get a side-by-side comparison — your original rows on the left, exactly how ExpertPractice read them on the right — plus a match-confidence summary so you can tell at a glance whether anything needs a second look.

Side-by-side comparison of the original spreadsheet rows and how ExpertPractice read them, with a match confidence bar

Every column mapping is editable below the comparison — if Notes should have mapped to something other than Description, or a column got missed entirely, just pick the right one from the dropdown and the comparison above updates immediately:

Column mappings card showing each original column mapped to a field like Case Name, Date, or Description, with a confidence label per row

The wizard detects these columns automatically:

  • Case Name — required
  • Date — required
  • Hours — required
  • Activity Type — optional (abbreviated text like "Depo Prep" gets matched automatically)
  • Rate — optional (hourly rate)
  • Description — optional
  • Case Number — optional
  • Court — optional, case creation only
  • Engagement Type — optional, case creation only
  • Attorney Name — optional, case creation only
  • Attorney Firm — optional, case creation only

The first seven columns map to each time entry. The last four—court, engagement type, attorney name, and attorney firm—become part of the new case record itself and are only used when creating a new case, not individual entries.

If any rows are missing an hourly rate, a Rates card appears on this same step so you can fill them in for the whole case/activity group at once, instead of editing rows one at a time after the import.

When It's Not Sure, It Asks

Some spreadsheet values are genuinely ambiguous — a date like "sometime in June" that can't be parsed, or a column just labeled $ that could be an hourly rate or a total amount. Rather than guessing silently, the wizard collects these into a short "A few quick questions" screen before the comparison, so you resolve them once instead of hunting for wrong values after the fact.

A few quick questions screen asking for the correct date for an unparseable row and whether a $ column is the hourly rate or the total amount

This screen only appears when something is genuinely unclear — clean, well-labeled spreadsheets go straight to the comparison step.

Abbreviated Activity Types, Handled

Real billing exports rarely spell things out — "Depo Prep," "File Rev," whatever shorthand you've used for years. The wizard maps these to ExpertPractice's actual activity types on its own, and shows you exactly what it matched each one to, so you're confirming rather than re-entering:

Activity type mappings showing abbreviated values like 'Depo Prep' mapped to Deposition Preparation and 'Client Call' to Conference/Meeting

Review, Then Confirm — Nothing Is Written Until You Say So Twice

The Review step shows the exact final data — every row, fully mapped — with two options: Import into ExpertPractice, or Download cleaned CSV if you'd rather double-check the cleaned-up file yourself first before committing to anything.

The Review step showing the final mapped rows and an Import into ExpertPractice button

Clicking Import into ExpertPractice doesn't import immediately — it opens a Confirm import step with a summary (entries, cases, hours, total billable) and, for each case name in your file, a check against your existing cases. A close match shows "Did you mean ‘X’?” with a Use this button so you don't end up with a duplicate case from a slightly different spelling; anything genuinely new is flagged "Will create new case."

Confirm import step showing entry/case/hour/billable totals, a case name matched to an existing case with a Use this button, and a second case that will be created new

From here you can still go Back to Review or click Edit mapping to jump straight back to the comparison step — nothing is imported until you explicitly click Import N entries into M cases on this final screen.

Was this article helpful?