These forums have been archived and are now read-only.

The new forums are live and can be found at https://forums.eveonline.com/

Science & Industry

 
  • Topic is locked indefinitely.
 

Spreadsheet help

Author
CJ Alland
CB Trading
#1 - 2014-09-30 11:34:58 UTC  |  Edited by: CJ Alland
I've recently tried to update all my old spreadsheets to be compatible with the new update. I've been struggling for a few hours now.

I'm using this as a guide - http://eve-industry.org/export/IndustryFormulas.pdf
http://community.eveonline.com/news/dev-blogs/industry-3rd-party-developers/?_ga=1.145189238.330099233.1412076317

The most glaring issue I'm having is, whats the base job costs? I'm sure I'm going to have more issues, but to get things moving that is the first thing I need to know :)

Here's my spreadsheet - https://docs.google.com/spreadsheets/d/11bjThXGShW2JNcPKe19XCFgUaigQdt6J0Mzjr6kTpgA/edit?usp=sharing

any help would be great. thanks.
Dwissi
Miners Delight Reborn
#2 - 2014-09-30 11:57:12 UTC  |  Edited by: Dwissi
You will have to adjust to the models that where introduced with the last major update that changed industry calculations quite a lot.

Most importantly in your case is the change that applies a 'system cost' modifier to each and every job you install. The short version is that each system has a value now that is calculated as a friction of every job installed in all of eve. Meaning: systems with a lot of jobs being installed during the last month will have a higher modifier than systems with just a few jobs during that period.

