Sign in to follow this  
Followers 0
  • entries
  • comments
  • views

About this blog

Quick reference for really nerdy things.

Entries in this blog


I've been itching to do a quick update post on my Stormlight Archive Timeline as I've hit a big milestone. In my last post on the timeline I mentioned wanting to convert from a spreadsheet to a database. And I've done it!

Link to the newest version:

Back End Changes

Previously, every entry in the timeline utilized a single row in the spreadsheet. This put some restrictions on how the date was calculated and it meant my list of sources were jammed together. In my database I've broken everything down into three tables. An "event" is simply some event that occurs (along with a category for sorting and any book chapters that the event occurs in). Next is a table of "intervals" which define the number of days (and any range of error) between two events. Lastly is a table of "sources" which link any relevant sources and my notes to each interval.

Now I can make a date dependent on multiple intervals (it uses the average, more or less). This is very useful for something like Gavilar's assassination, where we several potential date ranges based on different sources. The database is able to find the average date and the overlapping error range so that we get something as specific as possible. I can also create a new record for every source I use, which makes them a lot easier to organize and sort through. One downside is that I simply have a local copy of the database, and updating is a manual process. If I make changes, I have to export new spreadsheets and paste them in on top of the old copies. This isn't as bad as it sounds though, because I wanted to separate the presentation from the calculations regardless. The final product now is mostly just text, which means the Google Sheet loads up and operates a lot faster. Conditional formatting slows it down, but that was going to be there regardless. (And I can always spit out an unformatted version for maximum speed.) It also means you can use Ctrl+F to atually search the document, which is super helpful!

Front End Changes

In this latest version I've added a few more events than I had previously, and made a few corrections. All small stuff for the most part. The most notable additions are some Pre-History events which are very speculative. But we DID get some more details on the Desolations via WoB, and after some good conversation in the "History of Roshar" Shardcasts, I felt like there was enough information for it not to look stupid. :)

I've also added a few "filter" options. Under the "Spoiler Filter" sheet you can check/uncheck boxes to control which event categories are displayed. Theoretically this can be used to hide spoilers, though obviously you can use that however you want. More interesting is a filter (in the top right corner) which allows users to filter out events that are below different levels of "confidence". The color of event ID numbers gives a hint at how confident I am in their date. Something marked 1 is absolutely known with explicit support while something marked 5 was pulled out of thin air for the sake of putting something on the timeline. You can now use this little dropdown to hide events below a confidence threshhold.

One other change is that the event numbers act as hyperlinks to cells on other sheets. If you click the event ID number for something on the timeline, it will pop you over onto that event's row(s) on the References sheet. So you can instantly jump over and see what sources were used to nail down each event.

Lastly, there's an Ages sheet, which lists the age of each character (with a known age) next to each event. The Ages column on the Timeline sheet references these numbers, though it can also be used if you want to directly compare characters side by side.

Future Plans

I've still got some Oathbringer events missing, so the next notable update will happen whenever I can finish those off. Many of those that are missing simply didn't have enough information (that I could find) to place the event. The good news is that Tor's Oathbringer reread posts have been listing dates for each chapter based on the gamma read timeline. I'm not assuming these are canonical, but they make for a great basis in lieu of something more specific. So I'm currently working through these, trying to reconcile our timelines.

The bad news is that the Tor Reread only moves at 1 or 2 chapters per week, and they're only about 2/3 through the book! Also, I don't agree with every date provided. There are occaisional small discrepancies that I think will need to be adjusted on Karen's end (and other cases where mine need adjusting, but that's easy to fix...). In and of itself this isn't a big deal. The problem is that I don't know how the gamma timeline is CONNECTED, so if one date is wrong I have no way of knowing how a change there will impact subsequent dates.

So it's going to be a while before (1) Tor's Reread reaches the end of the book and (2) I am able to finish filling in my timeline with that information. Most of the holes in my timeline are from Part 4, so I'm looking forward to that. I very well may update my timeline periodically, if I feel like I've added/changed anything significant. I will update the version number in the spreadsheet's title when I do this. But I likely won't mention those updates here or in the forums as it will just be dates added/changed. When I AM totally caught up I will probably update my timeline post in the forums. I'll also probably make another blog post that covers any discrepancies I think I've found, either with the gamma timeline or with contradictions in the book itself.


