How to Create a Car Comparison CSV Template for Comparing Listings
Build a car comparison CSV template to keep listings side by side, add your own notes, separate missing details from real drawbacks, and narrow down a shortlist.
Contents
- What columns should a car comparison CSV template include?
- Listing fact columns
- Your own information columns
- How do you set up the CSV template?
- How do you import the CSV into a spreadsheet without breaking the data?
- Settings to check during spreadsheet import
- Handling commas, quotes and line breaks
- How do you export the comparison so nothing is lost?
- Which differences between car listings actually matter?
- Asking price versus total cost
- Mileage and model year together
- Trim, powertrain and equipment
- History and documentation
- How do you compare cars against your personal priorities?
- Step 1: Set must-haves
- Step 2: Weight and score the rest
- Example: the same trade-off, two different buyers
- How do you tell missing information from a genuine drawback?
- Why blank cells need a reason
- How do you turn the CSV into a clear shortlist?
- Common mistakes that weaken a car comparison CSV
A car comparison CSV template is a plain-text table with one row per car listing and one column per detail, such as listing URL, make and model, model year, mileage and asking price, plus columns for your own notes, missing-information flags and priority scores. Because CSV (comma-separated values) opens in almost any spreadsheet app, you can collect details from different sites in one place, sort and filter them, and narrow them down to a shortlist without retyping anything when you switch tools.
This guide covers which column headers to include, how to import and export the file without damaging the data, which differences between listings matter, and how to tell a gap in the listing apart from a real drawback.
What columns should a car comparison CSV template include?
A useful car comparison CSV template has two groups of columns. The first records what each listing actually says. The second records your own information and judgements. Keeping the two apart lets you see at a glance whether a value came from the seller or from you.
Listing fact columns
| Column header | What to enter | Format tip |
|---|---|---|
| listing_id | Your own short code for the listing, such as A01 | Treat as text so leading zeros are kept |
| listing_url | The full web address of the advert | Paste the whole URL. Listings get removed, so save the key details too |
| date_saved | The day you recorded the listing | YYYY-MM-DD sorts correctly in every app |
| seller_type | Dealer, private seller or other | Use a fixed set of words so you can filter |
| make | Manufacturer | Spell it the same way in every row |
| model | Model name | Keep the trim or variant in its own column |
| trim | Trim level, engine or variant as stated | Copy the listing wording |
| model_year | Model year as stated in the listing | Four digits, numbers only |
| first_registration | Registration date, if given | YYYY-MM. This can differ from model year |
| mileage | Odometer reading as stated | Digits only, no commas or unit letters |
| mileage_unit | km or mi | Needed when listings come from different countries |
| asking_price | Advertised price | Digits only, no currency symbol |
| currency | Currency code, such as EUR, GBP or USD | Keeps prices from being mixed up |
| fuel_powertrain | Petrol, diesel, hybrid, plug-in hybrid, electric and so on | Use a fixed set of words |
| transmission | Manual or automatic | Use a fixed set of words |
| owners | Number of previous owners, if stated | Numbers only. Leave blank if not stated |
| service_history | Full, partial, none, or not stated | Record only what the listing or seller says |
| inspection_or_warranty | Roadworthiness test expiry, warranty terms, if any | Dates as YYYY-MM-DD |
| stated_issues | Faults or damage the seller mentions | Quote briefly. Do not paraphrase into something stronger or weaker |
| location | Town or region of the car | Useful for viewing and transport costs |
Your own information columns
| Column header | Purpose |
|---|---|
| missing_info | A list of details the listing does not give, such as owners; service_history |
| questions_asked | What you asked the seller and when |
| seller_answers | Answers received, kept separate from the original listing facts |
| est_extra_costs | Your own estimate for travel, transport, known repairs or registration, in the same currency as the price |
| must_haves_met | Yes, no or unknown, checked against your non-negotiable requirements |
| priority_score | Your weighted score (explained below) |
| personal_notes | Impressions, viewing notes, reminders |
| shortlist | Yes, maybe or no |
You do not need every column. Drop the ones that never apply to your search, and add columns for anything you care about that is missing, such as boot space, towing capacity or electric range. Each column should hold one kind of information only.
How do you set up the CSV template?
You set up a car comparison CSV template by writing a single header row, then adding one row per listing using consistent formats. Follow these steps:
- Write the header row. Put the column names on the first line, separated by commas. Use short names without spaces or special characters, such as asking_price rather than Asking Price (£). These names survive import and export more reliably.
- Decide units before entering data. Choose either kilometres or miles, and one currency, or record the unit in its own column. Mixed units in one column make sorting meaningless.
- Keep numbers as plain numbers. Enter mileage and asking price as digits only, without thousands separators, symbols or words like approx. Otherwise the spreadsheet treats them as text and cannot sort or calculate.
- Use fixed values for category columns. Pick a small set of words for columns like seller_type or service_history and stick to them, so filters catch every matching row.
- Add one row per listing. If the same car appears on two sites, keep one row and note the second URL in personal_notes, so it is not compared against itself.
- Save the file as CSV in UTF-8 encoding. UTF-8 keeps accented letters and currency symbols in notes readable in other apps.
A header row and one example row with placeholders look like this in a text editor:
listing_id,listing_url,date_saved,make,model,trim,model_year,mileage,mileage_unit,asking_price,currency,service_history,missing_info,personal_notes,shortlist A01,[paste listing URL],[YYYY-MM-DD],[make],[model],[trim],[year],[digits],km,[digits],EUR,not stated,owners; service_history,"Seller says recent tyres, ask for receipt",maybe
The personal note is wrapped in double quotes because it contains a comma. Without the quotes, a spreadsheet would split that note across two columns.
How do you import the CSV into a spreadsheet without breaking the data?
The safest way to import a car comparison CSV is through the spreadsheet's import or open-file dialog, where you can choose the delimiter, the encoding and the column types, rather than double-clicking the file and accepting automatic guesses.
Settings to check during spreadsheet import
- Delimiter. Choose comma if your file uses commas. In regions where the comma is the decimal separator, some spreadsheet apps expect semicolons instead. If every row lands in a single column, the delimiter setting is the likely cause.
- Encoding. Select UTF-8 so that accented names and symbols display correctly.
- Text columns. Set listing_id and any reference numbers to text so leading zeros and long numbers are not altered.
- Date columns. ISO dates (YYYY-MM-DD) are least likely to be swapped between day-first and month-first formats.
- Number columns. After import, check that mileage and asking_price are right-aligned or otherwise recognised as numbers. Try sorting one column to confirm.
Handling commas, quotes and line breaks
In a CSV file, any field containing a comma, a double quote or a line break must be wrapped in double quotes, and a double quote inside such a field is written twice. Spreadsheet apps do this automatically when they save CSV. You only need to think about it when editing the file by hand or pasting long notes.
How do you export the comparison so nothing is lost?
CSV export saves only the cell values of the current sheet. Formulas, colours, comments, filters and extra sheets are not kept. Your scores will appear as fixed numbers, and any highlighting is lost.
- Keep a working copy in your spreadsheet app's own format. This preserves formulas, weights and formatting.
- Export to CSV for sharing, backup or moving between tools. Anyone can open it, whatever software they use.
- Put the date in the file name, for example car-comparison-2026-11-15.csv, so you can tell versions apart.
- Re-open the exported file once to check that numbers, dates and notes came through intact before deleting older copies.
- Keep priority weights in a separate small table. Your scoring then stays clear even if the formulas are gone after export.
Which differences between car listings actually matter?
The differences that matter most are the ones that change what the car will cost you over time or whether it fits your needs. Small cosmetic or wording differences matter less. A side-by-side CSV makes these differences visible, but a few columns need care to interpret.
Asking price versus total cost
The asking price is only the starting figure. Two cars with similar asking prices can differ once you add your estimated extra costs, such as travel to collect the car, work the seller has said is due, or an expiring inspection. A column like est_extra_costs, added to asking_price, gives a fairer comparison. Remember that it holds your estimates, not facts from the listing.
Mileage and model year together
Mileage on its own says little without the car's age. Dividing mileage by the car's age in years gives a rough distance-per-year figure that you can compare across listings. Treat it as an indicator only. Some parts wear with distance, while others, such as tyres and rubber components, can age even when a car is driven little. Also check whether the listing gives a model year, a registration date, or both, because these are not always the same.
Trim, powertrain and equipment
The same make and model can come in variants with different engines, gearboxes and equipment. Compare trim against trim, and note the features you actually need rather than the length of the equipment list.
History and documentation
Service history, number of owners and stated issues often explain price differences. Documented history does not guarantee condition, but it gives you something to check. An unexplained low price is a reason to ask questions, not a conclusion in either direction.
How do you compare cars against your personal priorities?
You compare cars against personal priorities in two steps. First, rule out any listing that fails a must-have. Then score the remaining listings on the things you care about, weighted by how much each one matters to you. No single car is best for everyone. The same two listings can rank differently for two different buyers.
Step 1: Set must-haves
Must-haves are pass-or-fail requirements, such as a maximum total budget, automatic transmission, a minimum number of seats or a specific powertrain. Record yes, no or unknown in a must_haves_met column. A no removes the listing. An unknown keeps it in play until you find out.
Step 2: Weight and score the rest
- List three to six priorities, for example running costs, space, comfort, documentation and distance to the seller.
- Give each priority a weight, such as 1 (nice to have) to 3 (very important).
- Rate each listing on each priority, such as 1 to 5, based only on information you have.
- Multiply each rating by its weight and add them up to get priority_score. A spreadsheet SUMPRODUCT formula does this in one cell.
- Sort by priority_score, but read the notes before trusting the order. The score summarises your judgement. It does not replace it.
Example: the same trade-off, two different buyers
Imagine Listing A has a lower asking price but does not state its service history. Listing B costs more and says it has full documented service history. A buyer with spare budget who places a high weight on documentation may score Listing B higher. A buyer working to a tight budget, who plans to arrange an independent inspection anyway, may score Listing A higher, provided the seller can answer the history question. Neither choice is wrong. The weights simply reflect different priorities.
A second common trade-off is a newer car with higher mileage against an older car with lower mileage. Which one suits you depends on how you weigh age-related wear, distance-related wear, equipment and price. The CSV puts the numbers side by side, and your weights decide the balance.
How do you tell missing information from a genuine drawback?
Missing information is a detail the listing does not mention. A genuine drawback is a detail that has been stated or confirmed and that counts against the car for your needs. Treating a gap as a flaw can make you dismiss good options. Treating it as fine can hide real problems. Your CSV should record the difference explicitly.
| Situation | What it means | How to record it |
|---|---|---|
| Detail not mentioned in the listing | Unknown. Not good or bad yet | Leave number cells blank, write not stated in text cells, and add the field to missing_info |
| You asked and are waiting | Still unknown, but in progress | Note the question and date in questions_asked |
| Seller answered | Now known. Judge it on its merits | Record in seller_answers and update the score |
| Seller declined or could not answer | A meaningful signal you can weigh | Note it in seller_answers and decide how much it matters to you |
| Fault or limitation stated in the listing | Genuine drawback, if it affects your needs | Copy it into stated_issues and score accordingly |
Why blank cells need a reason
A blank cell is ambiguous. It could mean not stated, forgotten or not applicable. For number columns such as mileage or owners, leave the cell blank so sorting and formulas still work, and explain the gap in missing_info. For text columns, write not stated rather than leaving them empty. When scoring, give unknowns a neutral rating or skip that priority for the listing, rather than the lowest rating, until you have an answer.
How do you turn the CSV into a clear shortlist?
You build a shortlist from a car comparison CSV by filtering out listings that fail must-haves, closing the biggest information gaps on the remaining ones, and then ranking by your priority score and notes.
- Filter out failures. Hide every row where must_haves_met is no.
- Remove stale listings. Check that each listing URL still works, and mark sold cars so they do not take up attention.
- Close key gaps. For listings that look promising, ask the seller about the most important fields in missing_info.
- Update and re-score. Enter answers, adjust est_extra_costs if needed, and recalculate priority_score.
- Mark the shortlist. Set shortlist to yes for a small number of cars you would actually view. Use maybe for backups.
- Export a dated CSV of the shortlist to take to viewings or share with someone helping you decide.
Common mistakes that weaken a car comparison CSV
Most problems with a car comparison CSV come from inconsistent data entry, not from the format itself.
- Units and symbols inside number cells, such as 85,000 km or €12k, which stop sorting and calculations from working.
- Mixing listing facts with opinions in the same column, so you can no longer tell what the seller said.
- Inconsistent spellings of makes, models or categories, which make filters miss rows.
- Relying on the URL alone, then losing the details when the advert is removed.
- Editing only the CSV and losing formulas and weights on export, instead of keeping a working copy in your spreadsheet's own format.
- Scoring unknowns as negatives, which pushes incomplete but possibly suitable listings off the shortlist too early.
With clear column headers, consistent formats and a separate record of what is unknown, a car comparison CSV template turns scattered listings into a comparison you can sort, share and revisit. The final choice still rests on your own priorities.