← The blogMigration

"The Dry-Run Preview: See Your Import Before Anything Writes"

Contents

You have a CSV with three years of Harvest entries. Twelve clients. Some projects you renamed halfway through. A few entries with notes that have special characters, because you were typing fast and did not care about CSV escaping in 2024. This file is your billing memory, and you are about to hand it to a tool that has never seen it before.

For about ten seconds after you drop the file in, you do not know if this is going to work.

That ten seconds is the worst part of switching trackers. Not the migration itself. The gap between "I committed to this" and "I know it landed correctly." Most tools close that gap by writing first and letting you sort out the damage later. The dry-run preview exists because I did not want anyone to have that ten seconds with owntime.

#What the preview actually shows

Renting
Data on their servers. Price can change overnight. History is a hostage. Works only online.
Owning
Data on your disk. Price is done at purchase. History is a file you hold. Works offline, forever.

Before anything is written, owntime parses the whole file and shows you a summary. How many rows it found. How many it will import. How many it will skip, and why. A typical result reads something like "1,234 rows, 2 skipped." The skipped rows are usually entries missing a required field, and the preview tells you which ones.

You read the preview. If it looks right, you confirm and the import runs. If it looks wrong, you cancel. Nothing has been written. Your old tool is untouched. You can fix the file and try again, or go back to your old setup and lose nothing but the ten minutes you spent testing.

That is the whole feature. It is not sophisticated. It is just a "look before you commit" step, and it exists because the alternative, write first and ask questions later

Renting
Monthly, forever
Vendor holds data, controls price
Owning
One payment
You hold data, price is done
, is how migrations go wrong.

#The history that made it non-negotiable

The worst case of buying software is better than the best case of renting it.

I want to be honest about why this feature exists, because it is not a nice-to-have I added for polish. It is a scar.

Before owntime, I switched trackers twice as a consultant. The first switch went fine. The second one did not. The tool I was moving to imported my CSV, wrote the entries, and silently dropped about two hundred of them. I did not notice until a client asked about an invoice from three months earlier and the hours were not there.

I spent a weekend reconstructing those entries from memory and from old invoices. It was not catastrophic. But it was the kind of weekend that makes you never want to switch tools again. When I built the import for owntime, the dry-run preview was the first feature I wrote, before the invoice builder, before the timer polish, before anything else. It was the feature I wished the tool I switched to had.

#What the preview does not do

I want to be precise, because "preview" can imply more than this one does.

The preview shows you counts and skip reasons. It does not show you a row-by-row diff of what will change. It does not let you edit individual rows before import. It does not merge with existing entries, because re-importing the same file creates duplicates, and the tool does not silently dedupe.

If you need to clean the file before import, you clean it in a spreadsheet, then drop it in and read the preview again. The preview is a gate, not an editor. It tells you whether the file is ready. It does not make the file ready for you.

#The test

If you are evaluating owntime and the import is the thing that will make or break your decision, here is the test. Do not import your real history first. Take a small export, maybe the last month, and drop it in. Read the preview. Confirm. Check that the entries landed the way you expected.

If the preview was honest and the import matched it, you have your answer for the full migration. If something looked off, you learned that from a month of data, not three years. That is the test, and it costs you five minutes.

Try owntime free for 14 days · Read the honest migration scope · See where your data stays


Sources & further reading

  • owntime migration scope (https://owntime.click/migration), accessed 2026-09-02

Your time tracker can't raise your price if you own it.

Try owntime free for 14 days. No email wall. Or buy once for $99 early bird.

Download free trialSee pricing