Stormlight Archive Timeline

Since this has been primarily a personal project, I figure it deserved a post in this blog as well. I'm not going to talk about the content of the timeline itself here. This is more about the background and (ongoing) development of it.

Link to the timeline for reference:


There were two primary inspirations for creating this timeline.

First was this Wheel of Time timeline, which mostly just made me jealous that we didn't have a similar overall timeline in the works.

Second was the Words of Radiance Timeline that was primarily created by WeiryWriter. Between the Everstorm countdown and a list of highstorm dates revealed in an epigraph, were were able to pin down most of the events in Words of Radiance with great accuracy. Weiry had started a timeline for The Way of Kings, but there just wasn't much concrete information to work with in that book, unfortunately. Because these timelines were living on Coppermind, we didn't want to post anything there that was more assumption than fact.


So the idea here is to have a timeline that DOES allow for assumptions and guesswork. But it was important to me that the whole thing be as well-researched and supported as possible. I wanted to support every date on the timeline with some kind of sourced information. Assumptions needed to provide the supporting evidence. And the confidence or certainty in an event needed to be transparent.

I began by importing the Words of Radiance timeline and building out my concept for how this would work. There are two ideas that stood out: "events" and "intervals". An "event" is some event that happens in-world. A point in time that happens on a specific date. An "interval" is some period of time that passes in between events.

Both events and intervals can have a "range" or "error" associated with them. This is introduced by uncertainty and assumptions. For example, if a flashback happened "Five Years Ago", we can use an interval of exactly 5 years... But we know that this doesn't mean precisely 5 years. Brandon isn't being that specific. So we attach some wiggle room to the interval. Instead of an interval of "minus 5 years" we use "minus 5 years, plus or minus 2.5 months". This error introduced by interval uncertainty factors into the dates themselves, of course. And it adds up. So if there was some event that happened "one year plus or minus 2 months" after the flashback of that last example, this event now has +/- 4.5 months of error with respect to the event that the flashback date is based on.

The range alone doesn't account for what I call "confidence". There's a bit of gut feel involved here, and it's certainly true that more error/range tends to come with less confidence. But there are certainly cases where something with a range is still something we can be fairly confident in.


After importing Words of Radiance I began to work on The Way of Kings, which is where things got really challenging. You have to really dig into that book, digging for any scrap you can get. For example, at some point there is an implication that Sadeas's bridge crews are supplemented with new men on chachel, the third day of the week. We can use this tidbit later in the book to pin down the days that Lopen and Shen join Bridge Four. Another thing I had to do a lot was work backwards. Most of Kaladin's TWoK timeline is actually worked backwards from the end of the book. Because the time that passes during Part 1 is incredibly ambiguous.

There's also some contradictions, or just things that don't seem to fit very well. A comment by Elhokar at the first feast put the Chasmfiend hunt disaster on a date that doesn't work with the story, for example. Another thing involving the Chasmfiend hunt--Kaladin was strung up for the highstorm on that same day, which doesn't entirely make sense because Sadeas was out on the hunt. Prior to the release of Oathbringer, Karen Ahlstrom gave us some tidbits that helped pin down some of the dates. This helped a lot. Some of them I wasn't entirely sure about, and I regret that I didn't keep better record of those disagreements. In any case, I've tried my best to align my timeline with hers and make note of any clear contradictions that exist.

I got some help pulling together notes for chronology in Oathbringer. It isn't, unfortunately, as precise as WoR was, but Brandon is more free with mentioning the passage of time at least, and Karen seems to be doing a pretty good job of tweaking the numbers so that it makes sense. I have not worked out all of my timeline to match her dates yet, however, because there are a few tweaks here or there that I think need to be made. In any case, I've still got a bit more content from Oathbringer that needs to be worked out.


One frustrating thing about the timeline is that it's SLOW. It takes forever to open/load, and this is only going to get worse with more books. The calculations that happen in the spreadsheet aren't terrible, but every row of the sheet does have more calculations going on than you might think. And on the timeline sheet there's a lot of string concatenations that slow things down pretty badly.

I'm also frustrated by the way each entry has to exist on a single row. There are some cases where an event is based on TWO other events/intervals, and the only way to do this is by doing the math manually. This gets dangerous because many thing in the timeline are subject to change, so a shift in one of those dependencies can cause an error and I wouldn't know it readily. The sources and notes are also crammed into a single cell, which is terribly sloppy organization.

