Your 'Countries Visited' Count Is Wrong (Here's How to Fix It)

Your 'Countries Visited' Count Is Wrong (Here's How to Fix It)

April 9, 2026

You can get a "countries visited" number in 10 seconds.

You only get a defensible number when someone asks "Does that layover count?" and you don't scramble for an answer.

Why every travel counter shows a different number

Two apps can show different totals for identical travel history. Both can be "right."

  • One counts UN member states only. Another quietly adds territories.
  • One counts a 2-hour layover. Another requires clearing immigration.
  • One treats Hong Kong as a country. Another folds it into China.

That's not a bug. That's what happens when you outsource your rules to someone else's defaults.

Every counter hides its definitions. The UI gives you a number. The UI doesn't tell you what the number means.

What makes a count defensible

A visited-country count is defensible if you can answer three questions without hand-waving:

  1. What counts as "visited"? (your rules)
  2. What counts as a "country"? (your list source)
  3. Where is your record stored? (your data model)

Answer those three and your number becomes bookkeeping, not vibes.

The three decisions that determine your number

Decision 1: What's your definition?

Your definition sets the criteria for "I've visited." This is where layovers, day trips, cruises, and airport-only time either count or don't.

Decision 2: What's your list source?

Your list source defines "countries." UN 193? UN 195? ISO codes? "Territories count"?

Decision 3: What's your data model?

Your data model is how you store your travel log. Trapped inside an app's database? Or portable CSV so you can move it anywhere?

If you want dead-simple and future-proof: CSV as your source of truth.

Copy-paste rule set (stops 90% of debates)

The "Defensible Visit" rules

A place counts as visited if:

  1. You were landside. You exited the airport/port and entered the place.
  2. You crossed the border meaningfully. Immigration/customs when applicable, or a recognized border crossing.
  3. You can label the visit type. Overnight, day trip, transit, cruise stop.

Everything else is just a note.

Layovers: do they count?

A layover counts only if you exit the airport (go landside).

Stayed airside? Log it as transit and set counted = no.

Left the airport for 3 hours? Count it—log as day_trip with notes.

Day trips: do they count?

Yes, if you cross the border and spend time landside—even for a few hours.

Tag it as day_trip so you're not pretending it was a two-week immersion.

Cruises: do they count?

A cruise stop counts only if you disembark.

Want stricter rules? Add: "I only count cruise stops if I leave the port area."

Pick one. Write it down. Stay consistent.

Airport-only visits: do they count?

No. Airside is not a visit. It's a layover.

Repeat visits: do they change your count?

No. Your count is unique places visited. Still log repeat dates for clean history later.

Disputed places: what do you do?

You don't adjudicate geopolitics—you follow your chosen list source consistently.

That's the point of picking a list source: it turns arguments into implementation details.

How to handle territories and "countries within countries"

Decide up front whether you want one number or two.

Option A: Sovereign-states-only

Count only sovereign states using UN member states.

Territories don't add to the number. Simplest count to explain at dinner.

Option B: Two numbers—Countries + Territories

Track two totals: one for countries, one for territories/dependencies.

Avoids the "Does Hong Kong count?" fight. Answer: depends, so you keep two numbers and move on.

What about the UK?

Treat it according to your list source.

Using UN member states? UK is one country for your count. Tracking subdivisions for fun? Keep that as a separate metric.

Which country list should you use?

Pick based on what you're optimizing for.

UN member states (193)

Best for: a clean, defensible number most people recognize. Baseline that causes least confusion.

UN observers (adds 2)

Best for: people who want the common "195" total. The two observer states are Vatican City and Palestine.

ISO 3166-1 codes

Best for: data work and interoperability. Practical for datasets, but includes entries that aren't sovereign states.

Reality check

Every tracker that says "X countries" is smuggling in one of these lists.

Choose yours explicitly. Write it at the top of your spreadsheet.

The dead-simple, exportable format

A defensible tracker is a tiny dataset. You don't need an app. You need a CSV.

Minimum CSV columns

  • place_name
  • list_source_code (e.g., UN193, UN195, ISO3166-1)
  • place_code (optional: ISO alpha-2 like FR, JP)
  • visit_date_start
  • visit_date_end (optional)
  • visit_type (e.g., overnight, day_trip, transit, cruise_stop)
  • counted_yes_no
  • notes
  • evidence (optional: photo link, booking ref)

Enough to recreate your count, explain edge cases, and migrate tools later.

Why CSV beats apps

CSV is readable, tool-agnostic, and easy to back up.

Apps are great for visualization. Terrible as system of record because:

  • Their definitions can change
  • Their country lists can change
  • Exports (if they exist) can be incomplete
  • You're locked into their model

For "dead simple" that holds up in five years: CSV is the ledger.

Sample CSV (copy this)

place_name,list_source_code,place_code,visit_date_start,visit_date_end,visit_type,counted_yes_no,notes,evidence
Japan,UN193,JP,2019-10-05,2019-10-18,overnight,yes,Tokyo + Kyoto,Photo album
Singapore,UN193,SG,2023-03-12,2023-03-12,day_trip,yes,Left airport during 7h layover,Calendar
Iceland,UN193,IS,2022-06-01,2022-06-01,transit,no,Stayed airside at KEF,
Mexico,UN193,MX,2024-01-20,2024-01-20,day_trip,yes,Walked across border for lunch,Photo
Hong Kong,ISO3166-1,HK,2018-04-02,2018-04-06,overnight,yes,Territory tracked separately,Booking

With the two-number approach, compute:

  • "Countries total" = rows where list_source_code = UN193 and counted_yes_no = yes
  • "Territories total" = rows where list_source_code = territory list and counted_yes_no = yes

Fast migration workflow

Make your CSV the truth, then rebuild visuals.

  1. Export what you can from your current tool (even if messy)
  2. Normalize place names into your chosen list source
  3. Add visit types for anything ambiguous
  4. Mark counted_yes_no explicitly

Now use any tool you like on top of the CSV. Goal isn't perfect history—it's a dataset you control.

When to use counter/map tools

Use tools only after your definition, list, and CSV exist.

At that point the tool is just a view: map for motivation, counter for totals, pretty shareable image.

It's not your record.

Requirement: any tool must support import/export in a format you can live with. If it can't export, it's not a tracker. It's a toy.

Quick answers to edge cases

"Does a layover count if I never leave the airport?"
No. Airside = transit, not visited.

"What if I left the airport for 3 hours between flights?"
Yes. Log as day_trip with note.

"Do day trips count?"
Yes, if you crossed the border and spent time landside.

"Do cruises count if I only walked around the port?"
Count only if you disembark. Decide if "port-only" counts, write it down, apply consistently.

"Are territories separate countries?"
Not automatically. Either don't count territories (UN-only) or keep two numbers.

"What about disputed places?"
Don't litigate. Follow your list source.

"UN 193, 195, ISO, or app's list?"
For simple, defensible main number: UN 193. Want territories? Add ISO-based territory list separately.

The dead-simple checklist

  1. Pick your definition. Copy the minimal rule set above.
  2. Pick your list source. Default: UN 193 for main count.
  3. Track in CSV. Your system of record.
  4. Then use counter/map tools. Visualization only.

That's how you get a number that's both simple and defensible.

The broader lesson: don't let defaults make claims for you

This "visited countries" problem is the same problem you hit everywhere: the default system makes silent decisions on your behalf.

Travel counters hide definitions. Phones hide access rules.

If you don't design the filter, you live inside someone else's.

That's the SmartLine thesis in different clothes. SmartLine gives you a US phone number where an AI assistant answers inbound calls, extracts who/why/urgency, and sends you clean summaries—so you decide what gets through.

A defensible country count works the same way:

  • You define what "counts"
  • You keep the record in a format you control
  • You let tools display it, not define it

If you like systems that prevent defaults from hijacking your attention, you'll understand exactly why SmartLine exists.