RSS

Part 7: Price sources, custom price sources

What is the value of an item? That is up to you to define, allthough you got some pretty nifty tools to help you out. Remember that there are no mathematical laws in economics, since the marketplace is made up of people. And people act on experiences and emotions, not arbitrary laws that does not exists. But there is math.

An item has a value. In real life we say that the value of something is what another is willing to pay to aquire it. Different people have different value-scales. A musician may value his guitar at 3 kryptonite – but me, being no musician, would trade it in for a 2 kryptonite car in a heartbeat. The market is the sum of all people, and the market decides the value. Supply and demand.

Keeping track of that value can be tricky, which is why we got price sources to help us with that. A price source is a string that will produce a value for an item based on certain conditions.
TSM har some custom price settings built in;

  • DBMarket (returns the market value of the item calculated from AuctionDB. Relying on this alone can sometimes be scary. This comes from your windows application you installed earlier and contains TONS of raw data.) http://tradeskillmaster.com/wiki/index.php?title=AuctionDB_Market_Value shows how this calculation is done.
    http://stormspire.net/blogs/sapu94/ explains in 3 parts how this code is optimized in-game to not slow you down. If you are a true goblin and/or geek, you should reath both links.
  • DBMinBuyout (returns the value of the cheapest item on the auction house during last scan, usually lower than DBMarket, can be scary when it is not)
  • matPrice (returns the cost of the item in question as defined by YOU in the auction operations tab) – this is a call to return Default Material Cost Method OR the custom override you can do yourself in crafting-> materials.
  • Crafting (returns the crafting cost of the item if you are able to craft it, as in sum of all the matPrice’s involved in the recipe)
  • vendorsell (returns the value for selling to vendor)
  • vendorbuy (returns the value for buying from vendor)
  • avgbuy (the average price you have paid for said item if you have been buying it on AH, will return nil if there is no history of you buying. Very skewed on low quantities, very good on large ones)
  • avgsell (same as buy, difference being you selling them on ah. Based on accountants records.)

In addition, these can be manipulated further by prefixes like
min(avgsell, dbminbuyout)
max(crafting,dbmarket)
avg(vendorsell,dbmarket)
first(crafting,dbmarket)

Percentages can also be prefixed to skew values, like
90% dbmarket.

You can also add or subtract static amounts of gold, and multiply and divide, like
105% Crafting +10g

Now let’s just move on to what may be the single most important window in TSM 2. Third icon, the bolts. Then press crafting.

TSM_Crafting

Crafting operations main window

Now, these general settings are going to act as your default values for all items ingame unless you specify otherwise. That’s why you should have 2 good working formulas in these spots, these formulas should never get stuck and return a “nil” value. I’m talking about:

Default Material Cost Method
This is the formula that is supposed to show you YOUR actual cost in obtaining said item. The Material cost. Basically all your TSM calculations that matters is dependent on this working properly.

Default Craft Value Method
This formula is used to determine the value of items you can craft, i.e. this is the formula that calculates what kind of “profit” you can expect from crafting the various items you can craft with your professions. If you screw this formula up, the only real damage done is the “profit” displayed in the tooltip and in the profession window. It will not hamper your business unless you got minimum profit thresholds on your crafting operations.

Profit – as shown in the crafting window of TSM is Craft Value – Material Cost. Formula 2 – Formula 1.

Let’s analyze further. From this point all formulas are my own, and you may want to use different ones.

Default Material Cost Method
first(min(vendorbuy,buying,avgbuy,crafting),selling,avgsell,dbmarket,dbminbuyout)