Adding new rows has also caused some problems. Each entry has to be referenced by an ID, and I'm uncomfortable creating these manually for fear of making a mistake.

Future Plans

To solve a lot of these problems, I've been looking at moving the whole thing to an offline relational database. Anytime I made a change I would have to manually update the spreadsheet posted online, but I think it should be easy enough to automate most of that process.

The idea is to have 3 separate tables for "events", "intervals", and "sources". Each one has a unique ID. Events are linked to one or more interval--it uses the average resultant date if so, and the overlap of their ranges to determine error. Intervals are linked to one or more sources. I don't have to put events/intervals/sources in some logical row on a spreadsheet. I can just add new ones to the end, letting the database assign them a unique ID. I should be able to build an interface for inputting this info so that I don't have to add it directly to a table myself.

From there it's a simple query to compile everything. And with all of the information in a database I should be able to do a lot of other cool stuff that would be harder to do in the original spreadsheet. For example, I'd like to see what happens if I filter out everything below some confidence threshold. Because the information is more transparent, and not put together by a chain of concatenations, I can do some other cool stuff like create links between an entry on the timeline and the source info.

Here's an output from the (very much work in progress) new version I'm working on:

All this to say, not much should change to the front end of the timeline. But there might be a bit more transparency/functionality, and inputting new data should be a cleaner process.

Anything else to say? I don't think so. Feel free to ask questions though.


Put together this spreadsheet based on the Statistical Analysis data on Coppermind: Stormlight Analysis (2018-9-7).xlsx. The Oathbringer data I entered myself when the book was released, so I feel pretty confident in that. Not certain about the other two, but I expect they're fairly accurate. Had to enter in the Edgedancer data for this myself, along with character genders. Otherwise it was just minor edits, separating the data, etc.

Some fun charts I put together with it below. Let me know if you'd like to see any other interesting comparisons and don't feel like doing it yourself. :)

Spoilers: There aren't any real spoilers below, UNLESS you don't want to know which characters appear in future books or how much screen time they get. If you don't want to know that, you've been warned.