The infos you would need for that are mainly delivered by the CREST API and reading through this (especially the section 'basic pricing) (Industry - all you need to know dev blog might be a good start.

If thats too short this dev blog the price of changes might be even better as it contains all the formula you would need basically

And this is the tl;dr; version -> base pricing formula

Proud designer of glasses for geeky dovakins

Before someone complains again: grr everyone

Greed is the death of loyalty

Lateralus
War Supplies Inc
#3 - 2014-09-30 17:21:50 UTC
I've had the same difficulty. I've got several blogs/posts/pdfs of where people tell you it can be pulled from an API... however, no clear examples of how to actually do it.

This is the closest I've found to being able to decipher an API call in google docs: http://api.eve-industry.org/

But I'm still at a loss as to how to really implement it into my spreadsheet without calling hundreds more API calls for all my BPOs.

Pretty frustrating that there is a barrier to industry on any scale beyond simple GUI in-game dabbling. To do anything on scale you really need to know how to pull API info into google docs. I've just resigned that I'll have to take a weekend to learn the ins & outs of how to use an API.

Sure you can use tools such as IPH, but that one in particular is so frustratingly complex, I load it up stare at it for an hour or so and close it down again, as I can't narrow down what I want clearly enough without piles of garbage showing up in the list of what to make.
Dwissi
Miners Delight Reborn
#4 - 2014-09-30 20:09:09 UTC  |  Edited by: Dwissi
I wasnt aware of that an actual example would be needed - lets see if i get this right then:

As i wrote earlier - you need to use the CREST API:

Quote: " CREST API

CREST is our new de-facto method of giving access to publicly accessible information. There are 6 new resources with industry related information."

The section you are looking for is this:

"/industry/systems/ (cache: 1 hour)
vnd.ccp.eve.IndustrySystemCollection-v1
Lists the cost index for installing industry jobs per type of activity. This does not include wormhole space.


Another quote from the same dev blog:

" Industry Cost Calculations

Determining the install cost for a job is getting a little more complicated with Crius, so let us quickly go over what you will need to calculate it.

Fetch the base material quantities for manufacturing the item from your blueprint, from the blueprints.yaml file in the SDE. In the case of invention and reverse engineering jobs you should use the materials from the T2 or T3 blueprint instead.
Multiply each material quantity by the market adjustedPrice as returned from the /market/prices/ endpoint and sum them all together. This is called the base cost. For reverse engineering jobs with multiple possible outcomes calculate the baseCost for each then create an average.
The base cost is then modified based on the type of activity:

Manufacturing: baseCost x numberOfRuns
Research: Sum for each level[ baseCost x 0.02 x researchMultiplierForLevel (see table below) ]
Copying: baseCost x 0.02 x runsPerCopy x numberOfRuns
Invention + Reverse Engineering: baseCost x 0.02

Multiply the cost by the cost index returned in the /industry/systems/ resource, for the solar system you are installing the job in and the activity you are performing.
Multiply the cost by any facility bonuses as described in the ramAssemblyLineTypes table in the SDE
Add a 10% tax for NPC facilities, or the custom tax rate set for player outposts in nullsec


Let me know if you actually expect us to write the API call itself - thats not how i understood your posting. If that is the casethen this page is what you need for the actual call -> http://api.eve-industry.org/

Proud designer of glasses for geeky dovakins

Before someone complains again: grr everyone

Greed is the death of loyalty

Lateralus
War Supplies Inc
#5 - 2014-09-30 21:44:04 UTC
Hah, no I don't want you to write exactly what I need (not for me anyway). :)

I'm a huge proponent of 'give a man a fish, feed him for a day, teach a man to fish, feed him for a lifetime'.

I do it all the time at work for others.


I just find it amazing that to be able to figure out all the costs and chances and hidden fees, you need to have a good understanding of how to pull information from APIs... for a game.

EVE certainly pushes the limits of ability of many people. Especially when it comes to industry.


This afternoon I basically played spreadsheets online at work (hah, love how noone notices I'm not really working) and I got my massive spreadsheet working.


CJ, as mentioned, this is the site you need to work with, Qoi did some great work in giving examples: http://api.eve-industry.org/
I would highly recommend reading carefully through this PDF on Qoi's site too: http://eve-industry.org/export/IndustryFormulas.pdf
Dwissi has also summarized most of the pertinent info above.

Your system cost indexes can be pulled from here: api.eve-industry.org/system-cost-index.xml?name=Jita

Your adjusted costs for your jobs can be pulled very simply like this (thanks Qoi for your usage example):

=IMPORTXML("http://api.eve-industry.org/job-base-cost.xml?names=Punisher",
"//job-base-cost")

This will give you the adjusted cost for that one item in one cell.

The difficulty I ran into quickly was that you can use up to 50 of these calls in one google spreadsheet. Google Docs limits IMPORTXML calls to 50 in a single document.
To have this return multiple items is a little more complicated, you need to use the CONTINUE function, basically you can read up on it here: https://forums.eveonline.com/default.aspx?g=posts&t=15796
It's a little complicated to get it running pulling multiple items in one call so you can get a result of more than 50 items, but I have done it successfully, so it's entirely possible.
My example would be greek to you because it pulls all the cells from other sheets, so it's a long garbled mess if you don't have the other tabs.

It took a while, but I mainly used Qoi's site to figure it all out, and that extra thread to pull multiple items from one IMPORTXML call.

Good luck, I've had many people help me out on these forums so I figured I'd lend a helping hand when I just figured this out myself.
Dwissi
Miners Delight Reborn
#6 - 2014-09-30 22:03:50 UTC  |  Edited by: Dwissi
Lateralus wrote:


I just find it amazing that to be able to figure out all the costs and chances and hidden fees, you need to have a good understanding of how to pull information from APIs... for a game.




You actually dont have to - thats why i provided the link to both dev blogs. One of them contains a very nice example of 'standard' values for system cost index for a average used system, semi-busy system etc - so if one doesnt want to call via the API to have exact values one can easily calculate in a spreadsheet with those values from the dev blog and simply price a small overhead in for security.

Proud designer of glasses for geeky dovakins

Before someone complains again: grr everyone

Greed is the death of loyalty

Tasha Noud
Integrated Solutions
#7 - 2014-10-31 03:17:15 UTC
Lateralus wrote:


The difficulty I ran into quickly was that you can use up to 50 of these calls in one google spreadsheet. Google Docs limits IMPORTXML calls to 50 in a single document.
To have this return multiple items is a little more complicated, you need to use the CONTINUE function, basically you can read up on it here: https://forums.eveonline.com/default.aspx?g=posts&t=15796
It's a little complicated to get it running pulling multiple items in one call so you can get a result of more than 50 items, but I have done it successfully, so it's entirely possible.



Google removed the 50 calls limit about 6-9 months ago. Also the continue command is no longer used too. Make sure your spreadsheet has been transferred over to 'new' google sheets
CJ Alland
CB Trading
#8 - 2014-10-31 03:33:55 UTC
the spreadsheet in the post is out of date now. i've got everything working aside from the maths for system costs but seeing as IskPerHour has been updated i might just use that =)
Vladdy Tepes
The Scope
Gallente Federation
#9 - 2014-10-31 03:47:36 UTC
Why not just use the site you've been quoting?

http://eve-industry.org/calc/
CJ Alland
CB Trading
#10 - 2014-10-31 03:53:37 UTC
because iskperhour shows your whats profitable without having to check everything separately
Soldarius
Dreddit
Test Alliance Please Ignore
#11 - 2014-11-03 21:10:39 UTC
I copied your spreadsheet so I could play with it. Link is below.

https://docs.google.com/spreadsheets/d/1L_2H8rGawc8IJ64DS9hu7Sr7OGo5d-kf6YMT8APGIVQ/edit?usp=sharing

Goggle Spreadsheets is no longer limited to 50 import calls. But that doesn't mean you should drop a thousand into it. Fortunately, there is a way around having to type all that out.

"Join" is used to join a bunch of things together using a common delimiter. Very useful for turning an array of values into a comma separated string, which is what you need for price calls to eve-central. Something about Microsoft router software not liking long strings. But it does nothing for a single value. For a single price call, just use the cell reference, not Join. Check the service's API documentation to see if and how many values it will take at once.

Use named ranges to make referring to commonly referenced ranges like your price sheet or a recipe sheet much easier. This way if you make a change to your price sheet or some other long list of things you don't need to go through the entire spreadsheet looking for references in formulas. Just change the range dimensions in your named range. You can find this feature under "Data > Named Ranges..."

Rather than making a column really narrow to hide it, just use the Hide feature. Literally right click on the column head, click "Hide Column". A small icon will become visible in the column headers where the hidden column would be. Clicking on that icon will reveal the column.

When you need to do this:
=sum(H4*D4)+(H5*D5)+(H6*D6)+(H7*D7)+(H8*D8)+(H9*D9)+(H10*D10)


Do this instead:
=sumproduct(h4:h10,d4:d10)


Summing the product of 2 declared values is pointless. Instead of using sum(x*y)+x, just use x*(1+y). Its a standard formula for increasing something by a variable percentage, which is very common in Eve. No need to make formula calls here. Just do math.

I changed some of your formulas to make it much easier to add and remove items from your prices sheet, as well as to more easily deal with multiple calls. ArrayFormula is your friend. So rather than having to edit a formula on every row of a large list of things, you just change the one formula up top and voila! Everything in the entire list updates at once, and with only one function call. This makes your spreadsheet a lot faster.

I really like what you did to allow for multiple simultaneous selections with mineral quantities for each run of ships. Personally, I would have put the recipes and mineral requirements on their own sheets. But that's just me. I did change the Tritanium column from individual formulas to a single array formula. Its a simple example that shows how powerful array Formulas can be. It also clearly demonstrates how to specify a entire column or row as an array range by leaving out one part of the reference.

Example: A1:A is entire column A. B1:B = entire column B. A1:1 would be entire first row. B1:1 would be first row, but starting at column B.

http://youtu.be/YVkUvmDQ3HY

CJ Alland
CB Trading
#12 - 2014-12-07 16:13:11 UTC
Thanks for the help. I did make changes you recommended and I have my spreadsheets working the way I want. Though I had responded to this already. Been a little distracted in nullsec though.

Thanks again
SJ Astralana
Syncore
#13 - 2014-12-07 22:08:32 UTC
Lateralus wrote:

Sure you can use tools such as IPH, but that one in particular is so frustratingly complex, I load it up stare at it for an hour or so and close it down again, as I can't narrow down what I want clearly enough without piles of garbage showing up in the list of what to make.


I've felt your pain. The Market Research Report in Eve Production Manager distills right down to the essentials, filtering out most items (faction, storyline) you'll never build. I'm now considering a filter that will look at your capital and sales volume and filter out items you can't afford to build.

Hyperdrive your production business: Eve Production Manager