NoUnderlyings (FIX tag 711)

NumInGroupFIX 4.4group counter

NoUnderlyings (tag 711) is a NumInGroup field defined in FIX 4.4. It appears in 52 message types, always optionally. Its datatype is NumInGroup, which makes it a repeating-group counter: its value is the number of entries that follow, not a quantity in its own right.

At a glance

Tag
711
Name
NoUnderlyings
Datatype
NumInGroup (int)
Dialects
FIX 4.4
Messages
52

What the specification says

Number of underlying legs that make up the security.

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

A real message using tag 711

ExecutionReport · FIX 4.4
TagFieldWire valueMeaning
8BeginStringFIX.4.4
9BodyLength163
35MsgType8Execution Report
49SenderCompIDBOARTEAM
56TargetCompIDCOUNTERPARTY
34MsgSeqNum2
52SendingTime20240101-12:00:00.000
37OrderIDORD-10042
17ExecIDEXEC-88117
150ExecType0New
39OrdStatus0New
711NoUnderlyings2 entries2repeating group
311UnderlyingSymbolEXAMPLE
311UnderlyingSymbolEXAMPLE
54Side1Buy
151LeavesQty0
14CumQty1000000
6AvgPx1.09215
10CheckSum227
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.4 dictionary and verified at build time: it parses and validates with no issues. Open the decoder to try your own message.

Where tag 711 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
Advertisement7Optionalinside the UndInstrmtGrp component
AllocationInstructionJOptionalinside the UndInstrmtGrp component
AllocationReportASOptionalinside the UndInstrmtGrp component
AssignmentReportAWOptionalinside the UndInstrmtGrp component
CollateralAssignmentAYOptionalinside the UndInstrmtCollGrp component
CollateralInquiryBBOptionalinside the UndInstrmtGrp component
CollateralInquiryAckBGOptionalinside the UndInstrmtGrp component
CollateralReportBAOptionalinside the UndInstrmtGrp component
CollateralRequestAXOptionalinside the UndInstrmtCollGrp component
CollateralResponseAZOptionalinside the UndInstrmtCollGrp component
ConfirmationAKOptionalinside the UndInstrmtGrp component
CrossOrderCancelReplaceRequesttOptionalinside the UndInstrmtGrp component
CrossOrderCancelRequestuOptionalinside the UndInstrmtGrp component
DontKnowTradeQOptionalinside the UndInstrmtGrp component
EmailCOptionalinside the UndInstrmtGrp component
ExecutionReport8Optionalinside the UndInstrmtGrp component
IOI6Optionalinside the UndInstrmtGrp component
ListStrikePricemOptionalinside the UndInstrmtStrkPxGrp component
MarketDataIncrementalRefreshXOptionalinside MDIncGrp › UndInstrmtGrp
MarketDataRequestVOptionalinside InstrmtMDReqGrp › UndInstrmtGrp
MarketDataSnapshotFullRefreshWOptionalinside the UndInstrmtGrp component
MultilegOrderCancelReplaceACOptionalinside the UndInstrmtGrp component
NewOrderCrosssOptionalinside the UndInstrmtGrp component
NewOrderListEOptionalinside ListOrdGrp › UndInstrmtGrp
NewOrderMultilegABOptionalinside the UndInstrmtGrp component
NewOrderSingleDOptionalinside the UndInstrmtGrp component
NewsBOptionalinside the UndInstrmtGrp component
OrderCancelReplaceRequestGOptionalinside the UndInstrmtGrp component
OrderCancelRequestFOptionalinside the UndInstrmtGrp component
OrderStatusRequestHOptionalinside the UndInstrmtGrp component
PositionMaintenanceReportAMOptionalinside the UndInstrmtGrp component
PositionMaintenanceRequestALOptionalinside the UndInstrmtGrp component
PositionReportAPOptionalinside the PosUndInstrmtGrp component
QuoteSOptionalinside the UndInstrmtGrp component
QuoteCancelZOptionalinside QuotCxlEntriesGrp › UndInstrmtGrp
QuoteRequestROptionalinside QuotReqGrp › UndInstrmtGrp
QuoteRequestRejectAGOptionalinside QuotReqRjctGrp › UndInstrmtGrp
QuoteResponseAJOptionalinside the UndInstrmtGrp component
QuoteStatusReportAIOptionalinside the UndInstrmtGrp component
QuoteStatusRequestaOptionalinside the UndInstrmtGrp component
RFQRequestAHOptionalinside RFQReqGrp › UndInstrmtGrp
RequestForPositionsANOptionalinside the UndInstrmtGrp component
RequestForPositionsAckAOOptionalinside the UndInstrmtGrp component
SecurityDefinitiondOptionalinside the UndInstrmtGrp component
SecurityDefinitionRequestcOptionalinside the UndInstrmtGrp component
SecurityListyOptionalinside SecListGrp › UndInstrmtGrp
SecurityListRequestxOptionalinside the UndInstrmtGrp component
SecurityStatusfOptionalinside the UndInstrmtGrp component
SecurityStatusRequesteOptionalinside the UndInstrmtGrp component
TradeCaptureReportAEOptionalinside the UndInstrmtGrp component
TradeCaptureReportRequestADOptionalinside the UndInstrmtGrp component
TradeCaptureReportRequestAckAQOptionalinside the UndInstrmtGrp component

Wire format

The number of entries in the repeating group that follows. The next field on the wire is the group's delimiter tag. @boarteam/fix parses the value as a number and reports parse/invalid-int when it does not lex as one; the raw string is kept either way.

Read tag 711 in TypeScript

decode.tsts
import { createFixEngine } from "@boarteam/fix";import { dictionary } from "@boarteam/fix-dict-fix44";const fix = createFixEngine(dictionary);const { message, issues } = fix.parse(raw);// NoUnderlyings is a group counter, so the entries live on message.groups —// NOT on message.fields. message.fields[711] is undefined.const entries = message.groups[711] ?? [];for (const entry of entries) {  // entry.fields is keyed by tag; entry.groups holds nested groups}

Other NumInGroup 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-fix44