NCPDP Formulary and Benefit standard

The F&B standard is a batch oriented format. With this format, payers can push their formulary information out to a provider, clearing house, or other consumer. The purpose is to provide periodic updated information to the consumer. There are no interactive use cases for Formulary and Benefit.

The standard presents information at the health plan level. That is, there is no information regarding individual patients. A consumer uses the patient’s health plan ID to access the relevant formulary.

There are two batch messages defined:

  • Formulary and Benefit Load. This is from payer to consumer.
  • Formulary and Benefit Response. This is from consumer back to payer.

The response message only verifies that the load file was received and notes any errors that were found in it. The load file contains transactions representing the payer’s formulary.

A message consists of records (segments) which are terminated by LF. The format can use LF or CR/LF to terminate segments, but only one character can be a terminator, which in this case is LF. The protocol driver is used on the Inbound thread to convert CR/LF to LF, so the parser only gets messages with LF.

Each segment consists of data elements (fields) which are delimited by a vertical bar "|". The standard stipulates that alphanumeric fields cannot contain the vertical bar so there is no requirement for an escape character. There is no mechanism to use other delimiters. Each segment starts with a three-character segment identifier field.

The overall message consists of a batch header segment, several transactions, and a batch trailer segment.

Each transaction consists of a header segment, which identifies the transaction type, zero or more detail segments and a trailer segment.

There can be multiple types of detail segments that are valid inside a transaction.

The data structure that is associated with a transaction is called a list. That is, a Formulary Status List is defined by:

  • Formulary Status Header (FHD)
  • Zero or more Formulary Status Detail segments (FDT)
  • Formulary Status Trailer (FTR)

A transaction can have zero detail segments when the action is D (delete list). Otherwise, some number of detail segments is required. The action is specified by a field in the transaction header.

From the view of the system, the transactions correspond to messages. The batch is split up or constructed in the protocol thread using the EDI batch facility which basically invokes a Tcl procedure.

This format is similar to HL7 but it does not work with the HL7 format. This requires messages to start with MSH and extracts the message type from data in the MSH segment.