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
Fact file
| Role | Dutch state railway in passenger transport |
|---|---|
| What the name means | "Nederlandse Spoorwegen" literally means Dutch Railways |
| Business area | Passenger services in the Netherlands |
| Vehicle designation | Concept codes such as SGM, SLT, VIRM, ICM or DDZ instead of consecutive class numbers |
| Country of registration | Netherlands, country code NL on the data panel |
How to recognise this operator
Is this really Nederlandse Spoorwegen (NS)?
- 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.
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.
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?
- 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.
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.
Vehicles in the rolling stock database
NS VIRM
The VIRM is the double-deck workhorse of Dutch rail traffic. Its abbreviation stands for Verlengd InterRegio Materieel – extended InterRegio stock.
ClassNS ICM (Koploper)
The ICM is the classic intercity multiple unit of the NS. Its nickname Koploper reveals the design principle: a walk-through gangway right through the front.
ClassNS SLT (Sprinter Lighttrain)
The SLT is one of the multiple units that defines Dutch regional services. Its abbreviation stands for Sprinter Lighttrain, and the number gives the count of car sets.
More operators
NS International (NSI)
NS International (NSI) carries cross-border passenger services in its name. Anyone logging sightings in the Netherlands has to read place names and station suffixes correctly.
Local & regionalKeolis Nederland B.V.
Keolis Nederland B.V. is an operator in Dutch regional rail services. Double-deck trains aren't a special case there but everyday sights – and that changes the look of the trains noticeably.
Local & regionalArriva Nederland B.V.
Arriva Nederland B.V. is a railway operator in Dutch regional services. How to recognise its trains and what the NL–DE border area means for your sightings.
Who is behind it
Groups, brands, manufacturers and operators – who owns whom and how to recognise them out in the field.
Eurostar
Since merging with Thalys, Eurostar has been a brand spanning two operating companies. No transport authority commissions these trains – they run because the route pays for itself. That explains almost everything: the choice of routes, the service frequency, and why the fleet is so small and so expensive.
Heritage railwayMuseum Buurt Spoorweg
The Museum Buurt Spoorweg runs between Haaksbergen and Boekelo in the Dutch region of Twente. It's considered the oldest heritage railway in the country – and shows a phenomenon that surprises many: Dutch heritage tracks are mostly worked by German steam locomotives.
Heritage railwayMuseumsbahn S.T.A.R.
The Museumsbahn S.T.A.R. in the province of Groningen differs from most heritage railways: it runs between Stadskanaal and Veendam to a genuine timetable and meets the main network there. That makes it less an excursion attraction and more a preserved branch-line operation.
Heritage railwayMuseumstoomtram Hoorn-Medemblik
The Museumstoomtram between Hoorn and Medemblik isn't a heritage railway in the usual sense, but a preserved steam tramway. You can tell at a glance: the locomotives' running gear is skirted, because these vehicles once ran through streets and villages.
Where to see Nederlandse Spoorwegen (NS)
Spotting locations where this operator can be seen regularly – with viewpoints, light conditions and coordinates.
Amsterdam Centraal
Amsterdam Centraal stands on three artificial islands in the IJ, has one of the best-known station façades in Europe, and channels all of the Netherlands' international traffic. For spotters it's also the country's most difficult major station – because of the crowds.
Junction stationParis Gare du Nord
No station in Europe moves more people. Gare du Nord bundles high-speed traffic to London, Brussels and Amsterdam, dense suburban services and regional traffic towards northern France – and seals off part of it behind border control, an area you can't reach as a spotter.
Junction stationUtrecht Centraal
Utrecht Centraal is the point where the Dutch network comes together. Over twenty platform tracks, a pattern that repeats exactly every thirty minutes, and a concourse that swallows more light than it looks like it would. Once you've understood the rhythm, you can work here extremely efficiently.
Related guides from the blog




