Account Position Updated

An account's position has been updated

Event Type

Description

positions.updated

An accounts position has been updated by DW operations staff or by a corporate action like a stock split, stock dividend or a symbol change.

📘

Different Position Updates

There are a few different types of reasons on the positions.updated event. Below are an example of each.

Manual Adjustment

A manual adjustment will be performed by the DW operational staff and will update the client's openQty, avgPrice and/or costBasis.

{
  "id": "event_704378d9-8c3c-4b38-9230-181aa53791cd",
  "type": "positions.updated",
  "timestamp": "2019-03-28T23:10:45.779100609Z",
  "payload": {
    "accountID": "b25f0d36-b4e4-41f8-b3d9-9249e46402cd.1403540676095",
    "accountNo": "DWZR000001",
    "userID": "b25f0d36-b4e4-41f8-b3d9-9249e46402cd",
    "updateReason": "MANUAL",
    "previous": {
      "costBasis": 23.94,
      "openQty": 1.944,
      "symbol": "AAON",
      "avgPrice": 12.32
    },
    "current": {
      "costBasis": 23.9436,
      "openQty": 1.9436,
      "symbol": "AAON",
      "avgPrice": 12.32
    }
  }
}

Spinoff

A Spinoff relates to when a single company is split into a new company, creating a new CUSIP and symbol traded entity. It is typical that the spinoffs also contain a share conversion.

{
  "id": "event_22f840b1-80c8-4d72-9f10-07315ffd30fb",
  "type": "positions.updated",
  "timestamp": "2019-03-29T07:02:33.200962333Z",
  "payload": {
    "accountID": "272472de-6522-41be-85a6-31af662251dc.1520386265152",
    "accountNo": "DWFE000039",
    "userID": "272472de-6522-41be-85a6-31af662251dc",
    "updateReason": "SPINOFF",
    "spinoff": {
      "parentCompanySymbol": "CLEG"
    },
    "previous": {
      "openQty": 0,
      "symbol": "BMY.RT"
    },
    "current": {
      "openQty": 0.00915499,
      "symbol": "BMY.RT"
    }
  }
}

Stock Split

When a stock split happens, we will provide and updated openQty and avgPrice.

{
  "id": "event_c4b2c210-ce32-41d4-a9a1-cfad4fdf191c",
  "type": "positions.updated",
  "timestamp": "2019-03-29T07:02:33.200962333Z",
  "payload": {
    "accountID": "272472de-6522-41be-85a6-31af662251dc.1520386265152",
    "accountNo": "DWFE000039",
    "userID": "272472de-6522-41be-85a6-31af662251dc",
    "updateReason": "STOCK_SPLIT",
    "previous": {
      "costBasis": 2.8,
      "openQty": 1,
      "symbol": "CPLP",
      "avgPrice": 2.8
    },
    "current": {
      "costBasis": 2.8,
      "openQty": 0.14286,
      "symbol": "CPLP",
      "avgPrice": 19.6
    }
  }
}

Stock Dividend

Although rare, a stock dividend is sometimes provided instead of cash dividend.

{
  "id": "event_c4b2c210-ce32-41d4-a9a1-cfad4fdf191c",
  "type": "positions.updated",
  "timestamp": "2019-03-29T07:02:33.200962333Z",
  "payload": {
    "accountID": "272472de-6522-41be-85a6-31af662251dc.1520386265152",
    "accountNo": "DWFE000039",
    "userID": "272472de-6522-41be-85a6-31af662251dc",
    "updateReason": "STOCK_DIVIDEND",
    "previous": {
      "costBasis": 2.8,
      "openQty": 1,
      "symbol": "CPLP",
      "avgPrice": 2.8
    },
    "current": {
      "costBasis": 2.8,
      "openQty": 1.14286,
      "symbol": "CPLP",
      "avgPrice": 2.8
    }
  }
}

Symbol Change

From time to time, a symbol will change it's ticker. It could be from a acquisition, merger, delisting or just because the company felt like it. When there is a merger or acquisition there will be two position update events created, one for the removal of one symbol and the addition of another.

