On the Discord server, we get these questions a lot. Since they are tied together, let's run through this.
First, some ground rules:
- If you farm materials, they cost the same as if you had sold them, meaning farming has the same cost as buying materials.
- Never craft things that don't have enough profit to be worthwhile after they have sold.
Okay, let's begin, and start with the Default Material Cost Method in /tsm, Settings, Crafting. If you buy materials, you need to edit the DMCM as it does not include purchase information. max(first(smartavgbuy, avgbuy), min(dbmarket, crafting, vendorbuy, convert(dbmarket)))
is the new version.
What first(smartavgbuy, avgbuy)
does is take whatever is first and valid between the average value of your current inventory or your purchase history value. You then compare that with TSM's default, which finds the cheapest between market value, crafting the material, buying from a vendor, or converting the material from another material (lesser shard <--> greater shard, herbs --> pigments, ores --> uncut gems, or fish --> oil, etc).
Now compare your purchase with TSM's cheapest and find the higher of the two, and use that as the material's worth. The caveat is that over time, the value of materials will change. Remember that when BfA launched, Anchor Weed was 400g each, whereas today it is 10g each or less. You need to clean up your accounting periodically.
**/tsm, settings, accounting, <selected number of recent days to keep>, clear data button to wipe anything older. This will leave your gold graph intact, but dump minbuy, minsell, maxbuy, maxsell, avgbuy, and avgsell beyond your selection.
Next, we will look at the Default Craft Value Method, or DCVM. This is the value TSM uses to find the cost of the finished crafted item, like a flask or contract, or plate bracers, etc. TSM uses first(dbminbuyout, dbmarket)
which checks if the item is currently listed during the last data pull (dbminbuyout) and if yes, price vs that. If the item is not currently listed, use its market value, which is a weighted 14 day average favouring the past 3 days.
This is great, until some crafted items haven't been listed in longer than 14 days on your realm, and we need to fix that. Here's the new version, and I'll explain after the jump.first(dbminbuyout, dbmarket, dbregionmarketavg, dbhistorical, dbregionhistorical)
You'll notice I added a few things. In order, TSM will continue from before, now checking the average market value across your region (US or EU), your realm's 60 day market value history, or the region's 60 day market value history. If a crafted item hasn't been seen in over 60 days either locally or across the region, it probably shouldn't be crafted.
Last, let's make crafting profitable, or at least only craft things that have a profit. I'm going to use a minimum of 10% mark up, but I will show you how to make things more advanced further on after the basic setup.
You need to make a Crafting Operation, and in the minimum profit field, replace whatever is there (default 100g) with 10% crafting
as dealing with a float number is better than a fixed gold amount, especially since most things do not have a flat gold amount of minimum profit per item, especially not as much as 100g!
Assign the operation to your crafted items group, open the TSM crafting UI, Groups tab, select the group, and click Restock. If you then click the Gathering tab, Open Task List button, you will see everything you need to get to complete the queue.
Nice! But what about more advanced things, like the auction house cut of 5% when an item sells, or its fee to list the item (which you get back if the item sells)? We can do that.
You could adjust the DCVM, but I don't like doing that because then what you see on your tooltip is going to be wrong compared to what you see when you actually look at the auction house. Instead, let's modify the Crafting Operation's minimum profit field.10% crafting / 0.95 + 60% first(vendorsell, 1s)
The / 0.95 is the 5% cut when the item sells, and + first(vendorsell, 1s) is the listing fee. The percent is calculated as follows:
- 15% for every 12 hours in retail (15% for 12 hours, 30% for 24, 60% for 48)
- 5% for every 2 hours in classic (5% for 2 hours, 20% for 8, 60% for 24)
Use whatever percent matches your auction operation's duration.
What about items that have a low sale rate? Shouldn't you have a higher profit margin just in case you have to list the item several times? Yes, sure, we can do that. We will use a ifgte (if greater than or equal to) and wrap it around the minimum profit field. It will get longer to read, but it will work. Modify the Crafting Operation's minimum profit field again:
ifgte(dbregionsalerate, 0.2, 10% crafting / 0.95 + 60% first(vendorsell, 1s), 20% crafting / 0.95 + 60% first(vendorsell, 1s))
If the region's sale rate is >= 0.2 or about 20%, use 10% minimum profit, but if the region's sale rate is < 0.2 use 20% minimum profit. Adjust the sale rate and percent profit to your liking.
Hopefully some of you goblins will find this useful. If you have questions, feel free to ask here, or in the Discord. I am Sygon/Paul on there, but there is no need to ping me directly.