Design goals
Our symbols have to do three jobs at once: show what kind of event was reported, show which party it is associated with (or that we do not know), and show how well supported the report is. They have to stay legible at small sizes on a dark or light map, in both color and grayscale, and they must never blink or flash.
Every symbol is drawn by our own code from a single set of geometry, so a pin on the map, in the intel panel and on the design sheet is always the same shape.
Where the shapes come from
The affiliation frames borrow the logic of NATO joint military symbology (APP-6) and its U.S. counterpart (MIL-STD-2525), where the outline of a symbol encodes affiliation: a diamond for hostile, a rectangle for friendly, a square for neutral and a quatrefoil for unknown. Anyone who reads military maps will recognize the idea.
There the resemblance ends. Military symbology describes units: their type, size and equipment. We never plot units. Our symbols describe reported events, so the inside of each frame carries an event glyph instead of a unit icon, and there are no echelon markers, modifiers or amplifiers.
Affiliation frames
- Hostile: a diamond, outlined in red.
- Friendly: a rounded rectangle, outlined in blue.
- Neutral: a square, outlined in green.
- Unknown: a circle with four inward notches, outlined in amber.
Frames are stroked at 2 pixels in the affiliation color and filled with the map's base tone at 85 percent opacity, so the glyph stays readable over any background.
Affiliation is a map key for a given theatre, not a judgment. In theatres where the framing is contested, every party is shown as neutral. Events generated automatically from news-event databases always use the unknown frame, because automated coding cannot reliably say which side was responsible. A pin moves to another frame only after editorial review.
Event glyphs
Each event type has a line glyph drawn at 2 pixels with no fill, inside a 28-pixel badge:
- Airstrike: a downward chevron over a burst. Red.
- Drone or missile: an arrow with small delta wings. Amber.
- Ground clash: two short crossed strokes. Red.
- Artillery: a shell outline with a driving band. Red.
- Naval: an anchor. Blue.
- Infrastructure: a lightning bolt. Amber.
- Unrest: three vertical bars on a base, a simplified raised fist. Violet.
- Humanitarian: a cross. Green.
Glyph color follows the event type, while frame color follows affiliation. A red airstrike glyph in a blue friendly frame is a strike associated with the party shown as friendly in that theatre; it says nothing about whose territory it hit.
Confidence rings
A thin ring around the frame shows the verification tier:
- Dotted: one report.
- Dashed: two independent reports.
- Solid: three or more independent reports, or geolocated imagery.
The ring is deliberately quiet. It is meant to be read on a second look, after type and affiliation. Because it is coded by line pattern rather than color, it survives grayscale printing and most forms of color blindness.
Lines, hatching and fills
- Front line: a 2.5-pixel dashed red line with small triangular teeth every 24 pixels on the side that has been on the offensive in that sector.
- Gray zone: a 45-degree hatch of 1-pixel lines at 35 percent opacity, 8 pixels apart. Hatching rather than a fill says the ground belongs to no one we can name.
- Control fills: hostile areas at 12 percent red, friendly areas at 10 percent blue. The fills are kept faint so that terrain, place names and pins stay readable underneath.
The blue fill is slightly lighter than the red because blue reads as heavier at the same opacity on our base map; the two are tuned to look equal in weight.
What the symbols never encode
No symbol shows unit size, unit type, strength, direction of movement or the current position of any force. That is a deliberate limit, set out in our delay policy on the Methodology page, and it is why the symbol set has no arrows for maneuvers and no unit icons.