Nederlandse Spoorwegen (NS)

Nederlandse Spoorwegen (NS) is the Dutch state railway. Its multiple units carry concept codes like VIRM or ICM instead of class numbers – a real point of adjustment.

Also known as: NS · Nederlandse Spoorwegen

NetherlandsNetherlandsLong-distance services8 min read

NL-

country code on the data panel

Materieel

Dutch word for rolling stock – built into many of the codes

State railway

role in the Dutch railway system

Key takeaways

  • Nederlandse Spoorwegen (NS) is the Dutch state railway for passenger transport.
  • Dutch multiple units carry concept codes such as SGM, SLT, VIRM, ICM or DDZ – not consecutive class numbers.
  • The codes describe the vehicle's purpose: Materieel stands for rolling stock, preceded by the concept idea.
  • Coming from Germany, you have to rethink: it's not the number that names the type, it's the code.
  • The twelve-digit vehicle number still matters – it identifies the individual unit.
Contents
  1. 1.What is Nederlandse Spoorwegen (NS)?
  2. 2.Concept codes instead of class numbers
  3. 3.Nicknames are part of it
  4. 4.How to identify a Dutch type
  5. 5.Number and code work together
  6. 6.Sightings in Dutch passenger traffic
  7. 7.Common mix-ups
  8. 8.Verdict

Fact file

RoleDutch state railway in passenger transport
What the name means"Nederlandse Spoorwegen" literally means Dutch Railways
Business areaPassenger services in the Netherlands
Vehicle designationConcept codes such as SGM, SLT, VIRM, ICM or DDZ instead of consecutive class numbers
Country of registrationNetherlands, country code NL on the data panel

How to recognise this operator

Is this really Nederlandse Spoorwegen (NS)?

Tick off everything that applies to the train you are looking at right now.

  • Passenger trains, mostly multiple units with a driving cab at each end
  • Data panel with the country code NL- and a twelve-digit number block
  • Vehicles are named with concept codes, not class numbers
  • Single- and double-deck types run side by side in everyday service
  • Units are coupled and split – train length changes throughout the day
  • Nicknames such as Koploper or Hondekop are common additional designations

Updated: August 2026 – “What class was that?” is the wrong question in the Netherlands. There, trains are called VIRM, ICM, SLT or SGM – codes that don’t point to a number sequence but to a vehicle concept. Nederlandse Spoorwegen (NS), the Dutch state railway, is the best place to explain this system properly, once and for all.

Noted the code? Don't forget the number.

With Traintrack you keep type code and vehicle number together – cleanly separated, in one entry.

Download Traintrack on the App Store4.8(23 ratings) Get Traintrack on Google Play4.4(35 ratings)

What is Nederlandse Spoorwegen (NS)?

Nederlandse Spoorwegen is the Dutch state railway for passenger transport. The name literally translates to “Dutch Railways” – spoor means track or rail, spoorwegen accordingly means railways. Like every railway undertaking, NS runs trains, while the network belongs to a railway infrastructure manager.

For spotters, NS is the natural entry point into the country for a simple reason: understand this railway’s vehicle designations, and you understand the Dutch naming system as a whole. And it works fundamentally differently from the German one.

The point of adjustment in one sentence

In Germany, a number names the type – say the Class 189 or Class 294. In the Netherlands, a code names the concept – VIRM, ICM, SLT. Both systems identify types, but they do it from completely different directions.

Concept codes instead of class numbers

The key sits in the word Materieel – Dutch for rolling stock. It appears in many designations and marks the vehicle term. Before it comes the actual statement: what the vehicle is meant for, how it’s built, or which service it’s intended for.

Code What it stands for What it tells you at a glance
SGM Stadsgewestelijk Materieel vehicle for city-regional services
SLT Sprinter Lighttrain local service concept named after Sprinter
VIRM Verlengd InterRegio Materieel extended version of an Interregio concept
ICM InterCity Materieel vehicle for InterCity services
DDZ Double-deck type two-storey vehicle
SNG Sprinter Nieuwe Generatie newer generation of the Sprinter concept
ICNG Intercity Nieuwe Generatie newer generation of the Intercity concept

