I published v0.2, which includes a bunch of hacked together proof of concept code. This week I dove into the pandas library, focusing on the data manipulation tools that are inherit to pandas. This post covers some of the highlights and demonstrates the initial charting that I’ve been producing.
More to come on what I plan to do with the data; for now those details have to be a trade secret.
The crux of pandas is the dataframe and this week I discoverd that you can load your query results right into a dataframe and not have to write a parser. Notice in the below code that I run the query and place the results into a dataframe with a ‘fetchall()’. This really saves me a lot of headaches when passing around chunks of data and makes it easy to write functions to combine data with overlapping values. Return the dataframe and do more ::work::.
Here’s a query that I use to get NPC kills by region when given a regionID.
def getnpckills_byregion(regionID): conn = psycopg2.connect(conn_string) cursor = conn.cursor() sql = """SELECT "mapSolarSystems"."regionID", "mapRegions"."regionName", SUM(mapkills."factionKills") as SUM_factionKills, mapkills."timestamp" FROM data.mapkills, public."mapRegions", public."mapSolarSystems" WHERE "mapRegions"."regionID" = "mapSolarSystems"."regionID" AND "mapSolarSystems"."solarSystemID" = mapkills."solarSystemID" AND public."mapSolarSystems"."regionID" = %s GROUP BY mapkills."timestamp", public."mapSolarSystems"."regionID", "mapRegions"."regionName" ORDER BY timestamp DESC """ data = (regionID, ) cursor.execute(sql, data) df = pd.DataFrame(cursor.fetchall(),columns=['regionID', 'regionName', 'SUM_factionKills', 'timestamp']) cursor.close() return df
Doing a pivot in pandas is amazingly elegant and you can perform the operation in one statement.
df.pivot(index='timestamp', columns='regionName', values='SUM_factionKills')
Another powerful tool in the library are the resampling options. I’m still trying adjusting the parameters to find a balance on data granularity.
The below graphs show NPC kills over all regions over time. One graph has no resampling while the other has values that I feel display a daily value, normalizing the peaks and valleys that occur due to server downtime and differing activity rates due to timezone.
conversion = "12H" v_window = 8 v_minperiods = 1 pd.rolling_mean(df.resample(conversion, fill_method='bfill'), window=v_window, min_periods=v_minperiods)
Ratting activity in Blood Raiders regions:
Ratting activity in Serpentis regions:
More to come. Find me on #k162space on tweetfleet.slack.com.
Is is more profitable to build a Carrier from BPCs or BPOs? That question was the initial spark that started my interest in capital production in 2011. Using a BPC copy pack from the market was hardly profitable so I made a plan to own and operate a set of capital BPOs.
Over time as profits started to materialize, more BPOs were purchased to round out production queues. Carrier success then started to bleed into Dreadnought production. With the upcoming industry changes in the Crius expansion, the fate of my capital operation is unknown so I have paused the project.
Here are the final numbers for almost 3 years (2.93 to be exact) of capital production. Note that Dreadnought production was a recent addition, only starting in mid-2013. Special tribute goes to my industry partner, Raath, as he was the lead on this massive project.
tl;dr Build Naglfars and Archons.
Naglfar sales in Delve outperformed all other types and regions yet showed the most standard deviation.
The Naglfar outperformed every other hull type when it came to profitability per time period. This is due to the balance update it received in the Odyssey update where it became a viable doctrine ship. The Archon, due to the popularity of the Slowcat doctrine, was also solid performer.
The best way that I have found to make money for the lest amount of effort is stocking nullsec hubs. Forget mining, mission running, invention, or any type of item or ship production. If you spend time doing market research, planing your logistics, reducing your risk, and monitor sales you can make far much more than any other type of activity in Eve.
What follows is a guide for stating up your own operation to stock the warchests of eager PVP pilots (at a profit of course).
I’m using three years of trade and logistics experience to help me outline the operation. Your style may differ, but here is the outlay that has worked for me time and time again despite political change.
If you can parse information in the form of Dotlan map statistics, notice price disparity between two locations, have a basic understanding of jump mechanics, learn to avoid common ganking techniques, and maintain a basic level of proficiency in Nullsec politics you can easily break into this style of gameplay.
Buy low in Jita, move things to nullsec, and sell for a profit. To grow bigger take the profits generated and reinvest in your operation to increase its product scope and logistical power.
In order to properly reach several places and reduce the amount of midpoint jumps, you will need Jump Drive Calibration V. If you don’t have this yet, go train it as it is one of the most valuable skills for jump capable pilots.
Start-up capital may vary. I started my operation with 2 B ISK and have grown from there so tailor the scope of the operation to your level.
- Always look to reduce risk. This extends from not putting too much ISK into the operation in case it fails, not getting a hauling ship ganked, keeping assets under your control, or even not telling people about your timetable and route for logistics.
- Because time is money you want to reduce time sinks. The end goal for this operation is to spend as little time as possible managing it and more time doing other activities. For me that meant more market research and blogging, but for the majority of people I imagine funding endless PVP activity is the goal.
- Improve sales by using a program to produce reporting and business intelligence out of your data. EVE HQ, Eve Mentat, or EMMA are all good solutions, but I spent a lot of time flexing my PHP muscle to build my own wallet manager. Goonswarm has built their own import tool called Goonmetrics for people that lack the technical expertise of setting up databases and operating code.
Finding a suitable hub depends on many factors including traffic, location, and the ease of logistics getting into the destination system.
- To maximize your ISK velocity, find a place with a lot of traffic. Use the filters on Dotlan and the in-game map to discover numbers for the number of pilots docked and jumps per 24 hours. Major nullsec hubs will standout on the filter with thousands of jumps per day.
- Find an Alliance and location that is politically stable. When assets are moved into a conquerable station, you run the risk of loosing access to that station. If this happens, you will need to keep your trade alt docked and either slowly sell off your items or firesale them to quickly liquidate. Do keep in mind that without notice major shift in power can occur; look up the history of Band of Brothers or GoonSwarm to discover how powerful the click of a mouse button can be.
- Consider the logistical hurdles to getting to the destination station. More midpoints means more time spent doing logistics and the lack of midpoint stations can mean the use of alternative jumping methods as outlined in the Jump Technique #2 section.
- Check cynojammer status for your destination and midpoint systems. Some alliances will jam their system to reduce the likely hood of enemy capitals entering. Others alliances won’t care and have found joy in the opportunity of a large-scale capital engagement in their home system (ie Titan battle of August 15 in K-6K16).
- Alliances have many CTAs so get on Jabber, look at forum posts, or talk to PVP people about where they are staging. You want to stock where things are blowing up. Note: stocking a staging station for a campaign is very risky and I would not recommend this type of stocking for people that lack heavy logistics to move goods out at a moments notice due to the sometimes fickle nature of alliance leadership decisions and campaign politics.
The more cyno alts the better. Moving characters around will cost time and slow you down. In my operation I have 5 cyno capable alts around the galaxy that shift depend on where I am currently operating.
A trade alt will remain pertinently docked in the Nullsec destination system and only exit station to light the occasional cyno.
I have a character in Jita that holds ISK and does all of the purchasing. This helps isolate all the purchases to one character to keep my bookkeeping tidy.
The goal of the operation is to move items from a Highsec trade hub, to a Highsec station system next to a Lowsec station system, and then into Nullsec by means of either zero or many midpoints.
This illustration shows two legs on the operation. The Highsec and Lowsec activity can be handled by a NPC character while the Midpoint and Nullsec end is dedicated to your Alliance character.
I use Jump Freighters in this example, but based on your capital the number and types of ships, each setup will vary. When I started my operation I used standard Industrial ships to get around Highsec, a Blockade Runner to get into Lowsec, and a Carrier to perform the cyno operations into the destination system.
Logistics Stage 1: Product Selection
There are many ways to find profitable items and I’ve already published some of the things that are very volatile in nullsec in this post.
Logistics Stage 2: Getting out of Jita
A proper Jita insta-undock bookmark is a valuable things. Using this will reduce a large amount of your risk as it will place you off of the Jita undock grid within seconds.
Logistics Stage 3: Getting Across Highsec
There are many options for transporting across Highsec that include doing it yourself or outsourcing with services such as Red Frog Freight. The volume, time, available capital, and risk will dictate what method to use.
If you are just beginning your operation, you will have to be frugal and move items with a Industrial. Later you can move on to Blockade Runners (Crane, Prorator, Viator or Prowler) since their cargo area is unscannable as of the Retribution patch.
Though scannable, an Orca has a large tank and can be used to transport larger amounts of goods than Blockade Runners. Freighters do have a large amount of capacity, but they are often targets for ganking activity. If money is no object, choose to use a NPC Jump Freighter to move items as they offer a larger amount of HPs and align faster than normal Freighters.
Logistics Stage 4: Getting from Highsec to Lowsec
This move can be done with standard Industrials, Blockade Runners, Orcas, Freighters or Jump Freighters. The riskier methods involve scouting the gate on the Lowsec end and moving goods only when clear.
The fastest m3 per time method is to have your goods staged in Highsec in the adjacent system, light a cyno on the Lowsec station, jump to Lowsec, dock, unload, undock, align to the Highsec gate, and enter warp when you reach velocity returning to the Highsec system to begin the cycle again.
Note that I stated to align and not Warp To as a method for killing Jump Freighters is to bump or web reducing the maximum speed below the current speed, effectively locking you in the Warp operation. Read up on the ‘Vindicator Triple Web’ exploit if want to know more about this exploit. If you don’t issue the Warp To command and are aligning, at any sign of trouble you can dock.
Logistics Stage 5: Getting Across Lowsec
Use the Station to Station technique outlined later.
Logistics Stage 6: Getting Across Nullsec
Use the Station to Station technique outlined later.
Logistics Stage 7: Destination System
The D2-HOS system in Pure Blind was FA’s capital system and jammed. The best route in was jumping into a adjacent system and scouting the gate. Higher risk, but at the time it was worth it.
Before Widly Innapropirate were absorbed into GoonSwarm, they homed in G8AD in Cloud Ring. They had an active beacon. If you scouted the system and had Carrier backup, your risk was reduced.
The best method is to find a major Nullsec hub that lacks a jammer so your trade alt can undock, light a cyno within docking range, and let your ship land right within docking range. This technique reduces your risk to almost nothing if done properly.
Jump Technique 1: Station to Station Jumps
The most efficient, low risk method of moving items between Lowsec <-> Lowsec, Lowsec <-> Nullsec, or Nullsec <-> Nullsec system is to have two characters in two systems light cynos within docking range of each respective station.
The Jump Freighter will jump in, dock, unload, undock, and jump back to the original cyno. If you are quick, you can get 5-6 jump cycles under one cyno timer. Done efficiently this method can move around 1,750,000 m3 per cyno depending on your Freighter skill level and racial Jump Freighter, both which affect the ship’s cargo capacity.
Jump Technique 2: POS Container Jumping
If you absolutely cannot get a station system as one of your midpoints, you can use a riskier method using an anchored container and a POS with a Cynosural Generator Array module. The goal with this method is to jump in and warp to 100 km to the anchored container, landing you inside the POS shields.
If done correctly, you will only be vulnerable for a few seconds as your ship aligns and warps withing the POS shields. I do, however, recommend that you only jump into the system when it is empty with a character in the system to monitor activity. There is still a chance of an enemy logging off next to the Cynosural Generator Array and logging back in as they see you leave the originating system, but it is low.
When I would perform this type of operation I had a Carrier on standby within jump range of the POS system. If anything went not according to plan, the Carrier came into system to serve as support while the POS guns fended off the attacker or Alliance reinforcements arrived.
Jump Technique 3: Right Out of Jita
A quick, lowrisk method for moving billions out of Jita involves bypassing Highsec altogether as a large number of systems are jump accessible right out of the Jita undock as seen here.
Using this technique, you can put a large amount of ISK into your NPC Jump Freighter and bypass the deadly gank systems of Uedama and Niarja.
Here are two route examples of when I would stock for the former Northern Coalition. The three Lowsec systems of Chardalane, Maut, and Oulley served as three options for extending myself into Nullsec as they were each Lowsec station systems with a connection to contiguous Highsec. If either system was busy with cyno popping pirates, I would switch to one of the other two options.
- Buy things in Jita and place 5-10 B in a Courier Wrapped Freighter Container on my Jita purchasing character.
- Undock with a NPC freighter character and move to Adacyne, the Highsec system next to Chardalane.
- Use a NPC Jump Freighter to move goods from Adacyne into Chardalane Lowsec.
- Use a Alliance Jump Freighter to jump into D2-HOS or G8AD-C.
- Hand off goods to my Trade alt in the station and price items for sale.
If you look back at any of my monthly reports, you can review the success of my efforts. My recommendations for people that want to get involved with Nullsec trade and production is to always keep one eye on Nullsec politics. Take notice of who is attacking, defending, advancing, and maintaining homogeneity; the key to your success is situational awareness.
I built and sold things to help the efforts of local alliances over the past two years. This post is a timeslice of nullsec politics, wars, and the efforts of an industrialist who helped build the ships that eventually returned to dust.
I have a database of all the transactions I have been involved in since I started to produce items in Eve. The chart below shows the amount of transactions per day filtered by major nullsec stations. By major I mean what is considered the region’s ‘capital’ or main staging system at the time. The chart it neat by itself, but adding a sense of nullsec politics during that trading time can really explain a lot more about the data.
D2-HOS Learning the Ropes
In the Winter of 2011 I found myself in my first nullsec powerblock after leaving wormhole space. At the time, D2 was the home of FCON in Pure Blind.
I was in an alliance that was blue to FCON and we were able to setup POS operations in their space. I helped out my corporation by running many logistical operations to setup our POS moon mining and reaction network.
With all of my trips into Pure Blind from Empire, I became skilled at Capital and Jump Freighter cyno operations. I leaned how to form proper bookmarks, which stations had terrible docking radii, and the best times to perform logistical work given roams and AFK cloakers.
G8AD-C Building Big
During my time in the Northern Collation, I built and supplied many Alpha Maelstroms as detailed in this post. Some 344 Maelstroms were supplied to ready NC pilots that were purging the Pure Blind and Cloud Ring from Ev0ke’s hands under crushing server lag and failed-to-load battle grids.
As the battlefront changed from Pure Blind to Cloud Ring, I moved my operations into Wildly Inappropriate‘s home system as many fleets were staging out of this location. In this location I setup operations for capital production and began to supply the local market with Carrier hulls.
If you look at the trends for D2 and G8, you can see the eventual decline of Pure Blind and the population move into G8 for the purge of Cloud Ring.
Isn’t that Against ALL Authorities‘ home system in Catch? Yes it is.
During the time of poor faith in Eve’s future, I spent a month idle in highsec pondering what to do next. My CEO at the time was interested in some rental space in the far region of Omist, an area that I had little to no interest in.
I found myself in a position where I was blue to -A- so I pieced together a cyno chain and started to supply their local market. The amount of transactions per day was extremely high; there were a few CTAs that caused me to push 200/300+ transactions per day on occasion.
Back in Pure Blind
Eventually I lost blue status to -A- and with it my access to GE-8. I took a small break from Eve and then came back to sell goods in an area that I was familiar to me — Pure Blind.
The old NC was only a shell of its former self. People were scattered, the blocs were realigning, FCON was moving to Branch, and old groups such as WI were being absorbed into the greater Goon kingdom. There were minimal fights and therefore minimal production opportunities.
6VDT-H TEST Market Please Ignore
Having been active on Reddit and finding great humor in TEST’s mentality, I applied and joined TEST. What followed was an age of prosperity as I was able to supply large-scale efforts. At this point in my building and trading career, I was able to have 50-60 B on the market at any given time and my logistical legs were fully developed. Multi-cyno trips, battleship construction, and capital construction were all at my fingertips.
1DH-SX Nice Region, We’ll Take It
This NPC station in Delve was used by TEST as a base of operations when the Delve campaign escalated from ‘good fights’ to ‘you need to leave now’. On this war effort I worked with a focused group of other TEST industrialists, traders, and FCs to make sure we were always two steps ahead of fleet movements. This was my proudest moment so far for TEST; though I was not able to contribute on the grid, I made sure that we were going to win the logistics fight.
K-6K16 New Home
New region, new home. This station went up to serve as TEST’s new capital system. I am currently working in Delve and supplying the market there, though in a rather limited capacity than before. As you can see in the above chart, the amount of transactions per day is on a slow decline. I’ve found that I will take periodic breaks and then returning when a new prospect garners my attention.
tl;dr Using mineral compression enables you to haul the minerals needed to built 344 battleships in one Jump Freighter.
When I started playing, I knew that I wanted to be a builder; I wanted to become an industrial gear in the alliance war machine providing materials to advance the cause.
At the height of the Northern Collation, the Alpha Maelstrom was king. The ability to deliver bursts of coordinated damage in high lag situations was the method to win battles.
Over the life of the Northern Collation, I built and sold around 344 Maelstrom ships in Cloud Ring, Pure Blind, and Deklein.
You might assume that these were hauled in from Empire or built from nullsec minerals, but that is not the best way to operate. I’ve wrote about mineral compression before, but now I wanted to disclose my building operations with a concrete example now that my Maelstrom production line has been retired.
Side note: TEST officially announced the end of Maelstrom reimbursements yesterday. RIP bucket of rust with solar sails.
The volume of raw minerals equals around 48,800,000 m3 (140 Jump Freighters or 55 Freighters) of hauling if you were to bring them in uncompressed. Even given perfect jump skills, this would eat up 2.1 B worth of Isotopes using the jump path I took to my production system, effectively killing your profits.
If bringing in the minerals is a Herculean task, what about bringing in the built ships?
Built ships have a better compression ratio. 344 Maelstroms, if hauled in from Empire to Nullsec, comes out to 17,200,000 m3 (49 Jump Freighters or 20 Freighters). Moving built hulls would bring fuel costs down to 764 M, but you can still do better.
1,000 425 Railgun I’s
Taking minerals in empire, compressing them into modules, and refining in nullsec is the best way to transport large quantities. 1,000 425 Railgun I’s equal 10,000 m3 of space yet produces around 1,407,000 m3 when refined (!).
This screenshot shows what you can achieve in a station with a 50% base refine and high refine skills. You could even push the yield to perfect by getting better standings (details and math here) with the station corporation.
Using only 425 Railgun I’s will leave you with a disproportional lack of Tritanium for battleship builds. Other items, such as the Passive Targeter I, can be used to balance out your needs.