MISSILEMAP Frequently Asked Questions (FAQ)

What is MISSILEMAP? Who made it?

MISSILEMAP is an interactive web visualization meant to aid in the understanding of information about the capabilities and consequences of missile launches, in particular nuclear-armed ballistic missiles. It allows for the graphical representation of ranges, great-circle paths, accuracy (Circular Error Probable), blast damage, and probabilities of kill (the chance that a given weapon will put a particular amount of blast damage on a target). It was made to aid in discussions about missile development, since the technical nature of honest-to-god “rocket science” can make it rather impenetrable from the perspective of laymen, yet many of the fundamental questions are key to local understanding of geopolitical questions (e.g., “could North Korea hit my city with their latest missile?”).

It was created by Alex Wellerstein, a historian of science and technology at the College of Arts and Letters at the Stevens Institute of Technology, in Hoboken, New Jersey, USA. The site’s hosting is paid for by the College of Arts and Letters. It is programmed in Javascript, making extensive use of JQuery and the D3.js libraries, as well as the Google Maps Web API Leaflet.js library. Professor Wellerstein is a historian of nuclear weapons, the creator of the NUKEMAP, the author of the Restricted Data Blog, and developed this application using Cold War-era algorithms that have long since been declassified.

The Single Shot Probability of Kill (SSPK) algorithm for area targets was based on equations and concepts from two publications:

But also contains substantial original programming by Professor Wellerstein (the “Monte Carlo” approach to the area target is essentially original, for better or worse).

The underlying nuclear blast model (which allows for arbitrary height of bursts) is the same one used by NUKEMAP and is derived from Samuel Glasstone and Philip J. Dolan’s The Effects of Nuclear Weapons, 3rd edn. (Washington, DC: Department of Defense and Department of Energy, 1977), via the method described here.

Return to top

What are the limitations of MISSILEMAP?

MISSILEMAP deliberately uses somewhat simplified models for understanding missile accuracy, damage, and so on. When specifying a range, for example, it reads that as essentially “ground range” and does not take into account the full ballistic trajectory. It uses (as the CEP description below explains) the most simplified and basic sort of accuracy considerations. It should not be used by actual rocket scientists; it is meant as a simplified graphical representation that can be used by laymen, but nonetheless it is meant to give considerable flexibility in its operation (so one can “experiment” with how much changing various parameters changes the overall results). As noted below, the choice of values from the “presets” is based on public estimates and thus may not be entirely accurate.

Return to top

Where does the data for the “presets” come from?

Missile range, yield, and accuracy data can be tricky to come by, as these numbers tend to be closely-kept secrets for reasons that are fairly obvious. However there are many places that estimate these numbers, and these estimates have been used for this application. In most cases, missile data comes from the Center for Strategic and International Studies Missile Threat Project, which contains a large database of international missile profiles, including range, yield, and CEP estimates. The CSIS database was chosen primarily because its estimates seemed plausible, and because it contained a lot of useful information in one place; experts can, and do, dispute individual estimates.

For missiles not in their CSIS database, Wikipedia has sometimes been a source of estimates, as have discussions with missile experts. Estimates can, of course, can vary a lot — MISSILEMAP’s values are fairly conservative, but certainly can be disputed. Users are invited to enter in their own values to see how they change matters. Experts who desperately want to dispute existing values in the preset list should contact Alex Wellerstein.

For launch sites, the data is taken from a lot of different places. Some of it is quite speculative! They are provided just as illustrations. Don't plan your strike plans based on the data here...

Return to top

How should I use MISSILEMAP? Is there a tutorial?

What follows in this FAQ is something of a tutorial — in explaining the concepts (particularly CEP and SSPK), it will walk through potential use situations. So continue reading, especially the section on CEP.

Return to top

What do the various icons and rings shown in MISSILEMAP indicate?

There are a lot of possible rings and icons shown on the NUKEMAP screen. When zoomed out fairly far, this is something you might see (this example is a Polaris A-3 missile in a hypothetical attack against the Kremlin). In all of these examples, high contrast mode is enabled, because it allows for easier visualization of these rings even while it can make finding actual locations a little difficult (it is good for screenshots).