{
  "id": "event_c4b2c210-ce32-41d4-a9a1-cfad4fdf191c",
  "type": "positions.updated",
  "timestamp": "2019-03-29T07:02:33.200962333Z",
  "payload": {
    "accountID": "272472de-6522-41be-85a6-31af662251dc.1520386265152",
    "accountNo": "DWFE000039",
    "userID": "272472de-6522-41be-85a6-31af662251dc",
    "updateReason": "SYMBOL_CHANGE",
    "previous": {
      "symbol": "SCTY"
    },
    "current": {
      "symbol": "TSLA"
    }
  }
}
{
    "id": "event_06e436fe-1f2c-4b1e-b0ed-75134a0d37a7",
    "type": "positions.updated",
    "timestamp": "2019-08-02T07:02:31.845181651Z",
    "payload": {
        "accountID": "0dd1b08f-3668-440a-be18-131443d85a47.1551208006668",
        "accountNo": "DWUV000073",
        "userID": "0dd1b08f-3668-440a-be18-131443d85a47",
        "updateReason": "MERGER_AND_ACQUISITION",
        "previous": {
            "costBasis": 0,
            "openQty": 0,
            "symbol": "FB"
        },
        "current": {
            "costBasis": 0,
            "openQty": 5.51,
            "symbol": "FB"
        }
    }
}
{
    "id": "event_fc0df771-084b-4d4c-b1b4-2f5cb5b86ad7",
    "type": "positions.updated",
    "timestamp": "2019-08-02T07:02:31.827375527Z",
    "payload": {
        "accountID": "0dd1b08f-3668-440a-be18-131443d85a47.1551208006668",
        "accountNo": "DWUV000073",
        "userID": "0dd1b08f-3668-440a-be18-131443d85a47",
        "updateReason": "MERGER_AND_ACQUISITION",
        "previous": {
            "costBasis": 500,
            "openQty": 11.64958061,
            "symbol": "TWTR",
            "avgPrice": 42.92
        },
        "current": {
            "costBasis": 0,
            "openQty": 0,
            "symbol": "TWTR"
        }
    }
}
{
    "id": "event_5d5a4a88-fc05-4d53-b0bf-27801ef028c9",
    "type": "positions.updated",
    "timestamp": "2019-08-02T07:02:31.949597191Z",
    "payload": {
        "accountID": "0dd1b08f-3668-440a-be18-131443d85a47.1551208006668",
        "accountNo": "DWUV000073",
        "userID": "0dd1b08f-3668-440a-be18-131443d85a47",
        "updateReason": "MERGER_AND_ACQUISITION",
        "previous": {
            "costBasis": 500,
            "openQty": 2.07761987,
            "symbol": "TSLA",
            "avgPrice": 240.66
        },
        "current": {
            "costBasis": 0,
            "openQty": 0,
            "symbol": "TSLA"
        }
    }
}

ACATS - Incoming

{
  "id": "event_faecc66d-5d15-4698-8967-30744f1f2d14",
  "type": "positions.updated",
  "timestamp": "2019-09-27T11:54:47.752978141Z",
  "payload": {
    "accountID": "b2124bd2-467d-4a5e-8864-7b8b9f5809aa.1552418271646",
    "accountNo": "DWBG000076",
    "userID": "b2124bd2-467d-4a5e-8864-7b8b9f5809aa",
    "updateReason": "ACATS_STOCK",
    "acats": {
      "type":"INCOMING",
      "brokerDTCNo": "524",
      "referenceNo":"ACAT21182",
      "controlNo":"20192560028977"
    },
    "previous": {
      "openQty": 0,
      "symbol": "NVDA"
    },
    "current": {
      "openQty": 80,
      "symbol": "NVDA"
    }
  }
}

ACATS - Outgoing

{
  "id": "event_faecc66d-5d15-4698-8967-30744f1f2d14",
  "type": "positions.updated",
  "timestamp": "2019-09-27T11:54:47.752978141Z",
  "payload": {
    "accountID": "b2124bd2-467d-4a5e-8864-7b8b9f5809aa.1552418271646",
    "accountNo": "DWBG000076",
    "userID": "b2124bd2-467d-4a5e-8864-7b8b9f5809aa",
    "updateReason": "ACATS_STOCK",
    "acats": {
      "type":"OUTGOING",
      "brokerDTCNo": "524",
      "referenceNo":"ACAT21182",
      "controlNo":"20192560028977"
    },
    "previous": {
      "openQty": 80,
      "costBasis":11,425
      "symbol": "NVDA"
    },
    "current": {
      "openQty": 0,
      "symbol": "NVDA"
    }
  }
}

Results Explained

Attribute

Type

Description

id

string

unique event identifier

type

string

the type of event

timestamp

string

time when the event was created

payload

object

contains the details of the event

payload.accountID

string

unique account identifier

payload.accountNo

string

account number

payload.userID

string

unique user identifier

payload.updateReason

string

  • MANUAL – manual position adjustment performed by DW operations staff
  • STOCK_SPLIT – stock split
  • STOCK_DIVIDEND – receipt of a stock dividend
  • SYMBOL_CHANGE – ticker symbol has been changed
  • ACATS_STOCK – ACAT received

payload.previous

object

contains the details prior to the position update

payload.{object}.symbol

string

ticker symbol of the security

payload.{object}.openQty

number

quantity of the symbol the end client holds

payload.{object}.costBasis

number

the cost basis of the symbol the client holds

payload.{object}.avgPrice

number

the average price of the symbol the client holds

current

object

contains the current details of the position