LUSID supports all the industry standard accounting methods. These can be configured in various places in LUSID.
Default: When set on a portfolio, this instructs LUSID to use the system default accounting method (currently AverageCost). When set on a derived portfolio it means take the accounting method from the parent portfolio, and when set on a transaction it means take the accounting method from the containing portfolio.
AverageCost: Do not split the holdings into taxlots, instead aggregate at the holding level and calculate an average cost.
For the remaining accounting methods, LUSID will create new tax lots for all transactions which increase a position, ie buys and short sells. The accounting method determines which tax lots are updated by transactions which reduce the overall position:
FirstInFirstOut: the oldest taxlots
LastInFirstOut: the newest taxlots
HighestCostFirst: the taxlots with the highest cost
LowestCostFirst: the taxlots with the lowest cost
For more information, examine this Jupyter Notebook.