Screenshot of the MISSILEMAP icons visible from a zoomed out view, with labels

The launch site is where the missile is being launched from and can be dragged wherever, or positioned by clicking the magnifying glass icon (Magnifying glass icon) next to the “Launch site” text in the top menu. The target aim point shows where the missile is aimed, and can also be dragged or positioned using the magnifying glass icon next to the “Target ” text in the top menu.

The weapon range is a circle that shows the range of the weapon, as indicated by the “Range” input box. The target aim point is constrained to the range. The missile path shows the shortest ground distance between the launch site and the target aim point. (It does not attempt to model the altitude of an actual missile, and does not model all possible paths of maneuverable weapons like cruise missiles.)

It is worth noting that the standard "Web Mercator" map projection can produce considerable distortion, making weapon ranges (and missile paths) look very “curved” out of alignment. They are, in fact, perfect circles or great circle paths, as indicated by the globe display in the top right corner of the screen. The globe display will move so that the center of the display corresponds with the center of the map display, and similarly the globe can itself be dragged to change the map view.

Zooming in on the target aim point, additional “rings” are visible:

Screenshot of the MISSILEMAP icons visible from a zoomed in view, with labels

The target aim point and missile path are the same as before. In blue, one can see three rings indicating different aspects of the Circular Error Probable (CEP), which is set via the CEP input box. The smallest blue ring is the circle described by the CEP (which defines its radius, in meters). The second largest ring is a circle with the radius of CEP × 2. The third largest ring is a circle with the radius of CEP × 3. (See the section on CEP below for the relevance of these circles.)

The blast damage display shows the area that would be subjected to the blast pressure selected from the “Blast damage display” dropdown menu (in this example, it is 600 psi, for a surface detonation). The “ghosted” blast ranges indicated above always are shown, for the 1 psi blast range (breaks windows), 5 psi blast range (destroys houses), and 20 psi blast range (destroys most buildings). (This is so that when looking at high intensity blast damage, one does not lose focus of the fact that there will be other major effects spreading a great deal further.) Note that in the image above, the 5 psi blast range and CEP × 2 are close enough to the same size that the 5 psi boundary is hard to see.

The target area size depicts the size of the target as calculated for an area target Single Shot Probability of Kill (SSPK), and is set in the “Single Shot Probability of Kill calculator” accessible by clicking the magnifying glass icon (Magnifying glass icon) next to the SSPK label in the top window. It is an optional setting that is not enabled by default. Please read the section on SSPK below to understand what this parameter indicates.

What does “Animate CEP” and “shadow” do?

If you click the checkbox next to “Animate CEP” when you have a CEP, yield, and blast pressure from the “Blast damage display” selector, then it will move the blast pressure ring around, “launching” new missiles and landing them according to the accuracy specified. This is meant as a useful way to think about what CEP “really means” — how it would affect actual placement of blast damage.

If you have “shadow” checked, it will retain a ghostly image of each blast ring “hit” in its place. The accumulation of these shows how multiple, repeated launches might land. Unchecking the “shadow” button will clear the accumulated shadows. (If you want to see them without the target reticule, uncheck “Animate CEP” and then move the target reticule.)

Return to top

What is CEP (Circular Error Probable) and why does it matter?

There are many ways to talk about how accurate a projectile can be. In the American context, historically it became common to compress all of these various ways into a single number, the CEP or Circular Error Probable. (For the technically-minded, you can think of this as how a “rocket scientist” conveys information about Gaussian probabilities to a senior military officer or Congressman in a single number.)

For any given point aiming point of a target, the CEP describes the radius of a circle in which there is a 50% chance that the projectile will land. So if our CEP is, say, 1,000 meters (1 km), then we can say that if we aim our missile at a given target (say, the Kremlin, just to pick a Cold War target), there is a 50% chance that the missile will fall within 1,000 meters of it. Based on Gaussian probabilities, we can also say that there is a 43% chance of the target falling between the range of 1 × CEP and 2 × CEP (so between 1 km and 2 km in our example), and a 7% chance of it falling between 2 × CEP and 3 × CEP (between 2 km and 3 km in our example). See the illustration below:

