Trading 202: Challenges of Asset Tracking
Posted: 2012-12-16 Filed under: eveonline, industry | Tags: api, veldspar 4 CommentsOverview
You buy something and then sell it somewhere else at a higher price. This process is easy enough to do, but for accurate profit records it turns out to be rather troublesome due to how asset identification is implemented in Eve at the database level.
If you want to preserve a chain of custody for bookkeeping reasons, you need some additional tools for asset tracking.
Stacks and itemIDs
A single item or a stack of items is stored in the database as a single row with a unique itemID. Below is an exmaple of a Medium Shield Drone that I have in a Dodixie station.
Every item in the game as a unique itemID that is created and destroyed when it is stacked or split. Here is an example of what happens when you take a stack of ore, split it, and then combine it again.
This is a very simple example, but imagine a larger trading operation. You are buying 200 implants and 3 are for your personal characters, 100 are going to your primary trade hub, and the other 97 to your secondary trade hub. As you split up the stacks, your itemIDs change. The chain of ownership gets lost along the way.
While your current orders are selling, you are going to buy more of the same implants so you can replenish stock in the trade hub. This new purchase is at a slightly higher cost, but well within good profit margins.
So how do you calculate profit? You have items at a certain price currently selling and then a new price to work with for the next batch. Do you use the last price that you bought it at? A global price from a source like Eve-Central? An average?
The ideal solution involves working with a record of quantity and price at a point in time. Once you have this information, you can keep better track of profits as you continuously sell and buy items.
Solutions
1. First In, First Out
This system can be explained by James, my coding right hand man. Here is a quote when we introduced a ‘inventory’ table to our Wallet Manager.
“As far as getting profit and costing, that’s pretty simple. We get costs in a FIFO basis (first in, first out). As purchases come in through the API, they go to the ‘inventory’ table. As things are sold, the quantities are deducted from the items in that table and the profit calculated on the original purchase cost. This allows for a pretty accurate profit calculation.
The caveat is that method is pretty prone to drift. You might buy 1,000 heavy missiles you don’t plan on selling, but they’ll end up in the table. However, we have a way of combating that.
One is that the tool works best when the characters being tracked do nothing but trade or produce. Because the Eve API doesn’t allow you to track specific instances of items well enough, that’s really the first line of defense. You can always spin an alt to buy your toys and keep them off the tool’s books.”
2. Assign Assets to a Project
Raath, my production partner that heads up development at industry.darkshadowindustries.com, uses Projects.
A asset or resource that enters the system can be assigned to a project. That item and the price can then be tracked and rolled into the final profit calculation of the job when it is completed.
Cool,
Now how are you calculating the profit on built items? say t2 invented bpo, build the stuffs, then build the item, then sell it.
I haven’t been doing a lot of Tech2 production so I don’t have a method for tracking this at the moment.
Ok, only thing i can come up with is basing it on location / toon.
[…] track of profits is done on a first in, first out basis as outlined here in a previous […]