Normalized data from the WealthTech API has a large number of fields. In addition to the API Reference, below is a breakdown all fields, types and descriptions available from normalized data endpoints grouped together in the usage patterns of the data.
Lots Schema
Open tax lots are available at /v2/data/source/lots
Cost Basis Fields
Field
Type
Nullable / Empty?
Description
abs_cost_basis_adjusted
Number
Yes. Null if there are no adjustments to cost basis
Cost basis adjusted for corporate actions, such as splits
abs_cost_basis
Number
Yes. Null if unavailable
Cost basis for the lot. This information might be unknown or arrive late for any given lot, especially those resulting from transferred shares. Must be provided for cost_basis_fully_known to be true
cost_basis_fully_known
Boolean
No
Cost basis is fully known when both the origination date and amount is provided
cost_basis_fully_known_reported
Nullable boolean
Yes; null if no indicator provided by source
Source-provided determination of whether cost basis is known. Null if the source doesn't provide such indications of completed cost basis information
Gain / Loss Fields
Field
Type
Nullable / Empty?
Description
unrealized_gain_loss
Number
Yes. Null if cannot be calculated
Difference between abs_current_value and abs_cost_basis. If either is null, this field will be null, but treated as zero for aggregating unrealized gain/loss
unrealized_gain_loss_reported
Number
Yes. Null if not provided
Unrealized gain/loss, as reported by the data source. Not all sources report unrealized gain/loss on lots
realized_gain_loss_reported
Number
Yes. Null if not provided
Realized gain/loss for partially closed lots as reported by the data source, or null if not provided
disallowed_loss_amount
Number
Yes; null if not provided
Lost amount that cannot be used for tax offset, if the lot is part of a wash sale violation
Units Fields
Field
Type
Nullable / Empty?
Description
abs_current_units
Number
No; if units are missing no lot will be passed through
Current number of open units
abs_original_open_units
Number
Yes, if not provided by source
The number of open units that opened the lot. Not reported by all data sources
Date and Meta Fields
Field
Type
Nullable / Empty?
Description
created_at_utc
RFC 3339 String Timestamp
No
Timestamp when the record is created in the WealthTech API
original_open_date
String date, YYYY-MM-DD
Can be empty
Opening date for this lot. Must be provided for cost_basis_fully_known to be true
reported_date
String date, YYYY-MM-DD
No
Date the lot is reported to Bridge
certified
Boolean
No
direction
String
No
"L" for long; "S" for short positions
lot_selection_method
String
Can be empty if not provided
Lot matching selection method, such as FIFO, LIFO, etc. if provided by the source
original_data
Json object
Yes
Additional metadata
wash_sale
Boolean
No; defaults to false
True if the lot is part of a wash sale
duration
String
Yes; Empty if original open date is unknown
"ST" for short term; "LT" for long term
Identifier Fields
Field
Type
Nullable / Empty?
Description
account_id
Integer
Yes; nullable if unable to link to accounts
Atlas-linked account ID. Not necessarily available if the underlying account hasn't been discovered yet
account_number
String
No
Source-provided account identifier
feed_code
String
No
Source-provided feed identifier
source
String
No
Data source identifier
lot_identifier
String
Can be empty if not provided
Lot identifier provided by source, if available
object
String
No
Type indicator. Always equal to "data.source.lot"
security_id
Nullable int
Yes. Null means the security cannot be resolved to our internal mapping
Security ID that can be used against the /securities endpoints. May be null if the security for this position wasn't able to be linked into Bridge's internal security mapping
source_security_cusip
String
Emtpy if not provided
Source-provided security identifier
source_security_symbol
String
Empty if not provided
Source-provided security identifier
id
Integer
No
Value Fields
Field
Type
Nullable / Empty?
Description
abs_current_value
Number
Yes, null when no price is provided
Current market value using the source-provided price
abs_current_value_unit_price
Number
Yes; null when no price is provided
Prevailing price per unit of the security, as determined by the source provider
abs_current_value_reported
Number
Yes; null if not provided
Current market value as reported directly from source
abs_current_value_unit_price_reported
Number
Yes; null if not provided
Price as reported directly from source lots
Positions Schema
Positions are available at /v2/data/source/positions
Date and Meta Fields
Field
Type
Nullable / Empty?
Description
created_at_utc
RFC 3339 String Timestamp
No
Timestamp when the record is created in the WealthTech API
source
String
No
Data source identifier
direction
String
No
"L" for long positions; "S" for short positions
original_data
Json object
Yes
Additional metadata
reported_date
String date, YYYY-MM-DD
No
Date the lot is reported to Bridge
first_open_date
String date, YYYY-MM-DD
Yes; null if none of the lots have an original open date
Minimum open date on all lots
Cost Basis Fields
Field
Type
Nullable / Empty?
Description
abs_cost_basis
Number
No; missing data is treated as zero
Calculated by summing of all open lots with fully known cost basis. If there are no lots with fully known cost basis then the value is zero.
abs_cost_basis_lt
Number
No; missing data is treated as zero
Sum of the cost basis among open lots with fully known cost basis that were originated over 365 days ago
abs_cost_basis_st
Number
No; missing data is treated as zero
Sum of the cost basis among open lots with fully known cost basis that were originated over within the last year
cost_basis_fully_known
Boolean
True if all open lots of the same security have fully known cost basis. In other words, n_open_lots == n_open_lots_with_cost_basis
True if the cost basis amount and origination date are both provided
Identifier Fields
Field
Type
Nullable / Empty?
Description
account_id
Integer
Yes; nullable if unable to link to accounts
Atlas-linked account ID. Not necessarily available if the underlying account hasn't been discovered yet
account_number
String
No
Source-provided account identifier
feed_code
String
No
Source-provided feed identifier
object
String
No
Equal to "data.source.position"
security_id
Nullable int
Yes. Null means the security cannot be resolved to our internal mapping
Security ID that can be used against the /securities endpoints. May be null if the security for this position wasn't able to be linked into Bridge's internal security mapping
source_security_cusip
String
Emtpy if not provided
Source-provided security identifier
source_security_symbol
String
Empty if not provided
Source-provided security identifier
id
Integer
No
Gain / Loss Fields
Field
Type
Nullable / Empty?
Description
unrealized_gain_loss
Number
No
Calculated by summing over all lots (short-term and long-term) with a defined unrealized gain/loss value (price and cost information must be available)
unrealized_gain_loss_lt
Number
No
Calculated by summing over all long-term lots (short-term and long-term) with fully known cost basis information
unrealized_gain_loss_st
Number
No
Calculated by summing over all short-term lots (short-term and long-term) with fully known cost basis information
unrealized_gain_loss_reported
Number
Yes. Null if not reorted
Source-reported unrealized gain/loss as of the reported date
unrealized_gain_loss_lt_reported
Number
Yes. Null if not reported
Source-reported unrealized long-term gain/loss as of the reported date
unrealized_gain_loss_st_reported
Number
Yes. Null if not reported
Source-reported unrealized short-term gain/loss as of the reported date
Lot Status Fields
Field
Type
Nullable / Empty?
Description
open_lots
Integer
No
Total number of open lots reported by the custodain for this security on the reported date.
open_lots_with_cost_basis
Integer
No
Total number of open lots with fully known cost basis reported by the custodain for this security on the reported date.
open_lots_st
Integer
No
Total number of short-term open lots reported by the custodain for this security on the reported date.
open_lots_with_cost_basis_st
Integer
No
Total number of short-term open lots with fully known cost basis reported by the custodain for this security on the reported date.
open_lots_lt
Integer
No
Total number of long-term open lots reported by the custodain for this security on the reported date.
open_lots_with_cost_basis_lt
Integer
No
Total number of long-term open lots with fully known cost basis reported by the custodain for this security on the reported date.
open_units
Number
No
Total number of open units reported by the custodain for this security on the reported date.
open_units_with_cost_basis
Number
No
Total number of units lots with fully known cost basis reported by the custodain for this security on the reported date.
open_units_st
Number
No
Total number of short-term open units reported by the custodain for this security on the reported date.
open_units_with_cost_basis_st
Number
No
Total number of short-term open units with fully known cost basis reported by the custodain for this security on the reported date.
open_units_lt
Number
No
Total number of long-term open units reported by the custodain for this security on the reported date.
open_units_with_cost_basis_lt
Number
No
Total number of long-term open units with fully known cost basis reported by the custodain for this security on the reported date.
abs_settled_units
Number
Yes. Null if not reported
Open units that have completed settlement processing
abs_units
Number
No; positions with unreported units aren't passed through
Number of open units
Value Fields
Field
Type
Nullable / Empty?
Description
abs_value
Number
Yes; null if price is not available
Market value using source-provided prices on the reported date. Unsigned; short positions have positive values despite technically being liabilities
abs_value_st
Number
No
Portion of the market value that has been held for less than 1 year. Calculated by summing lots with fully known cost basis, so abs_value_st + abs_value_lt <= abs_value
abs_value_lt
Number
No
Portion of the market value that has been held for more than 1 year. Calculated by summing lots with fully known cost basis, so abs_value_st + abs_value_lt <= abs_value
abs_value_unit_price
Number
Yes. Null if security price isn't available from the source
Price per unit (qty) using source-provided market prices of the security
abs_value_reported
Number
Yes; null if not provided
Current market value as reported directly from the source
abs_value_unit_price_reported
Number
Yes; null if not provided
Price as reported on source positions
Realized Gain / Loss Schema
Realized gain/loss data is available at /v2/data/source/realized-gain-loss
Units Fields
Field
Type
Nullable / Empty?
abs_closed_units
Number
Yes
Units closed out in winding down the lot
abs_opened_units
Number
Yes
Remaining open units in winding down the lot
Value Fields
Field
Type
Nullable / Empty?
abs_closed_value
Number
Yes
Value of the closed units at the time of the sale / buy-back
abs_opened_value
Number
Yes
Value of the remaining open units at the time of the sale / buy-back
amount
Number
No
Amount of the realized gain/loss
amount_lt
Number
Yes. Null if cost basis is missing or unreported
Portion of the realized gain/loss that was held for more than 1 year
amount_st
Number
Yes. Null if cost basis is missing or unreported
Portion of the realized gain/loss that was held for less than 1 year
Date and Meta Fields
Field
Type
Nullable / Empty?
close_date
String date, YYYY-MM-DD
No
Date the lot was fully or partially closed
created_at_utc
RFC 3339 String Timestamp
No
Timestamp when the record is created in the WealthTech API
source
String
No
Data source identifier
direction
String
No
"L" for long; "S" for short positions
lot_selection_method
String
Empty if not provided
Lot matching selection method, such as FIFO, LIFO, etc. if provided by the source
open_date
String date, YYYY-MM-DD
Yes, null if not provided
Date the closed lot was opened
original_data
Json object
Yes
Additional metadata
reported_date
String date, YYYY-MM-DD
No
Date the lot is reported to Bridge
settle_date
String date, YYYY-MM-DD
Yes; null if not provided
Date the proceeds have completed settlement processing
Identfier Fields
Field
Type
Nullable / Empty?
account_id
Integer
Yes; nullable if unable to link to accounts
Atlas-linked account ID. Not necessarily available if the underlying account hasn't been discovered yet
account_number
String
No
Source-provided account identifier
feed_code
String
No
Source-provided feed identifier
lot_identifier
String
Empty if not provided
Lot identifier provided by source, if available
object
String
No
Equal to "data.source.realized_gain_loss"
security_id
Integer
Yes. Null means the security cannot be resolved to our internal mapping
Security ID that can be used against the /securities endpoints. May be null if the security for this position wasn't able to be linked into Bridge's internal security mapping
source_security_cusip
String
Empty if not provided
Source-provided security identifier
source_security_symbol
String
Empty if not provided
Source-provided security identifier
id
Integer
No
Account Balances Schema
Account balances are available at /v2/data/source/account-balances
Identifier Fields
Field
Type
Nullable / Empty?
Description
account_id
Integer
Yes; nullable if unable to link to accounts
Atlas-linked account ID. Not necessarily available if the underlying account hasn't been discovered yet
account_number
String
No
Source-provided account identifier
feed_code
String
No
Source-provided feed identifier
object
String
No
Type indicator. Always equal to "data.source.balance"
id
Integer
No
Date and Meta Fields
Field
Type
Nullable / Empty?
Description
created_at_utc
RFC 3339 String Timestamp
No
Timestamp when the record is created in the WealthTech API
source
String
No
Data source identifier
original_data
Json object
Yes
Additional metadata
reported_date
String date, YYYY-MM-DD
No
Portfolio date the balance corresponds to
Income / Expense Fields
Field
Type
Nullable / Empty?
Description
abs_expense
Number
No
Total expenses from held securities on the reported date
abs_income
Number
No
Total income from held securities on the reported date
net_income
Number
No
Total net income from held securities on the reported date
abs_non_performing_expense
Number
No
Total expense exempt from performance impact on the reported date
abs_non_performing_income
Number
No
Total income exempt from performance impact on the reported date
net_non_performing_income
Number
No
Total net income exempt from performance impact on the reported date
Cash Flow Fields
Field
Type
Nullable / Empty?
Description
abs_cash_contribution
Number
No
Transfers in of cash and cash equivalents (i.e., money market assets) on the reported date
abs_cash_withdrawal
Number
No
Transfers out of cash and cash equivalents on the reported date
total_net_contribution
Number
No
Total net contributions made to the account on the reported date
abs_security_contribution
Number
No
Transfers in of securities on the reported date
abs_security_withdrawal
Number
No
Transfers out of securities on the reported date
total_abs_contribution
Number
No
Total transfer-in of assets (cash and securities) on the reported date
total_abs_withdrawal
Number
No
Total transfer-out of assets (cash and securities) on the reported date
Gain / Loss Fields
Field
Type
Nullable / Empty?
Description
total_unrealized_gain_loss_reported
Number
Yes; null if not reported
Source-reported total unrealized gain/loss in the account as of the reported date
total_unrealized_gain_loss
Number
No
Tota unrealized gain/loss (short and long-term) among all open lots as of the reported date
unrealized_gain_loss_lt_reported
Number
Yes; null if not reported
Total long-term unrealized gain/loss, among all open lots with fully known cost basis.
unrealized_gain_loss_st_reported
Number
Yes; null if not reported
Tota short-term unrealized gain/loss, among all open lots with fully known cost basis
unrealized_gain_loss_lt
Number
No
Unrealized long-term gain/loss calculated from all open lots with fully known cost basis. Lots without fully known cost basis are treated as zero
unrealized_gain_loss_st
Number
No
Unrealized short-term gain/loss calculated from all open lots with fully known cost basis. Lots without fully known cost basis are treated as zero
cost_basis_fully_known
Number
No
True only if ALL cost basis is fully known across all positions in the account. This will naturally be the case if the account has no security transfers and all transactions happen within the account. However cost basis information may be missing for accounts with security transfers.
Fee Fields
Field
Type
Nullable / Empty?
Description
abs_management_fee
Number
No
Management fees applied to the account on the reported date
total_abs_fees
Number
No
Total fees applied to the account on the reported date
Value Fields
Field
Type
Nullable / Empty?
Description
cash_value
Number
No
Total cash holdings in the account as of the reported date
cash_value_reported
Number
Yes; null if not reported
Source-reported cash holdings in the account as of the reported date
securities_value
Number
No
Value of all securities in the account on the reported date
securities_value_reported
Number
Yes; null if not reported
Source-reported value of all securities in the account on the reported date
total_value
Number
No
Total value of assets (cash and securities) on the reported date
total_value_reported
Number
Yes; null if not reported
Source-reported value of assets (cash and securities) on the reported date
Transactions Schema
Transactions are available at /v2/data/source/transactions
All Fields
Field
Type
Nullable?
Default Value?
Description
id
Integer
No
N/A
The unique resource id for the transaction
account_id
Integer
Yes
N/A
The id of the Account associated with this Transaction. The field can be empty or “null” in rare cases when the system was not able to match transaction with any existing account.
security_id
Integer
Yes
N/A
The id of the Security associated with this Transaction. The field can be empty or “null” in rare cases when the system was not able to match transaction with any existing security.
reported_date
String date, YYYY-MM-DD
No
N/A
The date the custodian reports the transaction
source
String
No
N/A
Custodian or source the transaction data comes from.
The date when transaction is happened. This date may be different from the reported_date. For example cancellation of the transaction can be reported by the custodian in a some time after this happened. In most cases these values are the same, and when a transaction date isn’t provided it is set to the reported_date.
settle_date
String date, YYYY-MM-DD
Yes
N/A
The date that the transaction settled if reported
accrued_interest
Float
Yes
N/A
Custodian provided accrued interest associated with a transaction.
units
Float
Depends on the transaction classification
N/A
The signed quantity of shares for the reported transaction
amount
Float
Depends on the transaction classification
N/A
The signed net amount for the reported transaction
unit_price
Float
Yes
N/A
The unit price of the transaction. Populated as per following logic:
1. Custodian reported price (if provided), if not provided then =>
2. BridgeFT calculated value (by dividing amount and units). This generally applies to trades and other transactions where we have both amounts and units values.
3. If it’s a cash or cash equivalent, the price = 1.04. If none of that works this field returns null.
fees
Float
No
N/A
Any fees for the transaction as reported by the custodian
is_cancel
Boolean
No
false
True if the transaction is canceled. Canceled transactions are often paired with a matching uncanceled transactions.
description
String
No
N/A
Extra description for the transaction
created_at_utc
String date, YYYY-MM-DD
No
N/A
Timestamp for when the record was created in BridgeFT
trade_settle_ind
String
Yes
N/A
Indicator to declare if the trade records provided by the custodian is coming from a trade date or settlement date based system of record. T = Trade Date Based, S = Settlement Date Based, and empty values are for non-trade activity or data is not provided by the custodian. TS
Below are the Classification Codes for various Source Transaction scenarios. The table below will explain the “Code” returned in the API, a brief description of what that code relates to, as well as the rules for units (the signed quantity of shares for the reported transaction) and amount (the signed net amount for the reported transaction) values.
For example, the Code of bto, is a “Buy to Open” which will have a Non-nullable field in both units and amount. Meaning that the bto code will have a value in both the units and amount field. The code of rec, is a “Security Deposit” which will have a Non-nullable field for units but a Null field for amount. Meaning that the rec code will have a value units, but will have a Null or blank on the amount field.