Illustration of the concept of CEP

(The arrows are staggered just so they each stand out from one another — the point to radii of the specified distances from the aiming point.)

In real life, missile accuracy and CEP is not always so perfectly spherical or evenly distributed. Real-life errors can be tilted in one direction or another, or biased towards centers other than the aimed-at target. See this page on CEP for a long discussion of this. MISSILEMAP uses a simplified model for the sake of visualization and understanding (a “Rayleigh” approach, per the terminology on the linked to page, but even more simplified in that it is impossible for any shot to land outside of 3 × CEP); it should not be understood as the end of the discussion.

When CEP is combined with the explosive radius of a weapon, it becomes a very useful number. For example: if you selected the “preset” for a Nazi V-2 rocket, a non-nuclear ballistic missile used during World War II, you can see it has a relatively large CEP (12 km). If you then select the “Blast damage display” of a “1 psi surface burst,” it will show you the approximate expected range of very light blast damage from the weapon’s explosive components, which are only equivalent to about 0.8 tons of TNT (0.0008 kt). You will have to zoom in very far to see the blast ring, because the range of the blast is much smaller than the size of the CEP.

Example showing a 1 psi blast pressure from a V-2 rocket aimed at London.

Position the missile site so that it is within range of London, United Kingdom. (You can do this very easily by selecting one of the WWII V-2 launch sites from the “Launch preset” window, which will locate the missile at an actual launch site from the war, and then clicking the magnifying glass icon (Magnifying glass icon) next to the “Target” line in the top window, and then typing “London” into the lower search box.) You can see that with a 12 km CEP, the V-2 had nearly a 93% chance of destroying some part of greater London (the CEP × 3 radius is outside of it, but the CEP × 2 radius is not), but it couldn’t pick which part. Which is to say, the V-2 missile had about as much explosive as you’d need to destroy part of a city block (which is attested to in photos of its damage). But it lacked accuracy to target any particular city block in particular: the Germans were shooting it “blind” in the direction of London, knowing it would hit something, but they were unable to specify which “something” they were hitting. (In actual historical reality, they were fooled by double-agents into aiming somewhat to the east of London, so their actual hit rate was even lower than it would have been.)

Let’s look at another preset: choose a Titan II launch site from the “Launch preset” menu. The Titan II was an American Cold War thermonuclear-armed intercontinental ballistic missile (ICBM). Which is to say, it was a very big rocket with a very big warhead, and could easily hit sites as far away as the Soviet Union. Position the target onto Moscow (which probably had several Titan II’s aimed at it during the Cold War). Let’s imagine that we are interested in finding out how much heavy damage to houses would be caused, and selected the “5 psi airburst” option from the “Blast damage display” menu. You can see that the 5 psi blast range is several times larger than the CEP, and covers the entirety of the city: if your goal is to put 5 psi of blast pressure onto a target the size of Moscow, you literally cannot miss with a Titan II. (If you want to confirm this, click “Animate CEP” and watch how successive missiles “fired” at Moscow always hit it, even if their exact ground zeroes move by a little bit.)

"Shadowed" blast rings from repeated "launched" of a Titan II missile on Moscow, showing areas hit by 5 psi of blast pressure.

If you change the blast pressure range to 1000 psi, you can see that the area covered is not only smaller, but there are significant distances between some of the shots (e.g. those at the very top or bottom of the shadows), even though they cluster around the aiming point:

"Shadowed" blast rings from repeated "launched" of a Titan II missile on Moscow, showing areas hit by 100 psi of blast pressure.

