The National Securities Clearing Corporation (NSCC) supplies a family of record types thatcommunicate detailed position and valuation information for securities cleared through itssystem. The three most common record families are:
Each file follows a fixedwidth ASCII layout, enabling deterministic parsing by downstreamapplications. The tables below summarise the layout of each record type, describe the purposeof each field, and highlight any special processing rules.
The PVF provides a snapshot of the market value of each security held in the NSCCaccount at a specific valuation date. It is typically generated nightly and used forriskbased margin calculations, reporting, and reconciliation.
| Position | Length | Data Type | Field Name | Description |
|---|---|---|---|---|
| 1 | 1 | Char | Record Type | Always V for PVF. |
| 2 | 10 | Alphanum | Account Number | NSCC assigned clearing account. |
| 12 | 6 | Numeric | Valuation Date | YYYYMM format. |
| 18 | 4 | Alphanum | Security Type | Equity, ETF, ADR, etc. |
| 22 | 12 | Alphanum | Security Identifier | CUSIP (or ISIN when applicable). |
| 34 | 15 | Numeric | Quantity | Signed, 5 implied decimal places. |
| 49 | 15 | Numeric | Market Value | Signed, 2 implied decimal places. |
| 64 | 5 | Alphanum | Currency Code | ISO4217 (e.g., USD). |
| 69 | 8 | Numeric | Price | 8digit, 4 implied decimals. |
| 77 | 2 | Alphanum | Price Flag | A if adjusted, blank otherwise. |
| 79 | 20 | Alphanum | Optional Trailer | Reserved for future use. |
Key processing points
Quantity Price (after handling the implied decimal places).PNF files are generated after each trade settlement or any activity that changes theposition of a security. They are used for realtime position monitoring and to triggermargin calls when necessary.
| Pos | Len | Type | Name | Description |
|---|---|---|---|---|
| 1 | 1 | Char | Record Type | Always N. |
| 2 | 10 | Alphanum | Account Number | Same as PVF. |
| 12 | 6 | Numeric | Effective Date | YYYYMM. |
| 18 | 4 | Alphanum | Security Type | Same coding as PVF. |
| 22 | 12 | Alphanum | Security Identifier | CUSIP/ISIN. |
| 34 | 15 | Numeric | Delta Quantity | Signed, 5 implied decimals. |
| 49 | 12 | Numeric | Transaction Price | 8 digits + 4 decimal places. |
| 61 | 2 | Alphanum | Transaction Code | B = Buy, S = Sell, D = Dividend, etc. |
| 63 | 8 | Alphanum | Trade Identifier | NSCC assigned unique ID. |
| 71 | 1 | Char | Settlement Flag | Y = settled, N = pending. |
| 72 | 20 | Alphanum | Reserved | Blank, future expansion. |
Processing notes
PFF records contain the position and valuation detail for futures contracts cleared by NSCC.Although similar in concept to PVF, futures have additional fields for contract month,expiration, and margin requirements.
| Pos | Len | Type | Name | Description |
|---|---|---|---|---|
| 1 | 1 | Char | Record Type | Always F. |
| 2 | 10 | Alphanum | Account Number | Clearing account. |
| 12 | 6 | Numeric | Valuation Date | YYYYMM. |
| 18 | 3 | Alphanum | Future Symbol | Exchange symbol (e.g., ES). |
| 21 | 1 | Alphanum | Month Code | Futures month (F=Jan, G=Feb Z=Dec). |
| 22 | 2 | Numeric | Year | Last two digits of contract year. |
| 24 | 15 | Numeric | Quantity | Signed, 0 implied decimals (contracts). |
| 39 | 10 | Numeric | Last Trade Price | 4 implied decimal places. |
| 49 | 10 | Numeric | Settlement Price | Same scaling as Last Trade Price. |
| 59 | 12 | Numeric | Initial Margin | 2 implied decimals, currency in USD. |
| 71 | 12 | Numeric | Maintenance Margin | 2 implied decimals. |
| 83 | 1 | Char | Position Flag | L = Long, S = Short. |
| 84 | 20 | Alphanum | Reserved | Future use. |
Special considerations
Although each file type has its own layout, the following validation steps are typicallyapplied regardless of record family:
Implementations often use a twopass approach: first a syntax pass to reject malformed records,followed by a businesslogic pass that checks relationships between records and external reference data.
function parsePVF(line): assert line.length == 100 rec = {} rec.type = line[0] rec.account = line[1:11].trim() rec.valDate = line[11:17] rec.secType = line[17:21].trim() rec.cusip = line[21:33].trim() rec.quantity = toDecimal(line[33:48], 5) rec.marketValue = toDecimal(line[48:63], 2) rec.currency = line[63:68].trim() rec.price = toDecimal(line[68:76], 4) rec.priceFlag = line[76:78].trim() return recThe same pattern can be repeated for PNF and PFF, changing field offsets and scaling factors as defined in the tables above.
The NSCC record families PVF, PNF, and PFF provide a comprehensive, fixedwidth view ofpositions, daily valuations, and futures exposure for clearing participants. Understandingthe exact column offsets, data types, and implied decimal conventions is essential forbuilding reliable ingestion pipelines. By applying the validation rules and crossfileconsistency checks outlined above, firms can confidently use these files for margincalculations, regulatory reporting, and realtime risk management.
