exploratory dndads ao3 fic metadata analysis
Motivation
Very much inspired by my friend @icy-book's post about dndads ao3 statistics [ship obscurity, work distributions], I decided to apply my own coding skills to the problem. I don't know what possessed me. The analysis can be more focused on analysis surrounding word counts, work age, and tag counts, which would have been more difficult to do by hand.
Methodology
I used the Unofficial AO3 API for Python, and the classic data science toolset for Python (Mathplotlib, Numpy, Pandas). The scraping took a bit over 2 hours (I straddled the requests for bandwidth reasons) and ended on the 30th of June 13:50 (GMT). Given its unofficial nature, the api is pretty much just a scraper. I didn't want to scrape the works themselves (for various reasons such as bandwidth and ethics), so I scraped only the search results. There is no corpus analysis because of this. One of the side effects of this is that the only data we have for how old a fic is, is its update date. This is a problem for multi-chapter works, which have multiple release dates, and when something actually release is difficult to identify. For this reason, anything related to time is more robust for works with a single chapter.
For authors I assumed each group of writers to be a unique writer, and pseudonyms to be the same writers.
Tag parsing was extremely rudimentary and involved me going through them manually to aggregate them. Relationship tags had varied spellings for different characters. often have varied spellings (looking at you Nicky and Normal). The other tags I grouped together based on my own assumptions. For ship analysis, only the most popular ships (occurring more than 9 times) were considered. In addition, nuance of how much a ship figures in the fic is ignored.
Very few actual hard numbers will be represented so the statistical value of these findings is questionable.
Experiments & Discussion
Fic Performance
A good place to start on how works perform is thinking about the relationship between a work's age and its hits. The most basic assumption we could make is that the relationship is linear and each works gets a steady supply of hits per day. However, one thing to consider is visibility, which depends on how readers find works. Works can be sorted by newest first or most popular first. In the first case, we can expect the reader to stop searching with some probability after every work they look at. The relationship between age and hits would be logarithmic. This means that the older a work gets, the less hits we can expect. In the latter case, the reader is more likely to look at a work that has more hits, and a work has more chances to gain more hits the older it gets. The relationship between age hits would be exponential.
From the looks of it, the exponential fit seems to correspond best to the observed data (only one-shots were considered). The real relationship is probably more complex, but this is a good start. The most likely reason for dominance of exponential growth is the ability to filter fics for exactly what you like.
We do see some growth for fic performance as the number of tags increases, corresponding with the idea that filtering is important to how a fic performs. However the effect seems to drop off around 8-10, potentially because of the ability exclude tags from search.
The exponential fit curve gives as an expected number of hits for a work to have at some point in time. And based on this we can say whether a work is under-performing or over-performing. This basically gives us a more accurate way to compare hit numbers for fics of different ages.
This is a good time to remind yourself that hits aren't an objective measure of worth for a fic. It is pretty likely that any fic has someone who really, really loves it. Performance seems most influenced by just age and the variance here is very high as well (there are a lot of outliers that were eliminated from the figures for simplicity).
More scatter plots related to hits, the red dots represent restricted fics, the lines represent the maximum hit to measure ratio. It does seem like restricted hits get less hits but interestingly enough more comments. The relationship between hits and kudos is pretty clear and linear. It also looks linear for bookmarks and comments, but the variance is larger and the engagement is rarer. The correlation between hits and kudos is 0.80, for hits and comments it is 0.76, and for hits and bookmarks it is 0.75. The correlation between age and hits is 0.31 and the correlation between hits and the number of chapters is 0.50. Other correlations were too insignificant to discuss here.
Creative Output
This was already discussed in detail by @icy-book, and I encourage you to check it out, but here's some more graphs :).
You may notice here that the mean and median for work lengths is extremely different. Why is that? Time to investigate the work length distribution!
And the answer is that fic lengths don't follow a normal distribution (there is a very long tail on the right, not pictured).
What does output look like for each ship over time?
Note the jumps for word counts are most likely caused by a multi-chapter fics having being updated at those times. The works over time suggest a sort of competition between oakworthy and nark writers. Sorry that this figure is not more color-blind friendly.
Because the previous graph was pretty unreadable, we can also break it down by generation.
Gen 0: AMOD, GEN 1: S1 Grandparents, GEN 2: S1 Parents, GEN3: S1 Kids / S2 Parents, GEN4: Peachyville.
Various other measures
Finally I measured a bunch of things on a ship by ship basis (I also have the stats for each author. If you want to see yours, please dm me). Since the whole table is too big, I will just be presenting some interesting numbers here.
Fics per author: Nothing interesting say except that gen 0 ships (pretty much just dubsquared) has a 1 to 1 fic to author ratio!
Also, nark and gothcleats both have a low ratio of contributors, who only posted one fic, 0.11 and 0.15 respectively. Otherwise, popular canon GEN1 and GEN2 ships tend to have more one-time posters.
Fic length:
For the ships, @icy-book looked at, the median length for a fic is the shortest for nark with 868 words, and the longest for spant with 3210 words. Two ships with 8 fics each also have impressive median word counts, glenn/henry/mercedes with 3449 words and normal/taylor with 3314 words.
Mean one-shot performance:
The mean performance for the whole dataset is 1.418 (hits compared to expected hits based on an exponential curve fit). The best performing ship on average is darryl/glenn/henry, with 3.583 times the expected hits. The lowest performing GEN2 ship is Terrow with 0.850 times the expected hits. I agree with @icy-book. They deserve more readers and more writers. Overall GEN1 ships perform the best. Frequent ships have a clear advantage over rare ships (1.665 bs 1.033).
Engagement:
Which fics get the most kudos and comments per hit? Interestingly, kelsey/trudy get the most kudos per hit (0.203)! Congratulations! Twincest gets the least amount of kudos per hit (0.053). For comments, a surprising winner, terrow (0.075)! Seems like the people who read terrow, really like it!
Tags:
Finally tags. The analysis here is sketchy, given that there was no way for me to wrangle all the tags manually. So take this section with a grain of salt. Also since there is a lot to go over and few figures, forgive the rough writing.
On average a fic has 9 tags, or 0.01 tags per word. Nicky/grant has the highest mean tags per fic, 17. I'm mostly ingoring fics with low support (less than 15 fics).
One average, 13.1% of all fics take place in an AU. In the top 20, 67.5% of the meryl/stud ships are in an AU. Glark is second with 33.33%.
GEN3 is the angstiest, with 30% of the fics containing some level of angst. Death and tragedy figures the most in normal/scary fics (33%), terry/veronic fics (28%) and ron/samantha fics (27.45%).
GEN1 ships focus tend to more frequently have enthusiastic consent as well as safewords. Notable examples are glenn/henry/mercedes, where it is present in 25% of the fics. The runner ups are glenn/jodie and glenn/ron with 8.33%. In essence, Glenn finds consent important. Of GEN2 ships, Lovesong is the most common one to have fics with enthusiastic consent at 4.17%.
Nicky does a lot of drugs (or spends time in a mind-altered state), either with Grant (26.92%) or Cassandra (26.47%).
Pride month just passed, so here's a quickfire of representation stats. darryl/glenn has the most fics with kink at 40.54%. scary/taylor is the most ace at 15.79%. carol/darryl is the most aro at 22%. Trudy/kelsey is the fic most clearly specified as queer 36.67%. Darryl and Glenn are frequently poly at 43.24%. Glark is never poly. Spant has the most therian fics at 6.06% as well as the most trans fics at 51.52%. Lastly, multiplicty/plurality/systems are the most common in jodie/scam fics with 5% and jodie/ron fics with 4.76%.
Similarly another quickfire for disability pride month. Disability figures commonly in linc/taylor fics with 13.04%. Mental disorders figure frequently in grant/marco fics with 46.91%. Normal/scary has the most autism/adhd representation at 26.67% and the runner up is glark with 22.22%.
Lastly, which fics are tagged as not being betaed the most often? Terry/veronica at 24.00%, kelsey/trudy at 23.33%, and glenn/henry at 22.5%.
Final Words
There are more measures to go over, but I'd be here all day describing them. Something to consider is that there is no comparison to another fandom. In addition, no hypotheses were established. So that's it. If you have any specific questions about a ship, feel free to ask. I really need to get back to my actual responsibilities. spent waaaaay to much time procrastinating on this. But I hope the stats were fun and worth the read!