One last example. Let’s select a Soviet R-7 missile site, their first generation ICBM. Set the Pentagon (just outside Washington, DC) as its target, and zoom in. Let’s imagine that we are a Soviet war planner, and we want to see if the R-7 could destroy a deep, hardened bunker underneath center of the Pentagon. Let’s say that it would require 10,000 psi (a very high number!) to destroy this bunker (so set the “Blast damage display” to 10,000 psi). We can see, if we zoom in very close, that the 10,000 psi blast radius of the R-7’s 5 megaton warhead would certainly destroy the Pentagon complete — if it hit it. But that particular blast radius is very small compared to the size of the CEP. If we click “Animate CEP,” we can see that the odds of actually putting that much blast pressure on the Pentagon is very low — so low, in fact, that it’s unlikely that this missile gives us the capability to do that. As seen below, with the “shadows” turned on we can see that the 10,000 psi blast pressure range, while centered on the Pentagon, also misses a huge proportion of the time.

Blast shadows from a 10,000 psi surface burst, 5 megaton warhead, aimed at the Pentagon

How low, exactly? See the section on SSPK below to see how to calculate that probability. On the other hand, if our goal is to put 5 psi of blast damage on Washington, DC, itself, then it can’t miss. This illustrates very nicely how accuracy and blast damage work together to indicate what kinds of uses a missile can be put to: the R-7 would be a useful weapon for killing cities, but not for killing bunkers.

Is this of more than academic interest? Yes. If we believe, for example, that North Korea has a missile capable of hitting Los Angeles, but that it has a low yield (e.g., 30 kt) and large CEP (e.g., 2 km, which is close to what early Chinese ICBMs were), then we can use MISSILEMAP to ask the question: What could the North Koreans actually do with that missile? The answer is fairly clear: they could take out a chunk of Los Angeles, but not specify which chunk — the accuracy would be too low to be very specific, given that blast range.

Map showing several "launches" of a hypothetical North Korean nuclear weapon agains Los Angeles, with the 5 psi blast radius "shadows"

We can in turn easily ask other questions: if we imagined North Korea wanted to destroy a specific military base, such as the Naval Base at San Diego, what CEP would they need to put 20 psi onto that target? Conversely, how would increasing the yield (without increasing their CEP) change that possibility? MISSILEMAP thus gives some useful insights into key policy questions, even if the relevant variables (like the CEP and warhead size) are unknown.

Return to top

What is SSPK (Single Shot Probability of Kill) and why does it matter?

The MISSILEMAP allows for the calculation of a number called the Single Shot Probability of Kill, or SSPK. Roughly speaking, this is the odds that any single missile launch will put an appropriate amount of blast pressure onto a given target to destroy it. There are a variety of ways to calculate SSPK. MISSILEMAP uses the following variables: the CEP (missile accuracy), the weapon yield, the blast damage required to destroy the target (which is input through the “Blast damage display” menu), the reliability of the weapon system (default is 100%, but real-life reliabilities can vary a lot, because a lot can go wrong with a missile), and the size of the target (by default it is a target with a diameter of 0 meters, which is to say, a “point target,” but this can be changed, as will be described).

For point targets with 100% reliability, the SSPK is defined as:

SSPK = 1 − 0.5(RL/CEP)2

Where RL is the “lethal radius” (that is, the range of the blast damage necessary to destroy the target) and the CEP is the Circular Error Probable. But we don’t have to do this math ourselves; MISSILEMAP will calculate it from the settings we choose.

So let’s pick a weapon — let’s choose a Chinese DF-5 from the “Missile preset” menu, and position it so that the Pentagon is the target. (No offense meant to the Pentagon — it’s just a prominent target of a useful size, and easy to see in the map application.) Let’s say we want to just leave a crater where it used to be, and so let’s choose 600 psi from the “Blast damage display” menu (that is probably overkill, but we want to make sure it’s really gone, right?).