The ‘first(‘ returns the first valid value it can get. If it fetches an error (i.e. avgbuy of an item you never bought) it will return nil, which will make first(move on and try to find a proper gold value. It goes on to calculate the first contender in this case:

min(vendorbuy,buying,avgbuy,crafting)
The ‘min(‘ checks all values suggested inside the paranthesis, and returns the lowest one.
Vendorbuy takes care of items like enchanting vellums, pricing them right. Will return error if item cannot be bought at a vendor, forcing the formula to go to the next step looking for a price.
Buying is my own price setting which get’s influenced a bit by dbmarket and dbminbuyout to catch upgoing and downgoing trends, but it can be safely omitted for now.
Avgbuy will produce a value for items you have been buying from AH, i.e. enchantingmats, leather, ++. If you haven’t bought this item on AH ever, this will produce an invalid value – forcing the formula to go onwards in its quest for a proper price of the item.
Crafting will produce a value for items you can craft yourself, given that all the ingredients in the craft have values of their own (which is also dependent on this formula working correctly). If you can not craft this item, this will produce an invalid value as well.

So, if the item in question can be bought from vendor, you can craft it, or you have bought some lately – it will take the lowest of those prices and return as the items value. If ALL of these produce invalid values, the formula goes on, with the first( still looking for a valid value to return.

Next up is selling,avgsell,dbmarket,dbminbuyout
Selling is my own, kind of the same as Buying, taking in some market influence as well. Can safely be omitted for now.
Avgsell will return the average value of your previous sales of the item, if you have sold any lately. If you haven’t sold any of this item, the formula will go to the next step to try to get a price. In this case, the last resort.
DBMarket will check to see if there is a market value available for said item, which there usually is.
DBMinbuyout is there as the last hope if all the other produce ‘nil’-values.

This should ensure that all the items like enchanting mats, cloth, ore, gems, you name it – you should be able so see a pretty realistic value of the item.

Custom price sources

TSM_Custom1

Custom price sources found in the general options menu

In the first tab in the TSM Main window, you have a tab in red font: Custom Price Sources

Like the sources ‘DBMarket’ and ‘DBMinbuyout’ you can here define your own price sources to be called upon from anywhere else in the addon. This feature was originally not in TSM, but it was added quite recently. I have made some of my own, which I will share with you here so you can get a picture of what can be done. Again, these are my way of running my show – you may prefer another approach.

dbavg
I like both the market value and minimum buyout, but sometimes I want to account for both of them, like an average between the two. I made:

  • dbavg [min ( (30% dbminbuyout + 70% dbmarket) , (50% dbminbuyout + 50% dbmarket) , (70% dbminbuyout + 30% dbmarket) )]

Sometimes, for no apparent reason – one of these values can be missing from AuctionDB, which will leave you with only half of one value, which is why it’s important to have failsafes in place.

buying
Pricing an item you buy a lot of can be pretty hard, especially when the market price and dbminbuyout swings violently, so I wanted a litte more stable source for such items. I made the following 3 custom sources:

  • buyhigh: [30% dbavg + 70% avgbuy] <– note how I call my first new source ‘dbavg‘ into this.
  • buymid: [50% dbavg + 50% avgbuy]
  • buylow: [70% dbavg + 30% avgbuy]
    These three incorporates a varying degree of market value into my buying record of the item.
  • buying: [min(buyhigh, buymid, buylow, dbavg)]
    This will take the lowest value of all these combinations and return that. dbavg is added to end to prevent error in case item has never been bought.

buying is the price source I now use for stuff that I buy in quantities from AH, making sure the price gets nudged a little bit in the right direction with regards to the market – but not overly much. So far it has been working good.

selling
Same principle as buying, but not as complicated – due to buying price being used in the all-important crafting calculations, selling will mostly be used to produce a theoretical value of an item – what you can expect it to be sold for.
AvgSell will give you the average of your own sales, but does nothing to account for where the market is today.

  • selling: [first((50% avgsell + 50% dbavg),avgsell)]

This throws in 50% weight on where the market is lately and today.

mymarket
Since I don’t go around remembering the Default Craft Value Method and TSM don’t have it built-in, I copy the Default Craft Value Method to make the new source mymarket.

  • mymarket: first(min(buying,selling,dbavg),avgbuy,avgsell,matprice,dbmarket,dbminbuyout,vendorsell)
    this is primarily used as a failsafe to get SOME value to keep another formula from crashing.

The function of this line is to try as accurately as possible to define the value of an item in the current economy. What it is worth in the common marketplace.

mycraft
For stuff I can craft myself, instead of Crafting, i use mycraft for an extra fallback in case something goes wrong (a craft with some new item which doesn’t have a market value)

  • first(crafting,mymarket)

shuffle
This is a bit next level, but if you are shuffling large amounts of ore to produce about all of the rare gems that you use – you could define the value of rare gems + mysterious essence + spirit dust as follows:

  • shuffle: ((dbmarket/((dbmarket(item:76131)+dbmarket(item:76138)+dbmarket(item:76142)+dbmarket(item:76141)+dbmarket(item:76139)+dbmarket(item:76140)+(27*dbmarket(item:74249))+(2*dbmarket(item:74250)))))*(avgbuy(item:72092)*120))

This formula would have to be inserted manually into the crafting -> materials price for the 6 rare raw gems, spirit dust, and mysterious essence.

This basically checks the market price for all 6 raw rare gems, 2 mysterious essence, and 27 spirit dust (from enchanting byproduct from the shuffle) and measures it up against 6 stack of Ghost Iron Ore (which is what you need to prospect to get those materials). This will keep the prices proportional to eachother (blue gem a lot cheaper than orange gem, etc.), while still in line with the prices for ghost iron ore. This will tell you if shuffling is worth the trouble, or if you could just stockpile raw gems directly from AH.

Neat.

Part 8: Auctioning operations

 

10 responses to “Part 7: Price sources, custom price sources

  1. David Rice

    03/01/2014 at 06:58

    This was extremely helpful and helped me streamline my pricing options. The problem I had was anytime I wanted to change my pricing structure I would have to change the formula in each auctioning operation. With your custom sources guide I created an Auctionmin, auctionnorm, auctionmax, auctionUC, then in my auction operations I just listed those as the source. Now anytime I need to tweak my auction prices all I have to do is change the custom source formula and it will change for everything at once.

     
  2. David Rice

    03/01/2014 at 07:07

    For example:

    AuctionMin
    avg(125% vendorsell, 85% avgsell, 85% dbavg, 85% wowuctionavg, 85% mymarket)

    The only issue I have at the moment with this is Balanced Wild Jade has a vendor sell price of 8g and due to a data issue wowuctionmarket is showing a value of 2g which is throwing my min price below VendorSell price but only for this one gem….

     
    • thelunchmoney

      03/01/2014 at 19:16

      Well, my friend, you go at it all wrong.
      If you want to make sure that vendorsell is the pricefloor, you should do something like:

      min(125% vendorsell,avg(85% avgsell, 85% dbavg, 85% wowuctionavg, 85% mymarket)

      This would make 125% vendorsell an absolute pricefloor.

       
  3. David Rice

    08/01/2014 at 19:29

    Good point….. I want to ensure I am not posting below vendorsell but I don’t want to post a super low min price when someone else makes a mistake in their posting.

    The issues I have are the prices from the different sources are so off from each source that it makes it difficult to use a single source. For example

    Bold Primoridal Ruby
    TSM AuctionDB market 159g
    TSM Min Buyout 399g
    Wowuction realm Market 95g
    Wowuction region market 68g
    Undermine Journel market latest 96g
    avgsell 91g
    maxsell 110g

    I have sold these from 81g-110g
    Today’s AH prices are 140g, 280g, 399g —myauction is the 140g which is showing as 146% market value.

    Suggestions?

     
    • thelunchmoney

      08/01/2014 at 21:05

      I suggest to not pay too much attention to the potential value of cut gems, but keep the focus on the actual cost of obtaining the raw gem – since that’s the important part.

      How do you obtain your gems?

      Like in your example above, it shouldn’t concern your business at all that the current min buyout on the strength-cut goes for 399g just now, because your cost of obtaining a raw prim ruby probably hasn’t changed too much.

      You can always make auctioning operations that will follow these 399g-price all the way up to even higher levels, the important part is the minumum – and THAT should be heavily influenced by your cost of obtaining raw materials.

       
  4. David Rice

    09/01/2014 at 00:35

    I obtain my raw gems through Ghost Iron Ore JC Shuffle: Formula from Kathroman

    95%(((((dbmarket(item:76136)*0.2)+((((((((dbmarket(item:74249))*2.2)+((dbmarket(item:74250))*0.3))*1.15)*0.9)+(max(first(dbmarket(item:90905),500000),dbmarket(item:90905))*0.1)-(11000))/3)*0.2)+(((((max(first(dbmarket(item:76630),100000),dbmarket(item:76630))+max(first(dbmarket(item:76628),100000),dbmarket(item:76628))+max(first(dbmarket(item:76626),100000),dbmarket(item:76626))+max(first(dbmarket(item:76629),100000),dbmarket(item:76629))+max(first(dbmarket(item:76627),100000),dbmarket(item:76627)))/5)*0.1)+(8500*0.9))*0.2)+((((((dbmarket(item:76131)*0.25)+(((max(first(dbmarket(item:76696),200000),dbmarket(item:76696))+max(first(dbmarket(item:76694),200000),dbmarket(item:76694))+max(first(dbmarket(item:76692),200000),dbmarket(item:76692))+max(first(dbmarket(item:76695),200000),dbmarket(item:76695))+max(first(dbmarket(item:76693),200000),dbmarket(item:76693)))/5)*0.25)+((((dbmarket(item:74247)*1.15)-(dbmarket(item:76734)*6)-(11000))/2)*0.25)+(((max(first(dbmarket(item:83799),1000000),dbmarket(item:83799))-(dbmarket(item:76734)*6)-(11000))/2)*0.25)))-(dbmarket(item:72238)))*1.2)*0.2)+(((max(first(dbmarket(item:83803),500000),dbmarket(item:83803))-(dbmarket(item:76734)*6)-(11000))/6)*0.2)))*1)+((((dbmarket(item:76133)*0.25)+((((((((dbmarket(item:74249))*2.2)+((dbmarket(item:74250))*0.3))*1.15)*0.9)+(max(first(dbmarket(item:90904),500000),dbmarket(item:90904))*0.1)-(11000))/3)*0.25)+(((((max(first(dbmarket(item:76570),100000),dbmarket(item:76570))+max(first(dbmarket(item:76573),100000),dbmarket(item:76573))+max(first(dbmarket(item:76572),100000),dbmarket(item:76572))+max(first(dbmarket(item:76571),100000),dbmarket(item:76571)))/4)*0.1)+(8500*0.9))*0.25)+((((((dbmarket(item:76138)*0.25)+(((max(first(dbmarket(item:76636),200000),dbmarket(item:76636))+max(first(dbmarket(item:76639),200000),dbmarket(item:76639))+max(first(dbmarket(item:76638),200000),dbmarket(item:76638))+max(first(dbmarket(item:76637),200000),dbmarket(item:76637)))/4)*0.25)+((((dbmarket(item:74247)*1.15)-(dbmarket(item:76734)*6)-(11000))/2)*0.25)+(((max(first(dbmarket(item:83802),1000000),dbmarket(item:83802))-(dbmarket(item:76734)*6)-(11000))/2)*0.25)))-(dbmarket(item:72238)))*1.2)*0.25)))*1)+((((dbmarket(item:76134)*0.2)+((((((((dbmarket(item:74249))*2.2)+((dbmarket(item:74250))*0.3))*1.15)*0.9)+(max(first(dbmarket(item:90904),500000),dbmarket(item:90904))*0.1)-(11000))/3)*0.2)+(((((max(first(dbmarket(item:76634),100000),dbmarket(item:76634))+max(first(dbmarket(item:76635),100000),dbmarket(item:76635))+max(first(dbmarket(item:76633),100000),dbmarket(item:76633))+max(first(dbmarket(item:76631),100000),dbmarket(item:76631))+max(first(dbmarket(item:76632),100000),dbmarket(item:76632)))/5)*0.1)+(8500*0.9))*0.2)+((((((dbmarket(item:76142)*0.25)+(((max(first(dbmarket(item:76700),200000),dbmarket(item:76700))+max(first(dbmarket(item:76701),200000),dbmarket(item:76701))+max(first(dbmarket(item:76699),200000),dbmarket(item:76699))+max(first(dbmarket(item:76697),200000),dbmarket(item:76697))+max(first(dbmarket(item:76698),200000),dbmarket(item:76698)))/5)*0.25)+((((dbmarket(item:74247)*1.15)-(dbmarket(item:76734)*6)-(11000))/2)*0.25)+(((max(first(dbmarket(item:83800),1000000),dbmarket(item:83800))-(dbmarket(item:76734)*6)-(11000))/2)*0.25)))-(dbmarket(item:72238)))*1.2)*0.2)+(((max(first(dbmarket(item:83804),500000),dbmarket(item:83804))-(dbmarket(item:76734)*6)-(11000))/6)*0.2)))*1)+((((dbmarket(item:76135)*0.2)+((((((((dbmarket(item:74249))*2.2)+((dbmarket(item:74250))*0.3))*1.15)*0.9)+(max(first(dbmarket(item:90905),500000),dbmarket(item:90905))*0.1)-(11000))/3)*0.2)+(((((max(first(dbmarket(item:76615),100000),dbmarket(item:76615))+max(first(dbmarket(item:89679),100000),dbmarket(item:89679))+max(first(dbmarket(item:76624),100000),dbmarket(item:76624))+max(first(dbmarket(item:76618),100000),dbmarket(item:76618))+max(first(dbmarket(item:76614),100000),dbmarket(item:76614))+max(first(dbmarket(item:76622),100000),dbmarket(item:76622))+max(first(dbmarket(item:76619),100000),dbmarket(item:76619))+max(first(dbmarket(item:76620),100000),dbmarket(item:76620))+max(first(dbmarket(item:76617),100000),dbmarket(item:76617))+max(first(dbmarket(item:76621),100000),dbmarket(item:76621))+max(first(dbmarket(item:76625),100000),dbmarket(item:76625))+max(first(dbmarket(item:89676),100000),dbmarket(item:89676))+max(first(dbmarket(item:76623),100000),dbmarket(item:76623))+max(first(dbmarket(item:76616),100000),dbmarket(item:76616)))/14)*0.1)+(8500*0.9))*0.2)+((((((dbmarket(item:76141)*0.2)+(((max(first(dbmarket(item:76681),200000),dbmarket(item:76681))+max(first(dbmarket(item:89680),200000),dbmarket(item:89680))+max(first(dbmarket(item:76690),200000),dbmarket(item:76690))+max(first(dbmarket(item:76684),200000),dbmarket(item:76684))+max(first(dbmarket(item:76680),200000),dbmarket(item:76680))+max(first(dbmarket(item:76688),200000),dbmarket(item:76688))+max(first(dbmarket(item:76685),200000),dbmarket(item:76685))+max(first(dbmarket(item:76686),200000),dbmarket(item:76686))+max(first(dbmarket(item:76683),200000),dbmarket(item:76683))+max(first(dbmarket(item:76687),200000),dbmarket(item:76687))+max(first(dbmarket(item:76691),200000),dbmarket(item:76691))+max(first(dbmarket(item:89674),200000),dbmarket(item:89674))+max(first(dbmarket(item:76689),200000),dbmarket(item:76689))+max(first(dbmarket(item:76682),200000),dbmarket(item:76682)))/14)*0.2)+((((dbmarket(item:74247)*1.15)-(dbmarket(item:76734)*6)-(11000))/2)*0.2)+(((max(first(dbmarket(item:83805),1000000),dbmarket(item:83805))-(dbmarket(item:76734)*6)-(11000))/2)*0.2)+((((max(first(dbmarket(item:76132),1000000),dbmarket(item:76132))+max(first(dbmarket(item:76884),1000000),dbmarket(item:76884))+max(first(dbmarket(item:76895),1000000),dbmarket(item:76895))+max(first(dbmarket(item:76885),1000000),dbmarket(item:76885))+max(first(dbmarket(item:76890),1000000),dbmarket(item:76890))+max(first(dbmarket(item:76897),1000000),dbmarket(item:76897))+max(first(dbmarket(item:76879),1000000),dbmarket(item:76879))+max(first(dbmarket(item:76892),1000000),dbmarket(item:76892))+max(first(dbmarket(item:76896),1000000),dbmarket(item:76896))+max(first(dbmarket(item:76887),1000000),dbmarket(item:76887))+max(first(dbmarket(item:76894),1000000),dbmarket(item:76894))+max(first(dbmarket(item:76893),1000000),dbmarket(item:76893))+max(first(dbmarket(item:76891),1000000),dbmarket(item:76891))+max(first(dbmarket(item:76886),1000000),dbmarket(item:76886))+max(first(dbmarket(item:76888),1000000),dbmarket(item:76888)))/15)*1.2/6)*0.2)))-(dbmarket(item:72238)))*1.2)*0.2)+(((max(first(dbmarket(item:83798),1000000),dbmarket(item:83798))-(dbmarket(item:76734)*6)-(11000))/6)*0.2)))*1)+((((dbmarket(item:76130)*0.2)+((((((((dbmarket(item:74249))*2.2)+((dbmarket(item:74250))*0.3))*1.15)*0.9)+(max(first(dbmarket(item:90904),500000),dbmarket(item:90904))*0.1)-(11000))/3)*0.2)+(((((max(first(dbmarket(item:76604),100000),dbmarket(item:76604))+max(first(dbmarket(item:76606),100000),dbmarket(item:76606))+max(first(dbmarket(item:76599),100000),dbmarket(item:76599))+max(first(dbmarket(item:76593),100000),dbmarket(item:76593))+max(first(dbmarket(item:76592),100000),dbmarket(item:76592))+max(first(dbmarket(item:76600),100000),dbmarket(item:76600))+max(first(dbmarket(item:76603),100000),dbmarket(item:76603))+max(first(dbmarket(item:76607),100000),dbmarket(item:76607))+max(first(dbmarket(item:76595),100000),dbmarket(item:76595))+max(first(dbmarket(item:76605),100000),dbmarket(item:76605))+max(first(dbmarket(item:76609),100000),dbmarket(item:76609))+max(first(dbmarket(item:76596),100000),dbmarket(item:76596))+max(first(dbmarket(item:76594),100000),dbmarket(item:76594))+max(first(dbmarket(item:76602),100000),dbmarket(item:76602))+max(first(dbmarket(item:76597),100000),dbmarket(item:76597))+max(first(dbmarket(item:76613),100000),dbmarket(item:76613))+max(first(dbmarket(item:76608),100000),dbmarket(item:76608))+max(first(dbmarket(item:76612),100000),dbmarket(item:76612))+max(first(dbmarket(item:76598),100000),dbmarket(item:76598))+max(first(dbmarket(item:76610),100000),dbmarket(item:76610))+max(first(dbmarket(item:76601),100000),dbmarket(item:76601))+max(first(dbmarket(item:76611),100000),dbmarket(item:76611)))/22)*0.1)+(8500*0.9))*0.2)+((((((dbmarket(item:76140)*0.2)+(((max(first(dbmarket(item:76670),200000),dbmarket(item:76670))+max(first(dbmarket(item:76672),200000),dbmarket(item:76672))+max(first(dbmarket(item:76665),200000),dbmarket(item:76665))+max(first(dbmarket(item:76659),200000),dbmarket(item:76659))+max(first(dbmarket(item:76658),200000),dbmarket(item:76658))+max(first(dbmarket(item:76666),200000),dbmarket(item:76666))+max(first(dbmarket(item:76669),200000),dbmarket(item:76669))+max(first(dbmarket(item:76673),200000),dbmarket(item:76673))+max(first(dbmarket(item:76661),200000),dbmarket(item:76661))+max(first(dbmarket(item:76671),200000),dbmarket(item:76671))+max(first(dbmarket(item:76675),200000),dbmarket(item:76675))+max(first(dbmarket(item:76662),200000),dbmarket(item:76662))+max(first(dbmarket(item:76660),200000),dbmarket(item:76660))+max(first(dbmarket(item:76668),200000),dbmarket(item:76668))+max(first(dbmarket(item:76663),200000),dbmarket(item:76663))+max(first(dbmarket(item:76679),200000),dbmarket(item:76679))+max(first(dbmarket(item:76674),200000),dbmarket(item:76674))+max(first(dbmarket(item:76678),200000),dbmarket(item:76678))+max(first(dbmarket(item:76664),200000),dbmarket(item:76664))+max(first(dbmarket(item:76676),200000),dbmarket(item:76676))+max(first(dbmarket(item:76667),200000),dbmarket(item:76667))+max(first(dbmarket(item:76677),200000),dbmarket(item:76677)))/22)*0.2)+((((dbmarket(item:74247)*1.15)-(dbmarket(item:76734)*6)-(11000))/2)*0.2)+(((max(first(dbmarket(item:83801),1000000),dbmarket(item:83801))-(dbmarket(item:76734)*6)-(11000))/2)*0.2)+((((max(first(dbmarket(item:76132),1000000),dbmarket(item:76132))+max(first(dbmarket(item:76884),1000000),dbmarket(item:76884))+max(first(dbmarket(item:76895),1000000),dbmarket(item:76895))+max(first(dbmarket(item:76885),1000000),dbmarket(item:76885))+max(first(dbmarket(item:76890),1000000),dbmarket(item:76890))+max(first(dbmarket(item:76897),1000000),dbmarket(item:76897))+max(first(dbmarket(item:76879),1000000),dbmarket(item:76879))+max(first(dbmarket(item:76892),1000000),dbmarket(item:76892))+max(first(dbmarket(item:76896),1000000),dbmarket(item:76896))+max(first(dbmarket(item:76887),1000000),dbmarket(item:76887))+max(first(dbmarket(item:76894),1000000),dbmarket(item:76894))+max(first(dbmarket(item:76893),1000000),dbmarket(item:76893))+max(first(dbmarket(item:76891),1000000),dbmarket(item:76891))+max(first(dbmarket(item:76886),1000000),dbmarket(item:76886))+max(first(dbmarket(item:76888),1000000),dbmarket(item:76888)))/15)*1.2/6)*0.2)))-(dbmarket(item:72238)))*1.2)*0.2)+(((max(first(dbmarket(item:83806),500000),dbmarket(item:83806))-(dbmarket(item:76734)*6)-(11000))/6)*0.2)))*1)+((((dbmarket(item:76137)*0.25)+((((((((dbmarket(item:74249))*2.2)+((dbmarket(item:74250))*0.3))*1.15)*0.9)+(max(first(dbmarket(item:90905),500000),dbmarket(item:90905))*0.1)-(11000))/3)*0.25)+(((((max(first(dbmarket(item:76580),100000),dbmarket(item:76580))+max(first(dbmarket(item:76589),100000),dbmarket(item:76589))+max(first(dbmarket(item:76578),100000),dbmarket(item:76578))+max(first(dbmarket(item:76585),100000),dbmarket(item:76585))+max(first(dbmarket(item:76588),100000),dbmarket(item:76588))+max(first(dbmarket(item:76586),100000),dbmarket(item:76586))+max(first(dbmarket(item:76576),100000),dbmarket(item:76576))+max(first(dbmarket(item:76574),100000),dbmarket(item:76574))+max(first(dbmarket(item:93707),100000),dbmarket(item:93707))+max(first(dbmarket(item:76575),100000),dbmarket(item:76575))+max(first(dbmarket(item:76590),100000),dbmarket(item:76590))+max(first(dbmarket(item:76583),100000),dbmarket(item:76583))+max(first(dbmarket(item:76587),100000),dbmarket(item:76587))+max(first(dbmarket(item:76577),100000),dbmarket(item:76577))+max(first(dbmarket(item:76584),100000),dbmarket(item:76584))+max(first(dbmarket(item:76591),100000),dbmarket(item:76591))+max(first(dbmarket(item:76582),100000),dbmarket(item:76582))+max(first(dbmarket(item:76581),100000),dbmarket(item:76581))+max(first(dbmarket(item:76579),100000),dbmarket(item:76579)))/19)*0.1)+(8500*0.9))*0.25)+((((((dbmarket(item:76139)*0.2)+(((max(first(dbmarket(item:76646),200000),dbmarket(item:76646))+max(first(dbmarket(item:76644),200000),dbmarket(item:76644))+max(first(dbmarket(item:76651),200000),dbmarket(item:76651))+max(first(dbmarket(item:76654),200000),dbmarket(item:76654))+max(first(dbmarket(item:76652),200000),dbmarket(item:76652))+max(first(dbmarket(item:76642),200000),dbmarket(item:76642))+max(first(dbmarket(item:76640),200000),dbmarket(item:76640))+max(first(dbmarket(item:93705),200000),dbmarket(item:93705))+max(first(dbmarket(item:76641),200000),dbmarket(item:76641))+max(first(dbmarket(item:76656),200000),dbmarket(item:76656))+max(first(dbmarket(item:76649),200000),dbmarket(item:76649))+max(first(dbmarket(item:76653),200000),dbmarket(item:76653))+max(first(dbmarket(item:76643),200000),dbmarket(item:76643))+max(first(dbmarket(item:76650),200000),dbmarket(item:76650))+max(first(dbmarket(item:76657),200000),dbmarket(item:76657))+max(first(dbmarket(item:76648),200000),dbmarket(item:76648))+max(first(dbmarket(item:76647),200000),dbmarket(item:76647))+max(first(dbmarket(item:76645),200000),dbmarket(item:76645)))/18)*0.2)+((((dbmarket(item:74247)*1.15)-(dbmarket(item:76734)*6)-(11000))/2)*0.2)+(((max(first(dbmarket(item:83796),1000000),dbmarket(item:83796))-(dbmarket(item:76734)*6)-(11000))/2)*0.2)+((((max(first(dbmarket(item:76132),1000000),dbmarket(item:76132))+max(first(dbmarket(item:76884),1000000),dbmarket(item:76884))+max(first(dbmarket(item:76895),1000000),dbmarket(item:76895))+max(first(dbmarket(item:76885),1000000),dbmarket(item:76885))+max(first(dbmarket(item:76890),1000000),dbmarket(item:76890))+max(first(dbmarket(item:76897),1000000),dbmarket(item:76897))+max(first(dbmarket(item:76879),1000000),dbmarket(item:76879))+max(first(dbmarket(item:76892),1000000),dbmarket(item:76892))+max(first(dbmarket(item:76896),1000000),dbmarket(item:76896))+max(first(dbmarket(item:76887),1000000),dbmarket(item:76887))+max(first(dbmarket(item:76894),1000000),dbmarket(item:76894))+max(first(dbmarket(item:76893),1000000),dbmarket(item:76893))+max(first(dbmarket(item:76891),1000000),dbmarket(item:76891))+max(first(dbmarket(item:76886),1000000),dbmarket(item:76886))+max(first(dbmarket(item:76888),1000000),dbmarket(item:76888)))/15)*1.2/6)*0.2)))-(dbmarket(item:72238)))*1.2)*0.25)))*1)+((((dbmarket(item:76131)*0.25)+(((max(first(dbmarket(item:76696),200000),dbmarket(item:76696))+max(first(dbmarket(item:76694),200000),dbmarket(item:76694))+max(first(dbmarket(item:76692),200000),dbmarket(item:76692))+max(first(dbmarket(item:76695),200000),dbmarket(item:76695))+max(first(dbmarket(item:76693),200000),dbmarket(item:76693)))/5)*0.25)+((((dbmarket(item:74247)*1.15)-(dbmarket(item:76734)*6)-(11000))/2)*0.25)+(((max(first(dbmarket(item:83799),1000000),dbmarket(item:83799))-(dbmarket(item:76734)*6)-(11000))/2)*0.25)))*0.17)+((((dbmarket(item:76138)*0.25)+(((max(first(dbmarket(item:76636),200000),dbmarket(item:76636))+max(first(dbmarket(item:76639),200000),dbmarket(item:76639))+max(first(dbmarket(item:76638),200000),dbmarket(item:76638))+max(first(dbmarket(item:76637),200000),dbmarket(item:76637)))/4)*0.25)+((((dbmarket(item:74247)*1.15)-(dbmarket(item:76734)*6)-(11000))/2)*0.25)+(((max(first(dbmarket(item:83802),1000000),dbmarket(item:83802))-(dbmarket(item:76734)*6)-(11000))/2)*0.25)))*0.17)+((((dbmarket(item:76142)*0.25)+(((max(first(dbmarket(item:76700),200000),dbmarket(item:76700))+max(first(dbmarket(item:76701),200000),dbmarket(item:76701))+max(first(dbmarket(item:76699),200000),dbmarket(item:76699))+max(first(dbmarket(item:76697),200000),dbmarket(item:76697))+max(first(dbmarket(item:76698),200000),dbmarket(item:76698)))/5)*0.25)+((((dbmarket(item:74247)*1.15)-(dbmarket(item:76734)*6)-(11000))/2)*0.25)+(((max(first(dbmarket(item:83800),1000000),dbmarket(item:83800))-(dbmarket(item:76734)*6)-(11000))/2)*0.25)))*0.17)+((((dbmarket(item:76141)*0.2)+(((max(first(dbmarket(item:76681),200000),dbmarket(item:76681))+max(first(dbmarket(item:89680),200000),dbmarket(item:89680))+max(first(dbmarket(item:76690),200000),dbmarket(item:76690))+max(first(dbmarket(item:76684),200000),dbmarket(item:76684))+max(first(dbmarket(item:76680),200000),dbmarket(item:76680))+max(first(dbmarket(item:76688),200000),dbmarket(item:76688))+max(first(dbmarket(item:76685),200000),dbmarket(item:76685))+max(first(dbmarket(item:76686),200000),dbmarket(item:76686))+max(first(dbmarket(item:76683),200000),dbmarket(item:76683))+max(first(dbmarket(item:76687),200000),dbmarket(item:76687))+max(first(dbmarket(item:76691),200000),dbmarket(item:76691))+max(first(dbmarket(item:89674),200000),dbmarket(item:89674))+max(first(dbmarket(item:76689),200000),dbmarket(item:76689))+max(first(dbmarket(item:76682),200000),dbmarket(item:76682)))/14)*0.2)+((((dbmarket(item:74247)*1.15)-(dbmarket(item:76734)*6)-(11000))/2)*0.2)+(((max(first(dbmarket(item:83805),1000000),dbmarket(item:83805))-(dbmarket(item:76734)*6)-(11000))/2)*0.2)+((((max(first(dbmarket(item:76132),1000000),dbmarket(item:76132))+max(first(dbmarket(item:76884),1000000),dbmarket(item:76884))+max(first(dbmarket(item:76895),1000000),dbmarket(item:76895))+max(first(dbmarket(item:76885),1000000),dbmarket(item:76885))+max(first(dbmarket(item:76890),1000000),dbmarket(item:76890))+max(first(dbmarket(item:76897),1000000),dbmarket(item:76897))+max(first(dbmarket(item:76879),1000000),dbmarket(item:76879))+max(first(dbmarket(item:76892),1000000),dbmarket(item:76892))+max(first(dbmarket(item:76896),1000000),dbmarket(item:76896))+max(first(dbmarket(item:76887),1000000),dbmarket(item:76887))+max(first(dbmarket(item:76894),1000000),dbmarket(item:76894))+max(first(dbmarket(item:76893),1000000),dbmarket(item:76893))+max(first(dbmarket(item:76891),1000000),dbmarket(item:76891))+max(first(dbmarket(item:76886),1000000),dbmarket(item:76886))+max(first(dbmarket(item:76888),1000000),dbmarket(item:76888)))/15)*1.2/6)*0.2)))*0.17)+((((dbmarket(item:76140)*0.2)+(((max(first(dbmarket(item:76670),200000),dbmarket(item:76670))+max(first(dbmarket(item:76672),200000),dbmarket(item:76672))+max(first(dbmarket(item:76665),200000),dbmarket(item:76665))+max(first(dbmarket(item:76659),200000),dbmarket(item:76659))+max(first(dbmarket(item:76658),200000),dbmarket(item:76658))+max(first(dbmarket(item:76666),200000),dbmarket(item:76666))+max(first(dbmarket(item:76669),200000),dbmarket(item:76669))+max(first(dbmarket(item:76673),200000),dbmarket(item:76673))+max(first(dbmarket(item:76661),200000),dbmarket(item:76661))+max(first(dbmarket(item:76671),200000),dbmarket(item:76671))+max(first(dbmarket(item:76675),200000),dbmarket(item:76675))+max(first(dbmarket(item:76662),200000),dbmarket(item:76662))+max(first(dbmarket(item:76660),200000),dbmarket(item:76660))+max(first(dbmarket(item:76668),200000),dbmarket(item:76668))+max(first(dbmarket(item:76663),200000),dbmarket(item:76663))+max(first(dbmarket(item:76679),200000),dbmarket(item:76679))+max(first(dbmarket(item:76674),200000),dbmarket(item:76674))+max(first(dbmarket(item:76678),200000),dbmarket(item:76678))+max(first(dbmarket(item:76664),200000),dbmarket(item:76664))+max(first(dbmarket(item:76676),200000),dbmarket(item:76676))+max(first(dbmarket(item:76667),200000),dbmarket(item:76667))+max(first(dbmarket(item:76677),200000),dbmarket(item:76677)))/22)*0.2)+((((dbmarket(item:74247)*1.15)-(dbmarket(item:76734)*6)-(11000))/2)*0.2)+(((max(first(dbmarket(item:83801),1000000),dbmarket(item:83801))-(dbmarket(item:76734)*6)-(11000))/2)*0.2)+((((max(first(dbmarket(item:76132),1000000),dbmarket(item:76132))+max(first(dbmarket(item:76884),1000000),dbmarket(item:76884))+max(first(dbmarket(item:76895),1000000),dbmarket(item:76895))+max(first(dbmarket(item:76885),1000000),dbmarket(item:76885))+max(first(dbmarket(item:76890),1000000),dbmarket(item:76890))+max(first(dbmarket(item:76897),1000000),dbmarket(item:76897))+max(first(dbmarket(item:76879),1000000),dbmarket(item:76879))+max(first(dbmarket(item:76892),1000000),dbmarket(item:76892))+max(first(dbmarket(item:76896),1000000),dbmarket(item:76896))+max(first(dbmarket(item:76887),1000000),dbmarket(item:76887))+max(first(dbmarket(item:76894),1000000),dbmarket(item:76894))+max(first(dbmarket(item:76893),1000000),dbmarket(item:76893))+max(first(dbmarket(item:76891),1000000),dbmarket(item:76891))+max(first(dbmarket(item:76886),1000000),dbmarket(item:76886))+max(first(dbmarket(item:76888),1000000),dbmarket(item:76888)))/15)*1.2/6)*0.2)))*0.17)+((((dbmarket(item:76139)*0.2)+(((max(first(dbmarket(item:76646),200000),dbmarket(item:76646))+max(first(dbmarket(item:76644),200000),dbmarket(item:76644))+max(first(dbmarket(item:76651),200000),dbmarket(item:76651))+max(first(dbmarket(item:76654),200000),dbmarket(item:76654))+max(first(dbmarket(item:76652),200000),dbmarket(item:76652))+max(first(dbmarket(item:76642),200000),dbmarket(item:76642))+max(first(dbmarket(item:76640),200000),dbmarket(item:76640))+max(first(dbmarket(item:93705),200000),dbmarket(item:93705))+max(first(dbmarket(item:76641),200000),dbmarket(item:76641))+max(first(dbmarket(item:76656),200000),dbmarket(item:76656))+max(first(dbmarket(item:76649),200000),dbmarket(item:76649))+max(first(dbmarket(item:76653),200000),dbmarket(item:76653))+max(first(dbmarket(item:76643),200000),dbmarket(item:76643))+max(first(dbmarket(item:76650),200000),dbmarket(item:76650))+max(first(dbmarket(item:76657),200000),dbmarket(item:76657))+max(first(dbmarket(item:76648),200000),dbmarket(item:76648))+max(first(dbmarket(item:76647),200000),dbmarket(item:76647))+max(first(dbmarket(item:76645),200000),dbmarket(item:76645)))/18)*0.2)+((((dbmarket(item:74247)*1.15)-(dbmarket(item:76734)*6)-(11000))/2)*0.2)+(((max(first(dbmarket(item:83796),1000000),dbmarket(item:83796))-(dbmarket(item:76734)*6)-(11000))/2)*0.2)+((((max(first(dbmarket(item:76132),1000000),dbmarket(item:76132))+max(first(dbmarket(item:76884),1000000),dbmarket(item:76884))+max(first(dbmarket(item:76895),1000000),dbmarket(item:76895))+max(first(dbmarket(item:76885),1000000),dbmarket(item:76885))+max(first(dbmarket(item:76890),1000000),dbmarket(item:76890))+max(first(dbmarket(item:76897),1000000),dbmarket(item:76897))+max(first(dbmarket(item:76879),1000000),dbmarket(item:76879))+max(first(dbmarket(item:76892),1000000),dbmarket(item:76892))+max(first(dbmarket(item:76896),1000000),dbmarket(item:76896))+max(first(dbmarket(item:76887),1000000),dbmarket(item:76887))+max(first(dbmarket(item:76894),1000000),dbmarket(item:76894))+max(first(dbmarket(item:76893),1000000),dbmarket(item:76893))+max(first(dbmarket(item:76891),1000000),dbmarket(item:76891))+max(first(dbmarket(item:76886),1000000),dbmarket(item:76886))+max(first(dbmarket(item:76888),1000000),dbmarket(item:76888)))/15)*1.2/6)*0.2)))*0.17)+((dbmarket(item:76734))*0.39))/20

     
  5. David Rice

    11/01/2014 at 00:08

    ACK….sorry about posting so much junk above…

     
  6. llleif

    25/02/2015 at 08:58

    Hi,

    I tried to get a price for Hexweave Cloth. So I made this formular as average off all item made of it in consideration of the other materials. I hope to get nothing wrong. If the formular works right (you are free to check 😉 ) you can calculate a matPrice after substracting your personal profit für cloth items:

    (((dbmarket(item:168847)-dbmarket(item:109218))/100)+
    ((dbmarket(item:168856)-(dbmarket(item:113264)*40)-(dbmarket(item:118472)*15))/200)+
    ((dbmarket(item:168842)-dbmarket(item:111557))/100)+
    ((dbmarket(item:168855)-(dbmarket(item:113262)*30)-(dbmarket(item:118472)*15))/150)+
    ((dbmarket(item:168839)-(dbmarket(item:110609)*4))/100)+
    ((dbmarket(item:168838)-(dbmarket(item:109119)*5))/100)+
    ((dbmarket(item:168844)-(dbmarket(item:110609)*3))/100)+
    ((dbmarket(item:168840)-(dbmarket(item:110609)*2))/100)+
    ((dbmarket(item:168837)-(dbmarket(item:109119)*10))/100)+
    ((dbmarket(item:168841)-(dbmarket(item:111557)*10))/100)+
    ((dbmarket(item:168843)-(dbmarket(item:110609)*2))/100)+
    ((dbmarket(item:168848)-(dbmarket(item:113263)*10))/100)+
    ((dbmarket(item:168845)-dbmarket(item:109219))/100)+
    ((dbmarket(item:168846)-dbmarket(item:109217))/100)+
    ((dbmarket(item:181418)-(dbmarket(item:113263)*40)-(dbmarket(item:118472)*30))/100))/15

     
  7. llleif

    27/02/2015 at 07:55

    I found an easier way -.-

    Hexweave Cloth
    (50*dbmarket(item:111557)+10*dbmarket(item:109126))/(6*1+5)

    from: http://stormspire.net/professions/15916-%5Bwod%5D-tsm-custom-prices-cd-mats.html

    But I have a question on vendorbuy in your formular Default Material Cost Method
    You wrote: Will return error if item cannot be bought at a vendor, forcing the formula to go to the next step looking for a price. –> Is the next step the buying in min() or the selling in first()?

    Same for crafting. You wrote invalid. Where ist the differences to nil?

    Thanks a lot for this wonderful guide!

     

Reply to this nonsense

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: