I've made a breakthrough in the case of the confusing codes (with a bit of help).
In the previous post I mentioned the
MINO5X field showing the code
FVML - one of the codes under discussion.
A knowledgeable colleague explained that this field means "movement instruction number." The field tends to be blank for most wagons, but codes seen here on other wagons are
FVMP,
202C,
FMCL and
WGNL.
The 202C code was on a wagon in pool 2023. So these codes match quite closely to the ones under discussion sometimes seen on a train document, which either relate to cripples or pool numbers (along with the movement restriction code at the end, if applicable).
Before this I'd been looking at a dataset
SD COD MTDEST which includes the phrases "movement instruction" and "cripple instruction" which I've highlighted.
The numbers at the end of the line in bold are the code related to the description on each line - they should appear in a single column but this forum is messing up the formatting by removing spaces.
EMPTY WAGON DESTINATION CODES
-----------------------------
WHEN CODE '0' USED. COMPUTER APPLIED DESTINATION FROM:
-------------------------------------------------------- ----
PENDED DESTINATION
0
POOL ASSIGNMENT DESTINATION
1
MOVEMENT INSTRUCTIONS (REFERENCED THROUGH EXCEPTION CONTROL ORDER)
2
EXCEPTION CONTROL ORDER (NOT POINTING TO
MOVEMENT INSTRUCTION)
3
BASIC CONTROL ORDER
4
RETURN TO LAST LOADED ORIGIN LOCATION (P.O. WAGONS AND BR WAGONS ON HIRE)
5
RETURN TO INTERCHANGE LOCATION (CONTINENTAL WAGONS ONLY)
6
WAGONS DESTINED TO CURRENT LOCATION (BLANK DESTINATION IN ECO OR MI)
7
WAGONS DESTINED TO CURRENT LOCATION (BLANK DESTINATION IN BASIC CONTROL ORDER)
8
WAGONS DESTINED TO CURRENT LOCATION (NO VALID DISTRIBUTION ORDERS IN FORCE)
9
WAGONS DESTINED TO CURRENT LOCATION (COMPUTER UNABLE TO APPLY 'HOME' DESTINATION 0R DESTINATION FROM MI FILE
Z
.
WHEN RELEASE CODE OTHER THAN '0' USED
-------------------------------------
RELEASED TO SPECIFIED DESTINATION (RELEASE CODE 1)
Y
TRAIN LOAD RELEASE (RELEASE CODE 2)
X
LOAD TO LOAD RE-CONSIGNMENT (RELEASE CODE 6)
W
RELEASED TO A
MOVEMENT INSTRUCTION (RELEASE CODE 9, USED BY CWA ONLY)
V
RELEASED TO 'HOLD' (RELEASE CODE 3)
U
.
COMPUTER APPLIED DESTINATION FOR CRIPPLE WAGONS
-----------------------------------------------
ALLOCATED TO CI SCHEME THROUGH CI, BUT NOT DESTINED
A
BREL DISTRIBUTION THROUGH THE BI
B
NORMAL CI DISTRIBUTION
C
FOCAL POINT DISTRIBUTION
F
DESTINED TO CURRENT DESTINATION (NO VALID DISTRIBUTION
M
ORDERS IN FORCE)
M
PPM THROUGH THE PCI
P
RESIDUAL TO BREL DISTRIBUTION
R
SURPLUS
S
DESTINED TO A
CRIPPLE INSTRUCTION (RELEASE CODE 9, USED BY CWC DERBY ONLY)
T
I'd had a hunch all along that the codes like CIFVML, along with the pool codes that appear on a train document, reflected the way that destinations of empty wagons in TOPS had been assigned.
The empty wagon destination codes (which record how TOPS has assigned the destination for a wagon) are linked with the "destination source codes" found in
SD COD SOURCE which record the type of action done in TOPS which has generated the new destination (such as releasing a wagon as empty or crippling it).
DESTINATION SOURCE CODES
------------------------
PROCEDURE USED CODE GENERATED
-------------- --------------
REPORT RELEASE AND/OR CRIPPLE ACTIVITY (DE)
A
CHANGE DATA ADDED - YARD (TK) - FROM TOC
B
CHANGE DATA ADDED - YARD (TK) - FROM AFC
C
CHANGE DATA ADDED - YARD (TK) - FROM DMO OR RHQ
D
CHANGE DESTINATION - WAGON DISTRIBUTOR (TK) - FROM CWA
E
INTERCHANGE OR INTERFACE RECEIVED (AM OR W4)
F
INITIAL LOAD (IL)
G
RE-DISTRIBUTION THROUGH YARD TRANSFER (C7)
H
STATUS AND PLACEMENT (DL OR DM)
J
YARD TRANSFER (C7 OR PT)
K
WORK PERFORMED (DB)
L
TRAIN ARRIVAL (BM)
M
Among the info dump for wagon NR 97108 in my previous post, two of the fields were DSTSRC and EMPCDE, with the code
A under DSTSRC and
F under EMPCDE.
These fields are the "destination source" and "empty code" as outlined in the datasets above.
So for NR 97108 (which was crippled J and destined to 89357), that tells us that the destination was sourced from "RELEASE AND/OR CRIPPLE ACTIVITY" and the actual destination applied was through FOCAL POINT DISTRIBUTION. So probably the wagon was crippled in TOPS and TOPS has destined the wagon to the "focal point" for maintenance and repair in that pool.
Going back to the phrase
CRIPPLE INSTRUCTION mentioned earlier, while looking in an old file for something completely unrelated, I found an obscure enquiry for looking at how maintenance is set up for a pool.
Picking pool 8505 (with NR 97108 in it), the input is
BZ
C1 H505
This input isn't listed in the instructions within TOPS for how to format a BZ enquiry, and for some reason requires you to replace the first digit of the pool with a letter (A = 1, B = 2 and son on, with J = 0).
CRIPPLE INSTRUCTION INQUIRY RESPONSE - 57200
H505 START:01 01 END:31 12 FORMAT: F
POOL WAGONS PDCTY MILEAGE JOURNEYS PPM/VIBT EARLY
NO IN POOL DAYS WNDW TARGET WNDW TARGET WNDW RATIO P FLAG
8505 132 183 14 N/A N/A N/A N/A D 0
ASSIGNED ASSIGNED
MNTNCE PT REPAIR PT
89357 FVM 89357 FVM
END
Here the phrase
CRIPPLE INSTRUCTION reappears, and we can see that 89357 is both the assigned maintenance and repair point for that pool. Also note the code
FVM here. Other pools have the code
FMC here, and pools for stored wagons have the code
WGN. Which sound familiar...
Given that a BZ is defined as a "MOVEMENT INSTRUCTION ENQUIRY," it shows that cripple instructions and movement instructions are closely related. Another type of BZ enquiry churns out movement instructions for certain types of wagon within a specified TOPS area (in this case IZA wagons in the West Midlands TOPS area)
BE 35560 IZA
CONTROL ORDER STATUS LISTING FOR STN 35560
IZA WD

SYSTEM WAGONS: FOREIGN WAGONS:66312
(Ignore the fact that WD semicolon S has produced a smiley above!)
IZA wagons are used on the water trains to Daventry. If TOPS is left to auto-assign the destination when the wagons are empty, since the IZAs are "foreign wagons" from the continent it will destine them to 66312 (Washwood Heath Yard) unless overridden by another instruction, such as the wagon pool being assigned to a particular location. Where a train document shows a pool code against certain wagons, it is effectively saying that they have a "movement instruction" created by the pool which has an assigned destination for empty wagons in good order (I think the pool only shows up on empty wagons, although the reason it shows up sometimes and not others is hard to determine).
So bearing in mind that the codes we are discussing on the train documents are related to movement instructions and cripple instructions, it becomes possible to be more specific about the codes.
In a code such as CIFVML, the CI means CRIPPLE INSTRUCTION and the FVM code is the one seen on the BZ enquiry for that cripple instruction which will automatically route the wagon to an assigned location for repair or maintenance. The sixth character of the code on a train document is over-typed by any "movement restrictions" such as H for no hump shunting, but can be seen on a J6 enquiry, where the codes seen related to cripples are CIFVML, CIFVMP, CIFMCL, CIFMCP, CIWGNL, CIWGNP. The FVM / FMC / WGN code is the code for the cripple instruction the pool has. The L on the end relates to the FOR-REP message which you would see next to the wagon on a consist, and can be for any cripple code requiring a repair, not just cripple L. The P on the end relates to FOR-PPM which would appear against a cripple P wagon on a consist due PPM. When this is seen, the P code is also repeated in the empty wagon destination codes listed above - PPM THROUGH THE PCI (with PCI probably meaning PPM cripple instruction, i.e. planned preventative maintenance). If a wagon is in a stored pool the WGN cripple instruction will sometimes destine it to 72990 which is not an actual location - it means the Freight Vehicle Maintenance Control function (FVMC) I mentioned before and indicates the wagon is not supposed to be in regular traffic.
The "empty destination code" H is not listed in the dataset, but can be seen on wagons due VIBT (Vehicle Inspection and Brake Test, usually annual). Unlike wagons due PPM which usually flag themselves with the "FOR-PPM" message on a consist where the "consignee" (customer) would be shown for a loaded wagon, wagons due VIBT don't usually display a message or create a code seen on a train document other than the U or H cripple code itself.
With CI meaning cripple instruction, the actual meaning of both FVM and FMC probably derives from FVMC, with WGN meaning wagon, although the function of FVM, FMC and WGN is more like a code that could function equally well if a number was used instead. The final letter P or L has been discussed above, related to PPM or to cripples in general (including green cards cripple L) - or as discussed previously the last character of a code like CIFMCL gets replaced by a movement restriction code like H for "not to be hump shunted."
That combination of codes in that final place is partly why the codes here were so hard to figure out, since the list of movement restrictions doesn't use codes P or L and codes relating to two different things (cripple instructions and movement restrictions) can appear in the same place on a train document. There's also the basic lack of explanation for most of the more obscure fields used by TOPS, unless you can find a dataset which has matching codes (as per the DSTSRC and EMPCDE mentioned earlier, which are obscure until you realise the values shown against them match the destination source and empty wagon distribution codes). Until we find the FVMC necronomicon and decipher the ancient hieroglyphics in the TOPS pyramids, these mysteries will remain shrouded in obscurity.
The final mystery in this case is the difference, if any, between FVM and FMC in the cripple instructions, which didn't seem to relate to any parameter I could think of. However, once you look at the locations the wagons are being assigned to and list them, a pattern becomes clear. Maintenance and Repair locations with high numbered Stanoxes corresponding to the Western or Southern regions have FVM codes, while the rest have FMC codes. So a wagon destined for repair to Carlisle via a cripple instruction on the pool would show CIFMCL and a wagon destined to Tonbridge (like NR 97108) would show CIFVML. I think this probably boils down to something like two separate desks at FVMC each dealing with certain areas at some point in the past - in any case FVM and FMC are the same thing with the only difference being the geographical area the repair or maintenance location is in.
I'll add another post to this later with an example of how this all fits together. Pretty much everything in this post is stuff I've only figured out in the past few days, so it's been quite useful trying to answer your questions!
As for the tag codes, I've cut and pasted them from the various datasets into notepad which took a while - I'll post them in a thread this week hopefully (might need multiple posts if it exceeds the max number of lines). Although the codes are no longer relevant, the tagging system is of historical interest and some of the locations listed evoke memories of long-gone freight locations, with much of the information not updated for 20+ years and still listing freight locations which were long closed even then...
================================================
Update 26/09
I've attached the list of tags to this post -
https://www.railforums.co.uk/threads/tpb-in-tops-list.272360/post-6955134
For an example of how the FVM / FMC codes work, this is an example of some crippled wagons (Network Rail falcons) on the Doncaster - York trip for overhaul at Holgate:
TRAIN DOCUMENT RESPONSE.
TRAIN DOCUMENT PRODUCED AT 08.16 ON 19/09/24 FOR
6N06C 09.56 DONCASTER TO KLONDKSDG ON (DATE) --------
SQ WGN NUMBER CL TPB LGTH WEIGHT BF SPL HD DESTN R C HAZARD TAG
09 SETOUT 16431 KLONDKSDG
66110 A 21.3 126.0 68
C1 01 NLU 29316 JNA 38.4 152.5 85
CIFMCH 46203 J 001
C1 02 NLU 29111 JNA 55.5 179.0 102 CIFMCH 46203 J 001
C1 03 NLU 29314 JNA 72.5 205.5 119 CIFMCH 46203 J 001
C1 04 NLU 29270 JNA 89.6 232.0 136 CIFMCH 46203 J 001
C1 05 NLU 29199 JNA 106.7 258.5 153 CIFMCH 46203 J 001
258.5 TONNES 107 METRES 153 POT AIR B/F
WARNING-C1-CRIPPLED WAGON.
TRAIN DOCUMENT ACCEPTED SEE WM P6 C2/3,C3/7.
Taking wagon NLU 29316 as an example, this is how it appears on the "detail consist" for the same train:
NLU 29316 E JNA 56 60 1 026.500 17 35246203 735 CIFMCH 23433 J FOR-REP
This is the info for NLU 29316 on a "J6" wagon enquiry
NLU 29316 JNA E 735 DESTN 46203 FOR FOR-REP T-352
CIFMCL P-8530
ORIGINATED AT 23433 1809 NOW 16431 NML ARR 236N06CF19 11 1909
DLV.CNDS:0
DESTN ORDER: A F AT 23430
RES:5 LAST LOAD MRMSPL
CPL J
LAST 6 REPS:TTUTUT PPM DUE:23/08/25 VIBT DUE:23/08/25
The code showing here is
CIFMCL. The
H on the train document comes from a "movement restriction code" - NOT TO BE LOOSE OR HUMP SHUNTED NOR MUST OTHER VEHICLES BE LOOSE SHUNTED AGAINST THIS VEHICLE. Where it says
RES:5 the 5 is the “input code” for this restriction, the output code is
H which appears on the train document, replacing the
L which would be there if the vehicle type had no movement restrictions.
Looking at an "AB FVMC" enquiry for the wagon (which outputs various maintenance info) the
MINO5X (movement instruction number) is
FMCL
The
L corresponds to the wagon being assigned for repair (rather than maintenance) based on its current cripple code. This is also seen on the consist with the remarks
FOR-REP, which could also say
FOR-PPM if there was a
P instead of an
L on the end of the code.
CARINO AARKND LDG STS HLD BOCOD6 POOL PCIIND VIBIND PPMAVF CPL
MINO5X
NLU 29316 JNAC E 0 TTUTUT 8530 F 1 1 J
FMCL
BOCOD2 BOCODO DDCODE LRCODE PPMDTE ICDATE ICLOCN LRDATE LRLOCN LCRDTE
7 PX TO 250823 0240909 23432 0240823 23434 0040213
TRANID DESTN LOCTN ORIGIN STATME CITIME CMSGID CTY CTN CSTNBR
236N06CF19 46203 16431 23433 2409191144 242681118 CY F N 72990
YROBLD VIBTDT VIBTLO VBO PMO MLSLPP MLSLVT NJRNPP NJRNVT NOPMVI VINTVL
04 250823 23434 0000115 0000115 00006 00006 000 12
TRUCKX ONOFFX MLSLGR NJRNGR
3 1 0228937 04499
END
FMCL is a cripple instruction, which is basically a movement instruction for a crippled wagon.
The "
DESTN ORDER: A F" shown on the J6 refers to the destination source code and the empty wagon destination code, which indicate how the wagon acquired it's current destination in TOPS.
Firstly the destination source code:
REPORT RELEASE AND/OR CRIPPLE ACTIVITY (DE)
A
The wagon acquired the destination automatically after the cripple code "J" was applied while it was at Doncaster (for movement to York).
As for the empty wagon destination code:
COMPUTER APPLIED DESTINATION FOR CRIPPLE WAGONS
FOCAL POINT DISTRIBUTION
F
The computer applied destination for "crippled wagons" is the cripple instruction the wagon is following, based on the pool.
Doing a BZ (movement instruction enquiry) for pool 8530 gives some interesting information:
CRIPPLE INSTRUCTION INQUIRY RESPONSE - 57200
H530 START:01 01 END:31 12 FORMAT: G
POOL WAGONS PDCTY MILEAGE JOURNEYS PPM/VIBT EARLY
NO IN POOL DAYS WNDW TARGET WNDW TARGET WNDW RATIO P FLAG
8530 461 365 28 N/A N/A N/A N/A D 0
DIV ALT MAINTENANCE REPAIR
CDE DIV POINT POINT
A A 257 FMC 23434 257 FMC 23434
B B 353 FMC 46203 353 FMC 46203
C C 353 FMC 46203 353 FMC 46203
E E 353 FMC 46203 353 FMC 46203
F F 257 FMC 23434 257 FMC 23434
G G 257 FMC 23434 257 FMC 23434
H H 598 FMC 42178 598 FMC 42178
I I 598 FMC 42178 598 FMC 42178
J J 598 FMC 42178 598 FMC 42178
K K 660 FMC 65704 660 FMC 65704
L L 660 FMC 65704 660 FMC 65704
M M 353 FMC 46203 353 FMC 46203
N N 660 FMC 65704 660 FMC 65704
O O 018 FMC 04723 018 FMC 04723
P P 858 FVM 88724 858 FVM 88724
Q Q 858 FVM 88724 858 FVM 88724
R R 858 FVM 88724 858 FVM 88724
S S 779 FVM 82096 779 FVM 82096
T T 779 FVM 82096 779 FVM 82096
U U 735 FVM 76464 735 FVM 76464
V V 502 FMC 09151 502 FMC 09151
W W 502 FMC 09151 502 FMC 09151
X X 502 FMC 09151 502 FMC 09151
Y Y 257 FMC 23434 257 FMC 23434
The assigned maintenance and repair points are shown, which vary depending on the division code (DIVCDE) shown on the left. These are based on old British Rail divisions.
The J cripple code on NLU 29316 was applied when the wagon was at 23433 DONCASTER WOOD YARD
Looking at the AB STNNME1 enquiry for this location, this division is listed as
B.
STANOX STANME CSTNME ZONEXX
DIVCDE TYPSTN RSPSTN ASOCDU CFPRDU STINDX
23433 DONWOODYD DBC I
B 9 23430 23433 010 00002
There is a dataset SD COD DIVCDE which gives a list of British Rail divisions.
B is listed as KINGS CROSS (other divisions listed include Euston, Manchester, Nottingham and so on).
In the cripple instruction, division
B gives an assigned maintenance and repair point of 46203 (Whitemoor), which is presumably the "focal point distribution" referred to earlier.
This explains why the wagon was automatically destined to 46203 when the cripple code "J" was applied (it would have made sense to manually re-destine the wagon to York at that point).
Note that in the list of divisions, P / Q / R / S / T / U give
FVM codes rather than
FMC codes. These divisions are South Eastern, South Western, South Central, Reading, Bristol, Cardiff and the assigned repair and maintenance points for these divisions are in the same geographical areas (88724 Hoo Junction, 82096 Westbury, 76464 Newport AD Junction).
========
For wagons with a
WGN code (
CIWGNL or
CIWGNP) the
WGN generates a
STORED message against the wagon in the same place where
FOR-REP or
FOR-PPM can appear on a consist or J6.
The cripple instructions for some Stored pools give assigned maintenance and repair points of
72990 WGN.
72990 is the Stanox for FREIGHT VEHICLE MAINTENANCE (FVMC) which is not a real location and reflects the status of the wagon being in storage.
I think the
WGN means "Wagon" but more specifically it could refer to "Central Wagon Control" or some other wagon management function that was responsible for deciding when wagons were stored - for example one of the empty wagon destination codes is noted as USED BY CWC DERBY ONLY, meaning the Central Wagon Control of British Rail.
The
FMC and
FVM codes are perhaps department codes of BR; within FVMC or an equivalent function. The tagging instructions I posted in the other thread are signed off by BRITISH RAILWAYS HEADQUARTERS, PADDINGTON followed by the code
FMS, which makes me wonder if various different departments of BR had three-letter codes at one time.