The SSPK indicator at the top left should be updated now, and say that the chances of a single DF-5 putting on an exact (0 km diameter) point at its aiming point are “only” about 55%. That’s kind of interesting by itself, but we can also do several other operations with that number if we want to. By opening the “Single Shot Probability of Kill calculator” window, by clicking the little icon of knobs next to the SSPK indicator in the top left (Knobs icon), it tells us that we would need to target 4 missiles at the target to have a 95% confidence that the destruction would be total. On the other hand, if we only require 85% confidence (we can change the confidence number from the drop-down menu on that window), we only require 3 bombs.

Screenshot of the SSPK menu for a DF-5 weapon

What if you don’t want to assume that missiles are 100% reliable, or that your target is larger than a 0 km point? On the “Single Shot Probability of Kill calculator” window, we can set those options.

The weapon reliability percentage is a total system reliability. Real-life examples are hard to come by, but you can play with the number to see how “sensitive” it is; the difference between 60% reliability, 80% reliability, 90% reliability, and 95% reliability makes for interesting comparison (in many cases, adding 5%-10% more reliability does not result in much overall difference, which raises questions about how reliable a system has to be to be a “credible” deterrent, especially given that adding more reliability often comes at great expense).

You can also set the target diameter, which is equivalent to saying, what are the odds that the entire target of a given size will have that blast pressure applied to it? It should encompass about 95% of the target. The Pentagon is about 400 m in diameter. When you set the target diameter option, it will superimpose a green ring onto the target reticule, so you can eyeball the size:

A zoomed-in map showing the Pentagon surrounded by the green ring of a 400 m diameter target area

Once you’ve set a target diameter, the SSPK will be automatically recalculated. When the SSPK is calculated for a point target (e.g., a target of 0 m diameter), it does it analytically from the formula indicated above. This is quick and easy. For area targets, the analytical solutions are not as easy to do, so, taking advantage of the fact that modern computers (and web browsers) are pretty speedy, the SSPK is calculated via a numerical (or “Monte Carlo”) method: it “simulates” a large number of missile launches and checks how many of them either entirely encompass the target (total destruction) or partially overlap the target (partial destruction). These two numbers are then displayed as part of the SSPK readout in the top window, and also on the Single Shot Probability of Kill calculator window. Because this is a simulation based on a finite number of “launches,” depending on how many launches are simulated, the amount of precision can vary, particularly on slower computers/browsers (if the SSPK function detects it is taking too long, it will “downgrade” the number of launches to a number that it detects will run quickly; for more information, see here).

So with the same Chinese DF-5 missile as before, with the Pentagon as our target, and a target radius of 400 m, and a blast destruction requirement of 600 psi, we can see that with a 100% reliable weapon our chances of destroying the Pentagon with a single missile is 41%, with a 23% chance of partially destroying it. Our required missiles for 95% confidence in destruction thus rises to 6 missiles.

You can see, perhaps, how calculations like this can lead to war planners targeting what seem like hugely redundant missiles at a single target: it depends on how much confidence is desired. If a Chinese war planner only required 50% confidence in destruction of a target to feel “safe,” they would only require 2 missiles aimed at the target. (The confidence calculation only takes into account total destruction, not partial; summing up partial destructions would require keeping track of how “destroyed” a target is through the simulations, and the SSPK algorithm does not try to do that, because the math gets sticky.)

Return to top

How does the precision of the SSPK calculation work?

As noted in the section above, the SSPK calculation for area targets (not point targets) is numerical, which is to say, it is derived from a statistical “simulation” of many launches. The default maximum number of launches run is 100,000, a fairly large number.

If, while running, the SSPK function detects that over 100 milliseconds (1/10th of a second) has passed, it will immediately stop the function and set the maximum number of launches to the number it had gotten to up to that point (which is to say, it is aiming for the function to take no more than 1/10th of a second to run). If you view your browser’s Javascript console, it will give a message to this effect if it does this downgrading. If the number of launches is between 10,000 and 5,000, it will give a warning message that indicates that it is low enough that there may be 1-3% variance between subsequent runs. If it falls beneath 5,000, it will warn that the precision is very low indeed.

If you are the kind of person who is interested in running an arbitrary number of simulations, or turning off the dynamic behavior of the SSPK precision, you can do this through your browser’s Javascript console. To disable dynamic SSPK precision adjustment, set sspk_dynamic = false. To set the number of launches arbitrarily, set sspk_max = n, where n is the number of iterations to run. To re-run the SSPK calculation, type updateSSPK() into the console and press enter (it should return “true” if it updated).

Return to top

Can I use screenshots of this website, or embed it within my own site?

This website was designed to be used and shared widely. Please feel free to link to it, post screenshots of it, quote and cite it, etc. If possible, please credit it or its information as “MISSILEMAP by Alex Wellerstein,” and provide a link to the website (either as a hyperlink or verbose link, depending on the media). For clarification, you may e-mail Professor Wellerstein (wellerstein@gmail.com), but he gets a lot of e-mails and is pretty busy and may be slow to respond or may not respond (and if he does, he will essentially say what is written here).

If you are interested in having a working copy of MISSILEMAP on your own website, the best and easiest way to do this is to embed it as an IFRAME rather than trying to host the code yourself (there are many pieces of code involved, and they are occasionally updated). You can use the permalink URL structure indicated below to link to specific settings or even to modify the appearance (within some limits) of the MISSILEMAP. You are welcome to embed it as such, though Professor Wellerstein reserves the right to modify his code at any time, including in ways that would prevent websites he judges to be malicious or harmful from embedding it.

Return to top

What is the permalink URL structure?

When you click on the “Permalink to settings” link, it will create a stable, permanent link to the current set of settings, which you can use to save work, share settings with others, or embed settings into a webpage as an IFRAME source. There are considerable permalink options that are supported but are not obvious, the sort of thing that might be of interest to advanced users (i.e., missile wonks) or people desiring to embed MISSILEMAP into another web page. What follows below is a set of URL variables that can be passed to the MISSILEMAP. Note that there are probably combinations of manually-set variables that will cause the MISSILEMAP to function in ways that you don’t desire — change variables with care. At least one variable (indicated below) could lock up your computer if set in a haphazard way, depending on the speed of your browser — change it with care if you change it at all.

To make a permalink, one or more of the following variables must follow the main MISSILEMAP url (http://nuclearsecrecy.com/missilemap/) which itself must be initially followed by a question mark (http://nuclearsecrecy.com/missilemap/?). Each variable must be preceded by an ampersand (&) and followed by an equal sign, plus a value (e.g., &c=800 would set variable c to 800). What follows is a table of variables, possible values (including an example value in brackets), and a description.

Note that each setting is processed sequentially; if you set all of the variables required for SSPK calculation (CEP, Blast Damage Display, Yield), the SSPK calculation will start to run automatically based on that data, and so if you have variables that affect that calculation (e.g. Target Diameter) they may not be taken into account unless they are passed earlier on in the sequence. You may have to experiment if constructing a permalink manually.

In addition to the above, passing “hide” as a parameter, followed by one of the following text codes (which should be separated by commas), will hide various aspects of the interface. There are two things to note here: the MISSILEMAP logo will always be visible, and clicking it will always move the user to the original website; the version number of MISSILEMAP will have an “L” for “Limited” displayed whenever one of the hide parameters are used. Example usage: &hide=globe,top

These changes are entirely aesthetic; the various bits will just be “hidden” with CSS, still technically there, just not visible. Hiding the SSPK will not stop it from being calculated behind the scenes, in other words, and hiding a control does not mean you cannot set its value with another variable. It is imagined that this would allow for easier embedding within a larger website, to show the results of the MISSILEMAP without all of its complexity.

Note that if you hide a container (e.g., col1) you do not need to hide all of the controls within it separately; they are hidden as well automatically.

Return to top


Thank you to the College of Arts and Letters at the Stevens Institute of Technology for hosting MISSILEMAP and materially enabling its development.

This application has been improved through discussions with Edward Geist, Jeffrey Lewis, and others...

Return to top

The MISSILEMAP FAQ was written by Alex Wellerstein. Last updated November 5, 2018 (converted from Google Maps to Leaflet).