Supported Disposition Methods

Disposition Methods (also known as Accounting Methods) are set at the tenant level, where all Accounts created will default to the tenant-level-method. Disposition Methods can also be set on Account Creation to override the tenant-level default by setting the optional disposition_method field.

Supported Disposition Methods

HIFO: Highest In, First Out

The Highest In, First Out (HIFO) accounting method is commonly used for calculating the cost basis of assets, especially for tax purposes. It assumes that the highest-priced units or shares are sold first when determining the cost basis of an asset sold or disposed of. Here's an example:

Suppose an investor purchases shares of a stock on three different occasions:

  • Purchase 1: 10 shares at $10 per share
  • Purchase 2: 20 shares at $12 per share
  • Purchase 3: 15 shares at $15 per share

If the investor sells 25 shares, the HIFO method determines the cost basis as follows:

  • The 15 shares from Purchase 3 would be sold first, with a cost basis of $15 per share.
  • The remaining 10 shares would be selected from Purchase 2, with a cost basis of $12 per share.

By using HIFO, the investor assigns the highest purchase prices to the shares sold, potentially resulting in a higher cost basis and lower taxable gains.

FIFO: First In, First Out

The First In, First Out (FIFO) accounting method is primarily used in inventory management and the sale of goods. It assumes that the first units or items purchased are the first ones sold or consumed. Here's an example:

Suppose a business purchases a specific product at different prices over time:

  • Purchase 1: 10 units at $5 per unit
  • Purchase 2: 20 units at $7 per unit
  • Purchase 3: 15 units at $9 per unit

If the business sells 25 units, the FIFO method considers the cost basis as follows:

  • The first 10 units from Purchase 1 would be sold, with a cost basis of $5 per unit.
  • The remaining 15 units would be selected from Purchase 2, with a cost basis of $7 per unit.

FIFO allocates the cost of the earliest inventory purchases to the units sold, potentially resulting in a different cost basis and inventory valuation.

LIFO: Last In, First Out

The Last In, First Out (LIFO) accounting method is another approach used for calculating the cost basis of assets. It assumes that the most recently purchased or produced units are sold first. Here's an example:

Suppose an investor purchases shares of a stock on three different occasions:

  • Purchase 1: 10 shares at $10 per share
  • Purchase 2: 20 shares at $12 per share
  • Purchase 3: 15 shares at $15 per share

If the investor sells 25 shares, the LIFO method determines the cost basis as follows:

  • The 15 shares from Purchase 3 would be sold first, with a cost basis of $15 per share.
  • The remaining 10 shares would be selected from Purchase 2, with a cost basis of $12 per share.

By using LIFO, the investor assigns the most recent purchase prices to the shares sold, potentially resulting in a lower cost basis and higher taxable gains. However, LIFO can be advantageous in periods of rising prices as it matches current costs against current revenues, which can lead to tax deferrals.

SpecID: Specific Lot Identification

The Specific Lot Identification (also known as SpecID) method allows the user to explicitly choose which specific purchased lot(s) will be used to satisfy a sale or disposition. This method is typically used when the items or assets are not interchangeable or when the user wants maximum control over their realized gain or loss for tax purposes.

Suppose an investor purchases shares of a stock on three different occasions:

  • Purchase 1: 10 shares at $10 per share
  • Purchase 2: 20 shares at $12 per share
  • Purchase 3: 15 shares at $15 per share

If the investor sells 25 shares with Specific Lot, they would need to determine which shares they dispose of. They could choose to sell 5 shares from Purchase 1, 10 shares from Purchase 2, and 10 shares from Purchase 3.

SpecID allows investors to determine exactly which shares they dispose of.

Integration Steps

The successful implementation of SpecID requires an integration with live inventory, ensuring the user's explicit lot selection is captured and submitted with the transaction data.

  • Step 1: User Initiates Transaction and Specifies SpecID
    • The user initiates a disposition (e.g., SELL) for a known asset (e.g., BTC, ETH). The user must indicate the SpecID method via your exchange UI.
  • Step 2: Retrieve Available Lots (Inventory Lookup)
    • To allow the user to select specific lots, your backend must first fetch the current available inventory for the asset being sold with GET /inventory. This response will return lot ids that can be selected to be disposed of.
  • Step 3: User Lot Selection
    • The user selects specific quantities from the available lots fetched in Step 2 in your UI.
    • Validations: The specific quantities must add up to the total quantity disposed.
  • Step 4: Send SELL Transaction to Taxbit
    • The exchange submits the SELL transaction data. The transaction payload must include the dispositionMethod field set to SPECID and the detailed lot information in inventory_lots
    • The inventory_lots object needs to contain inventory lot IDs (retrieved from Step 2) and associated asset quantities. The sum of quantities must not exceed the asset amount on the transaction.
❗️

If any lots cannot be found, then the disposition method will fall back to the disposition method set on the account, if set. Otherwise, it will fall back to the default disposition method on the Filer.

  • Post Submission
    • Upon successful submission, Taxbit processes the transaction. The consumed lots are updated in the inventory. The system can use a webhook and the exchange can be notified through a webhook when the inventory is updated, allowing the UI to reflect the user's specific tax outcome.