Two observations are worth making. First: the codes are meaningful. Once you know that nieuwe generatie means “new generation”, you place SNG and ICNG instantly, without ever having seen a data sheet. Second: they can’t be sorted. A class number can be put in order; a code can’t. Coming from the German system you lose the familiar sense of order – and gain meaning instead.

Nicknames are part of it

Alongside the official codes, the Netherlands has firmly established nicknames. They mostly refer to the front end: the Koploper is named for a distinctive feature of its head, the Hondekop – literally dog’s head – for its characteristic front.

These names aren’t slang; they’re common designations that constantly turn up in forums, books and conversation. For documentation that means: note them down by all means, but keep them in a field of their own – they complement the code, they don’t replace it.

Build up your type codes systematically

Log code, nickname and vehicle number separately – and see which types you're still missing.

Download Traintrack on the App Store4.8(23 ratings) Get Traintrack on Google Play4.4(35 ratings)

How to identify a Dutch type

Count the decks

Single- or double-deck? That halves the possibilities straight away and is easy to see even from a distance.

Count the car bodies

How many bodies make up a unit, and how many units are coupled together? Both belong in the note.

Look at the front end

The shape of the head is the most stable distinguishing feature between families – more stable than any livery.

Assign the code and read the number

First the concept code, then the twelve-digit number from the data panel. How that number is structured is explained in the UIC number guide.

You’ll find actual vehicles in the class database: the double-deck VIRM family, the ICM Koploper, the local-service units SLT and SGMm, plus the double-deck DDZ. How to systematically narrow down unfamiliar vehicles is described in the guide to identifying classes – the method applies regardless of language, only the designation at the end is different.

Number and code work together

A common misconception is that the Netherlands has no vehicle numbers. That’s not true. Every unit carries a Europe-wide standard twelve-digit vehicle number on the data panel, plus usually a shorter running number used day to day.

The difference lies elsewhere: in Germany, the class number simultaneously tells you which type a vehicle is. In the Netherlands, the code takes on that job, and the number only answers the question of which individual unit you’re looking at. Together, both give you a complete sighting:

  • Concept code – the type, say VIRM or ICM.
  • Vehicle number – the specific unit, unique and assigned across Europe.
  • Number of coupled units – because train length changes throughout the day.

This separation has a practical advantage that only becomes clear after a few weeks: type and unit can be evaluated separately. So you can check which types you’re still missing, and independently, which individual units you’ve already seen. In the German system, where the class number answers both questions at once, that blurs more easily. Anyone who logs their Dutch sightings with both fields from the start gets much more out of it later – and doesn’t have to untangle hundreds of entries afterwards.

In practice that also means: choose a station where many types call in quick succession. Utrecht Centraal is the obvious choice for that, because practically every line in the country runs through it. Amsterdam Centraal offers the same, plus international traffic. And if you want to see the limit of the type logic, head to Paris Gare du Nord, where Dutch stock stands among entirely different systems. That connection now runs under the Eurostar brand.

Sightings in Dutch passenger traffic

Is your NS sighting complete?

Tick off what you've noted – from four ticks the entry stays usable long-term.

  • Concept code of the type, where identifiable
  • Full vehicle number with country code
  • Single- or double-deck noted
  • Number of coupled units
  • Station with its official name suffix
  • Date and time

The general path from vehicle to company is described in the guide Who’s actually running it? Identifying the operator. For the cross-border side of passenger traffic there’s a dedicated entry for NS International; in regional traffic, Keolis Nederland and Arriva Nederland are further examples. The country’s heritage side is kept running by operators like the Museumstoomtram Hoorn-Medemblik. On a branch line in the east, the Museum Buurt Spoorweg also operates.

Safety comes first

Tracks, sidings and operational railway land are off limits – even at quiet stations. Observe only from approved platform areas and publicly accessible spaces, keep a clear distance from the platform edge, and don't block walkways. No photo is worth a step beyond that.

Common mix-ups

  • Mistaking a code for a number – SGM or SLT are abbreviations of concept names, not number sequences.
  • Noting a nickname instead of the type – Koploper and Hondekop are additional designations, not a substitute for the code.
  • Equating similar front-end shapes – type families differ in detail; only the number sorts it out reliably.
  • Counting coupled units as one train – note every number, or half the sighting is missing.
  • Assuming the state railway is the sole operator – several companies run on Dutch tracks.

