With my data collection stopped, I’ve been spending time working on my data processing code again. I spent the better part of two hours trying to add a column onto a data frame in R only to find a single-line solution that’s way too obvious. Such is the way of programming though.

The effort is… slow. I was able to hammer out the general sorting and consolidation in fairly short order, but what I’m working on now is more effort. The net result should be a list of all posted goods over the entire time period with no duplication. This should allow me to measure the elasticity over the entire period instead of daily.

A convenient side effect is that I can segregate the postings that disappear, presumed sold, and see if I can get an idea of what demand is that way. It’s a little backward but makes about as much sense as collecting sales data directly.

By and large, the biggest issue is just finding ways to make the data structures in R do what I want. When I stopped for the day I had separate lists of unsold goods and new listings, but the sold listings were missing. Partial sales for a single seller would also not work properly, I suspect.

I think I have a pretty good idea though. If I loop through the main list checking against the unsold and new listing, the sellers I can’t find can be stored in a list then retrieved. Should look something like this:

For (theThings in t1$Seller) {

duplicate = FALSE

For (unsoldThings in unsold$Seller) {

If (theThings == unsoldThings) {duplicate = TRUE}

For (newThings in newListings$Seller) {

If (theThings == newThings) {duplicate = TRUE}

If (!duplicate) {sold = rbind(sold, theThings)}


Once I’ve done that I can use data pipes to pull the values I’m looking for.

For (theThings in sold) {

finalSold = rbind(finalSold, t1 %>% filter(Seller=theThings))


Or something like that. No plan survives contact with the enemy. Or the data. I’m sure I’ll find some strange situation that manages to break this, assuming it even works to begin with. I’ve recorded it here mainly because I’ve spent the last few hours working out the general idea and I’d much rather not find myself saying “now, I had an idea on how to do this, what was it again?”

Y’all take care. Feel free to acquire anything of value.

MMO Economics – Inflation v. Market Forces

Ah, anecdotal evidence. The weakest kind, as it were. How easily we resort to developing narratives based on experience rather than on data. Take all of this with a pound of salt. I cannot say how much of this is and isn’t backed up by data because I haven’t gone to the data yet to test it. I do, however, need to process and refine the idea a bit, and this is a great way to do that.

Testing for inflation in FFXIV in particular, and generally any MMO, was my jumping-off point for… all my academic activity. The awesome part of the process is getting to see how all the little pieces finance and economics fit together in a practical application. As practical as MMO economies can be, anyway.

The short version of my thought is that as market pressures go, inflation is the river that carves a canyon. Over long periods of time it is quite powerful, but in a day-to-day or year-to-year sense, largely unimportant. At least in the real world, though the real world has deliberately controlled inflation.

What I’m seeing in FFXIV mirrors this idea a bit. Asking price and quantity available are far more sensitive to patch cycles, population changes, and iLevel tiers (normal supply/demand forces) than they are to any fluctuation in the value of the Gil. Over short periods, things appear to “deflate” as demand appears to slowly drop. In the case of materia, I expect we would see a similar effect measuring from expansion to expansion.

Toward the beginning, there will be a large demand for the new high-grade materia and a nearly non-existent supply. As time goes on, more and more people will complete the content and have excess to sell, so the supply will steadily increase which (should) “deflate” the price. I think comparing it to a newly developed technology would be fair, or even a single iteration of an existing one. Think “new iPhone model.” High demand and high price, but with downward pressure as lines get shorted and used and refurbished units become available.

Assuming this is true, then it seems unlikely that these goods could be used to measure inflation in the most direct sense. Surely all I would see is deflation. Identifying a collection of goods to protect against this natural price drop seems… difficult and/or time consuming. I can think of ways to do it, but they are quite long-term plans, possibly spanning several years or expansions.

I look forward to seeing if and how these observations hold up to numerical scrutiny, and how they compare to other MMOs. I cannot come up with a good reason why the same impact wouldn’t also be true. “Gear technology” as it were, will continue its inevitable march forward and the participants are still human.

Y’all take care, and remember, most things in life are like Steam games. If you wait 6-12 months you can probably get it on sale.

blapril-2020-200Hey, it’s Blapril time! The goal is to simply promote and stimulate the blogging community by encouraging people of all skill levels and backgrounds to post. The official post can be found here and it’s never too late to start.

WoW and Research Planning

So, I took the first steps toward including WoW in my research data and I am rather beside myself. I (rightly) assumed that it would be easier to locate the data I need online. All these sites prompted me to “select a realm,” which makes sense, I suppose. I was not prepared for the list of realms, though. My initial reaction was something to the effect of “Surely that list isn’t up to date. They can’t possibly have 240 different servers can they?”

So I’ve been mulling this over trying to decide what does and doesn’t make sense. Near as I can tell, there is no way to trade between “servers.” This means that unlike FFXIV, I do not have to consider interaction between servers quite as seriously. It does bring up some interesting thoughts on how to select a half dozen or so servers as a sample of the larger population. What constitutes a “representative sample?”

In other news, and mostly unrelated to this, I’ve been entertaining the idea of trying my hand at WoW again for the third time in history. For the record, this is why I’ve been avoiding it in research. Being near novel (to me) games makes me want to play them. Not a particularly strong idea at the moment, but it’s on the radar.

The other problem is that I would have to identify some specific items to follow and I’m so disconnected from the game that I have to do additional legwork just for that. Trying to draw parallels between end-game activities in different games turns out to be slightly difficult at times. Could just be lack of knowledge though.

In addition to this, I’m wondering if I should consider setting up a small home server to execute some of these functions on my behalf. Shouldn’t need a lot, even a little RPi should be more than capable of running the python scripts once a day. This is especially useful for cases like WoW or EVE where the data is collected and updated regularly. This would prevent the “FFXIV problem” of having to manually update the prices by checking it in-game.

Either way, those are just the ideas I’m playing with at the moment while I watch all the real-world economic indicators do… whatever they’re doing. It’s nothing good, I assure you.

So y’all take care. Feel free to dump your WoW-related wisdom upon my ignorant head that I might better understand what I’m getting into.

blapril-2020-200Hey, it’s Blapril time! The goal is to simply promote and stimulate the blogging community by encouraging people of all skill levels and backgrounds to post. The official post can be found here and it’s never too late to start.

Research – Virtual Good Volatility?

I’ve spent a fair amount of time lately considering exactly what it is I would like to get from my data. What questions do I wish to answer and how exactly should I structure that… query. In the meantime, I’ve been working on different ways to sort and recombine data.

primal iron
NQ Iron Ore daily for the entire data center.

I just realized that I’m quickly approaching the one month mark, my original intended stopping point. I’m… not sure I’m ready to stop. Logically I have to stop eventually, but the longer I collect data the more likely it is that inflation and arbitrage will become detectable.

The mean price for that specific iron ore data is 141 Gil/unit with a standard deviation of 44 Gil. Even if inflation was absurd, say 10%, that would only be a 14 gil increase. That kind of number is easily lost within the volatility, and I’m pretty confident it’s not anyway near that high. At a glance, Iron looks more deflated over this time period than anything else. That’s assuming it’s even fair to lump an entire data center together like that. I’m not sure it is for Iron but I’m not certain exactly how to test that.

savage aim 8
Savage Aim 8 for Primal Data Center

I suspect it’s more helpful to combine items like materia that I know to experience some level of arbitrage. (M=32162, Std.D=2793) It also has a much more reasonable standard deviation than Iron Ore. Iron’s is 31% of the mean while Savage Aim 8 is closer to 9%. Is that even a reasonable way to measure volatility? Is it a good indicator of arbitrage? Must think about this.

That said, I need to double-check those prices at some point. If you randomly asked me what the typical buying price was, I’d say 15k-25k. I think that’s because I usually only see the ten lowest price listings, but I’d like to confirm a few manually just to be sure.

Okay, well, I’ve written and deleted several different paragraphs at this point, so I believe I’m done for now. It is my intention to write a post about The Outer Worlds tomorrow. I can’t tell if its particular brand of corporate dystopia is appropriate, timely, or offensive at the moment. Maybe all of the above, but it certainly isn’t helping my mood.

Y’all stay safe and take care. It’s not the best choice, it’s Spacer’s Choice.