Benchmark (FIX tag 219)

charFIX 4.2

Benchmark (tag 219) is a char field defined in FIX 4.2. It appears in 1 message type, always optionally. It is an enumerated field with 9 defined values.

At a glance

Tag
219
Name
Benchmark
Datatype
char
Dialects
FIX 4.2
Messages
1
Valid values
9

What the specification says

For Fixed Income. Identifies the benchmark (e.g. used in conjunction with the SpreadToBenchmark field).

Descriptions are quoted from the FIX Orchestra sources under the Apache 2.0 licence.

A real message using tag 219

IOI · FIX 4.2
TagFieldWire valueMeaning
8BeginStringFIX.4.2
9BodyLength106
35MsgType6Indication of Interest
49SenderCompIDBOARTEAM
56TargetCompIDCOUNTERPARTY
34MsgSeqNum2
52SendingTime20240101-12:00:00.000
23IOIidEXAMPLE
28IOITransTypeCCancel
55SymbolEUR/USD
54Side1Buy
27IOISharesLLarge
219Benchmark1CURVE
10CheckSum255
Edit and decode it yourself

Shown with | separators for readability. On the wire FIX uses SOH (0x01), an invisible control byte — and because BodyLength and CheckSum are computed over the actual bytes, the two forms have different checksums. Both are valid and both decode here.

Open in the full decoder →

Generated from the FIX 4.2 dictionary and verified at build time: it parses and validates with no issues. Open the decoder to try your own message.

Valid values

A value outside this list is not a parse error — the message still decodes — but validate() reports it as validate/value-not-in-enum.

ValueMeaningSymbolic name
1CURVECURVE
25-YRFiveYR
3OLD-5OLD5
410-YRTenYR
5OLD-10OLD10
630-YRThirtyYR
7OLD-30OLD30
83-MO-LIBORThreeMOLIBOR
96-MO-LIBORSixMOLIBOR

Where tag 219 appears

Requiredness is a property of the message, not of the field: the same tag can be optional in one message and conditionally required in another.

MessageMsgTypeRequirednessWhere in the message
IOI6Optionaldirectly on the message body

Wire format

A single character. Most char fields are enumerated, so the value is one of a fixed set rather than arbitrary text. @boarteam/fix keeps the value as a string and, for enumerated fields, reports validate/value-not-in-enum when it is not a defined value.

Read tag 219 in TypeScript

decode.tsts
import { createFixEngine } from "@boarteam/fix";import { dictionary } from "@boarteam/fix-dict-fix42";const fix = createFixEngine(dictionary);const { message, issues } = fix.parse(raw);const benchmark = message.fields[219]?.raw;// e.g. "1" — CURVE// The dictionary also carries the labels:const label = fix.dictionary  .fieldByTag(219)  ?.enumValues?.find((e) => e.value === benchmark)  ?.description;

Other char fields

Decode this in your own code

The same engine that produced the decoded example above is an Apache-2.0 npm package with zero runtime dependencies. It runs in Node and in the browser, and parse() returns problems as data instead of throwing.

npm i @boarteam/fix @boarteam/fix-dict-fix42