Your banks' position files, turned into valuation-ready deal terms
Every bank sends its OTC positions in its own layout, with its own codes and conventions. Position Mapper reads them as they arrive, on your own machine, and writes one standard set of complete deal terms: ready for GIAnalyzer, the Gamma Impact API or your own systems.
We know of no other software that turns the OTC position files banks send their clients, in each bank's own layout, into complete, valuation-ready deal terms.
Your files stay under NDA. We return the mapped output, for you to compare with what you hold now.
Valuation needs the full terms of every deal
Valuing an OTC derivative takes far more than an amount and an instrument name. Depending on the product:
- notional amounts, currencies and direction
- trade, effective and maturity dates
- payment and reset schedules
- fixed rates, spreads and reference indices
- day-count and business-day conventions
- strikes, barriers, fixings and other product terms
Those terms are rarely all in one place. Some are booked, some are kept in spreadsheets, and some exist only in confirmations and emails.
The terms are often already in your banks' files
Your banks already send position files, often through a secure file-transfer vault. Those files can carry what a valuation needs: legs, payment conventions, rates, spreads, strikes, barriers, resets, fixings and maturities.
But every bank sends them differently:
- Excel, CSV, TXT or XML
- different layouts, headers and record structures
- different field names, and different meanings for the same name
- each bank's own codes for products, indices and features
- different conventions for pay and receive, buy and sell, and signs
- different ways of showing legs, schedules and optional features
Renaming columns is the easy part. The units, the structure and the point of view are what decide the valuation.
How it works
Runs on your own machine
From Excel, on the GIAnalyzer ribbon: Map and Load Positions. It reads a folder you choose, writes its output there and loads the mapped positions into your workbook. No mailbox, no credentials, no connection to the bank. The way your files arrive today doesn't change.
Reads each bank's format
Identifies the bank and the file, in Excel, CSV, TXT or XML, and recognises each bank's own codes. Several banks in one run.
Standardizes for valuation
Every bank's codes resolve into one defined vocabulary of reference indices, instrument types and currencies. Currency pairs are requoted to market convention. Product terms are classified, not copied. A code it can't map is logged, never defaulted.
Output you can use
One structure across every bank and format, with the complete terms for each product, as Excel, CSV or JSON. Ready for GIAnalyzer or the Gamma Impact API, with no second mapping step.
The same swap, as two banks send it
One swap, as two banks would each send it.
| What the deal needs | Bank A (XML file) | Bank B (CSV file) | Standardized output |
|---|---|---|---|
| Fields in the file | 237 columns, 34 populated | 184 columns, 94 populated | 57 fields, all meaningful |
| Record per deal | One record per leg | One row, both legs | Either form; valuation accepts both |
| Point of view | The client's | The bank's | The client's, with Bank B's legs inverted |
| Product | IR Swap | Swap | Type Swap, subtype OIS |
| Floating index | SHIR | ILS/SHIR/1D/BOFI | SHIR_ON, type RFR |
| Fixed rate | 3.75 | 3.75 | 0.0375, as a decimal fraction |
| Frequency | 360 | PA | Annual |
| Day count | A365F | ACT/365 | act/365 |
| Roll convention | MF | MOD_FOLLOW | ModifiedFollowing |
The same options, in two vocabularies
Pricing models for exotic options don't take a bank's own labels; they need up-and-in, down-and-out and the rest. Turning one into the other is a set of rules, not a lookup:
- The product type and subtype follow from the bank's code.
- The barrier type needs the code, the option type, and where the barrier sits relative to the strike: a standard knock-out is out of the money, below the strike for a call and above it for a put; a reverse knock-out sits on the other side.
- Where the direction is already in the code, as in "O/T UP" or "NT DOWN", it is taken from there.
- Which field holds the first barrier depends on the subtype: the trigger rate for a one-touch, the down barrier otherwise.
- Settlement is decided by product, not copied: cash for non-deliverable forwards, delivery for anything that is not an option.
- A code that matches no rule is logged as a warning, never guessed.
| Bank A (XML) | Bank C (Excel) | Standardized output |
|---|---|---|
| VANILA | Vanilla, CALL_VANILLA | Vanilla option, European |
| KNOCKOUT, REVERSE KO, REVERSE KI | KNOCKIN, KI WB, RVKO, RKO WB | Exotic option, American barrier: up-and-in, down-and-in, up-and-out, down-and-out |
| — | EKO, EKI | Exotic option, European barrier |
| DOUBLE KNOCKOUT | DBKI, DBKO, DKI WB, DKO WB | Exotic option, double barrier: in, out |
| BINARY | DIG | Exotic option, digital |
| ONE TOUCH, INSTANT TOUCH | O/T DOWN, O/T UP, IOT UP | Exotic option, one-touch: up, down |
| — | NT DOWN, NT UP | Exotic option, no-touch: up, down |
| AVERAGE RATE | — | Exotic option, Asian |
Nothing happens silently
[18:35:27] Parsing file: ...\positions\140826\bank_a_derivatives.xml
[18:35:27] Parsed 3848 derivative entries
[18:35:28] Skipped 3843 entries that are not FXD, IRD, IND or Bond
[18:35:28] Parsing file: ...\positions\140826\bank_b_bonds.TXT
[18:35:28] Parsed 111 bond entries
[18:35:28] Merged 379 entries from two source files
[18:35:43] WRN No mapping found for key '12M4', field 'ReferenceIndexName'
[18:35:43] WRN Could not extract fixed rate from StrikeRate '12M 4.0500000'
[18:36:08] Finished writing sheet 'IRD_P'. Total entries: 4075
Excerpt from a mapping log.
- Every file, every parser. Which file was read, which bank it was matched to, which parser ran.
- Counts at each step. Parsed, skipped and written totals that reconcile to the source.
- Flagged, not guessed. A code it can't map or a rate it can't read is reported, not filled in.
- Local, per run, by severity. Separate information, warning and error logs, kept on your machine.
What it covers
Instruments: FX derivatives, interest rate derivatives, inflation derivatives, bonds and other listed securities, and cash balances.
Start small: begin with selected banks, portfolios and instrument types, and widen the coverage as you need.
The terms position files leave out
Some terms never appear in a position file: an amortization schedule, for one. The confirmations carry them. Confirmation Mapper extracts those terms from the PDF confirmations your banks send, in the same standard format.
Licensing and trial
Licensed on its own, or with any other Gamma Impact product, by the banks covered and the volume of positions. No prices on the site: we quote for your banks and your book.
Trial on request: once we've checked that your banks are supported, we send you the installation file and activation keys, and you run it on your own files. It installs and activates like GIAnalyzer.
Start with your own files
- Book a live demonstration, in person or on Zoom: on real bank position files with sensitive fields replaced, or on your own files under NDA.
- We map them and return the output.
- You compare it with the positions you hold now.
- Any bank of yours we don't support yet is added at our cost, in one to two months.
Also: GIAnalyzer and the Gamma Impact API, to value what it maps.