(as someone pointed out on Discord, I've lumped femalen listeners in with female. might be some other odd cases that I overlooked.)





Roshar Distances

Distances between several locations on Roshar, in miles.

Full sheet:

(really just go there, it's much better)

      location B Rall Elorim Kasitor NW Shinovar coastal mountains W Shinovar coastal mountains SW Shinovar coastal mountains W Steen W Tukar S Frostlands Shallow Crypts New Natanan Dawn's Shadow NE tip east coast peninsula NE Herdaz SE Aimia Shinovar coast Dumadari E Akak Hearthstone Shattered Plains
      lat 0 -3 -4 -10 -16 -19 -23 -29 -23 -16 -14 -5 -2 -14 -14 -21 -3 -8 -19
      long -14 -18 -24 -28 -27 -29 -26 26 35 37 33 34 22 -28 -31 15 25 21 31
location A lat long distance                                      
Rall Elorim 0 -14   0 552 1187 1879 2237 2610 2809 4852 5439 5619 5223 5304 3979 2150 2384 3745 4313 3922 5066
Kasitor -3 -18   552 0 668 1327 1717 2095 2346 4855 5551 5843 5481 5688 4403 1611 1835 3849 4724 4265 5245
NW Shinovar coastal mountains -4 -24   1187 668 0 790 1362 1733 2108 5174 5962 6353 6025 6317 5057 1182 1329 4294 5372 4881 5726
W Shinovar coastal mountains -10 -28   1879 1327 790 0 670 999 1448 4918 5800 6336 6087 6584 5454 442 538 4253 5733 5150 5683
SW Shinovar coastal mountains -16 -27   2237 1717 1362 670 0 381 778 4340 5253 5856 5663 6294 5319 242 451 3812 5555 4911 5204
W Steen -19 -29   2610 2095 1733 999 381 0 513 4209 5143 5798 5649 6362 5489 560 584 3814 5699 5029 5154
W Tukar -23 -26   2809 2346 2108 1448 778 513 0 3707 4646 5320 5198 5965 5211 1011 1094 3387 5386 4696 4683
S Frostlands -29 26   4852 4855 5174 4918 4340 4209 3707 0 946 1695 1757 2747 3005 4572 4759 1225 2873 2361 1173
Shallow Crypts -23 35   5439 5551 5962 5800 5253 5143 4646 946 0 794 1011 1990 2653 5480 5682 1704 2419 2131 563
New Natanan -16 37   5619 5843 6353 6336 5856 5798 5320 1695 794 0 451 1254 2206 6069 6301 2088 1907 1858 654
Dawn's Shadow -14 33   5223 5481 6025 6087 5663 5649 5198 1757 1011 451 0 1000 1767 5860 6113 1851 1481 1409 584
NE tip east coast peninsula -5 34   5304 5688 6317 6584 6294 6362 5965 2747 1990 1254 1000 0 1358 6456 6739 2586 1010 1444 1576
NE Herdaz -2 22   3979 4403 5057 5454 5319 5489 5211 3005 2653 2206 1767 1358 0 5428 5727 2214 348 672 2093
SE Aimia -14 -28   2150 1611 1182 442 242 560 1011 4572 5480 6069 5860 6456 5428 0 300 4010 5679 5052 5415
Shinovar coast -14 -31   2384 1835 1329 538 451 584 1094 4759 5682 6301 6113 6739 5727 300 0 4263 5976 5343 5649
Dumadari -21 15   3745 3849 4294 4253 3812 3814 3387 1225 1704 2088 1851 2586 2214 4010 4263 0 2228 1551 1441
E Akak -3 25   4313 4724 5372 5733 5555 5699 5386 2873 2419 1907 1481 1010 348 5679 5976 2228 0 703 1871
Hearthstone -8 21   3922 4265 4881 5150 4911 5029 4696 2361 2131 1858 1409 1444 672 5052 5343 1551 703 0 1572
Shattered Plains -19 31   5066 5245 5726 5683 5204 5154 4683 1173 563 654 584 1576 2093 5415 5649 1441 1871 1572 0

Some calculations I did a while back. Was planning to do more with the moons, but I just haven't had time and figured it was worth going ahead and posting this here as is.


  1. Surface gravity on Roshar is 0.7 g (source: Arcanum Unbounded)

  2. Roshar's radius is 5663 km (source: JordanCon 2018)

  3. This map of Roshar (minor WoR spioler) gives both latitude and longitude lines. The planet can be broken into 200 "squares" horizontally and 100 "squares" vertically. (source: Peter on Reddit) This map of Roshar (an azumithal equidistant projection) helps to place the equator as the latitude line passing through the southern tip of Kadrix island.

  4. One Rosharan solar day is 20 Rosharan hours. The moons have an orbital period of one solar day.


  1. The "standard cosmere" gravity is 1 g = 9.81 m/s2 (surface gravity on Earth)

  2. The "standard cosmere" size refers to planetary radius (and circumference) and is R = 6371 km (Earth's radius)

  3. The gravitational constant, G, remains unchanged


Units are "real" units unless defined below.

  1. 1 Rdeg (Rosharan degrees) = π/100 radians (200 Rdeg in a circle)

  2. 1 Rhour (Rosharan hour) = 3473 seconds (calculation)


Size of Roshar (planet)

Radius = 5663 km (88.8% of Earth  radius. This is roughly in line with Khriss's estimate that Roshar's radius is 0.9 R in Arcanum Unbounded.) 

Diameter = 11 330 km (88.8% of Earth diameter)

Circumference = 35 580 km (88.8% of Earth circumference)

Surface Area = 4 * π * (radius)2 = 4.030 × 108 square km (79% of Earth surface area)

Volume = 4 / 3 * π * (radius)3 = 7.608 × 1011 cubic km (70% of Earth volume)

Mass Calculations

Surface Gravity = 0.7 * g = 6.86 m/s2 (70% of Earth surface gravity)

Mass = (surface gravity) * (radius)2 / G = 3.296×1024 kg (55% of Earth mass)

Density = mass / volume = 4.333 g/cm3 (79% of Earth density)

Characteristics of Roshar (continent)

Northernmost point: northern tip of Iri @ 2 Rdeg N = 3.6 deg N

Including islands: northern tip of Kadrix island @ 3 Rdeg N = 5.4 deg N

Southernmost point: southern tip of Frostlands @ 30 Rdeg S = 54 deg S

Including islands: southern tip of Thaylenah @ 32 Rdeg S = 57.6 deg S

Easternmost point: New Natanan (and Frostlands coast) @ 37 Rdeg E = 66.6 deg E

Westernmost point: eastern tip of Steen @ 29 Rdeg W = 52.2 deg W

Including islands: eastern tip of Aimia @ 38 Rdeg W = 68.4 deg W

Furthest distance: west coast of Shinovar to tip of unclaimed NE peninsula = 10 610 km (calculation)

Size Comparrisons

By u/Shagomir on Reddit, based on this Mollewide (equal-area) map:


Each pixel on the map is approximately 78.25 km2

Major regions:

Region Area Comparison Area
Roshar (Total) 414,030,000 km2 Earth 510,060,000 km2
Roshar Oceans 373,780,000 km2 Earth Oceans 361,900,000 km2
Roshar (Continent) 40,250,000 km2 Asia 43,820,000 km2
Aimia 984,000 km2 New Guinea 786,000 km2
Thaylenah 414,000 km2 Sumatra 443,000 km2
Purelake 1,160,000 km2 Caspian Sea 371,000 km2
Sea of Spears 129,000 km2 Lake Superior 82,100 km2

Size of countries:

Region Area
Unclaimed 8,649,000 km2
Alethkar 7,134,000 km2
Jah Keved 5,553,000 km2
Iri 2,473,000 km2
Tu Bayla 2,040,000 km2
Reshi Isles 1,582,000 km2
Shinovar 1,407,000 km2
Azir 1,343,000 km2
Herdaz 1,155,000 km2
Babatharnam 1,107,000 km2
Rira 1,056,000 km2
Aimia 984,000 km2
Tukar 702,000 km2
Emul 596,000 km2
Marat 524,000 km2
Greater Hexi 454,000 km2
Thaylenah 414,000 km2
Yezier 396,000 km2
Marabethia 394,000 km2
Yulay 393,000 km2
Tashikk 364,000 km2
Triax 336,000 km2
Liafor 319,000 km2
Desh 230,000 km2
Steen 156,000 km2
Alm 144,000 km2
Bavland 141,000 km2
Tu Fallia 127,000 km2
Shattered Plains     80,000 km2

List of comparable countries on Earth:

Country Area
Russia 16,377,742 km2
United States 9,147,593 km2
Australia 7,633,565 km2
India 2,973,190 km2
Argentina 2,736,690 km2
Mexico 1,943,945 km2
Iran 1,531,595 km2
South Africa 1,214,470 km2
Egypt 995,450 km2
Turkey 769,632 km2
Spain 498,980 km2
Sweden 410,335 km2
Germany 348,672 km2
United Kingdom 241,930 km2
Syria 183,630 km2
Iceland 100,250 km2
Czech Republic     77,247 km2


Orbital period: T = 20 Rhours = 69 480 seconds (precession makes this weird)


Roshar has 50 minutes/hour, 20 hours/day, 5 days/week, 10 weeks/month (50-day months), 10 months/year (500-day years). Brandon and Peter have said that a Rosharan year is 1.10 Earth years and that a Rosharan hour is shorter than an Earth hour. (This suggests we should assume the 1.10 number is precise.)

The definition of years and days on Earth is ambiguous. With no seasons, the Rosharan year is determined according to the stars, so we'll assume Rosharan year refers to the sidereal year. An Earth sidereal year is 365.25636 SI days of exactly 24 SI hours. So for Earth we'll use 60 minutes/hour, 24 hours/day, 7 days/week, 30 days/month, and 365.25636 days/year.


Using R to represent Roshar and E to represent Earth:

1 R minute = 1.16 E minutes = 69.4 E seconds

1 R hour = 0.964 E hours = 57.9 E minutes

1 R day = 0.804 E days = 19.3 E hours

1 R week = 0.574 E weeks = 4.02 E days

1 R month = 1.34 E months = 40.2 E days

1 R year = 1.10 E years = 13.4 E months = 402 E days


A 10 year-old Rosharan is 11 in Earth years.

A 20 year-old Rosharan is 22 in Earth years.

A 80 year-old Rosharan is 88 in Earth years.

Sign in to follow this  
Followers 0