Verdict

Anyone wanting to identify trains in the Netherlands swaps number logic for meaning logic: Materieel plus concept gives you the code, and the code tells you what the train was built for. Nederlandse Spoorwegen is the best teacher for this – and once you can reliably tell VIRM, ICM and SLT apart, you’ll get by anywhere in the country.

In short

The concept code names the type, the vehicle number the specific unit. Note both, and you have a sighting that stays understandable in any language.

Your Dutch types at a glance

Codes, numbers, places and times in one app – and you instantly see which units you're still missing.

Download Traintrack on the App Store4.8(23 ratings) Get Traintrack on Google Play4.4(35 ratings)

Summary

  • NS is the state railway of the Netherlands and shapes the look of passenger services there.
  • Instead of class numbers, the Netherlands names its multiple units with codes that describe the vehicle concept.
  • Anyone who can read these codes instantly knows what kind of train they're looking at.
  • The vehicle number on the data panel still handles the unique identification of the individual unit.

Frequently asked questions

What is Nederlandse Spoorwegen (NS)?

NS is the Dutch state railway for passenger transport. The name literally means "Dutch Railways". As a railway undertaking, NS runs trains; the network belongs to an infrastructure manager. Exactly which services are run changes over time – its role as the state railway is the stable part.

Why don't Dutch trains have class numbers?

Because the Netherlands names its multiple units through concept codes rather than consecutive numbers. A code such as VIRM or ICM describes what the vehicle was built for. For passengers and staff that's more intuitive than a number – for German spotters it's the biggest point of adjustment in the country.

What does "Materieel" mean in these codes?

Materieel is the Dutch word for rolling stock. It appears in many designations and marks the vehicle term itself. Before it comes the concept idea – for example the intended use or a description of the build. Together, both parts form the code, which is then used like a proper name.

What do SGM, SLT, VIRM, ICM and DDZ stand for?

They're abbreviations of Dutch concept names: SGM for Stadsgewestelijk Materieel, SLT for Sprinter Lighttrain, VIRM for Verlengd InterRegio Materieel, ICM for InterCity Materieel and DDZ for a double-deck type. Each code therefore describes a service concept, not a position in a number sequence.

What about names like Koploper or Hondekop?

These are common nicknames that refer to a distinctive feature – usually the shape or function of the front end. They stand alongside the official code and turn up constantly in forums, books and conversation. For a sighting it's best to note both: code and nickname.

How do I identify a Dutch type in the field?

Via stable features: number of car bodies, single- or double-deck, shape of the front end, position of doors and roof equipment. From that you assign the vehicle to a concept code. Only the twelve-digit vehicle number on the data panel turns that into the identification of a specific unit.

Are there also numbers for vehicles in the Netherlands?

Yes – every unit carries a Europe-wide standard twelve-digit vehicle number on the data panel, plus often a shorter running number. The difference from Germany isn't in the numbers, but in the type designation: that runs via codes rather than a class figure.

Where's the best place to watch NS trains?

At larger stations where different types stand side by side, and at hubs with frequent traffic. Location matters: stick to approved platform areas and publicly accessible spaces, keep a clear distance from the platform edge, and don't block walkways. Tracks and operational railway land are off limits.

Log a sighting of Nederlandse Spoorwegen (NS)

Vehicle, location and date logged in seconds – and visible to the community.

Download Traintrack on the App Store4.8(23 ratings)Get Traintrack on Google Play4.4(35 ratings)

Vehicles in the rolling stock database

More operators

Who is behind it

Groups, brands, manufacturers and operators – who owns whom and how to recognise them out in the field.

All railway companies →

Where to see Nederlandse Spoorwegen (NS)

Spotting locations where this operator can be seen regularly – with viewpoints, light conditions and coordinates.

All spotting locations in Europe →

Related guides from the blog

TT

Traintrack editorial team

The railway operator database is built from operational observation, community sightings and publicly available sources. Service contracts, fleets and owners change all the time – confirmed details are in the fact file, and anything subject to change is marked as such.

← All Dutch railway operators