Flow, process and networks

Origin-destination matrix

Shows movement quantities from each origin to each destination in a matrix.

  • Table
  • Flow
  • Comparison

What it answers

Which origins send the most to each destination?

Shape
Origin rows and destination columns
What it shows
Directional concentration and asymmetry.

Example

The question

Where do our deliveries start and end?

Deliveries by origin (rows) and destination (columns), September

Deliveries by origin (rows) and destination (columns), SeptemberRows are origins, columns destinations, darker purple to pink means more deliveries. Largest: Malmö to Lund 120; Lund to Malmö 90; Malmö to Ystad 65; Ystad to Malmö 55.ToMalmöLundKalmarYstadMalmö01204065Lund9001530Kalmar251005Ystad552040FromDeliveries0120
Deliveries by origin (rows) and destination (columns), SeptemberRows are origins, columns destinations, darker purple to pink means more deliveries. Largest: Malmö to Lund 120; Lund to Malmö 90; Malmö to Ystad 65; Ystad to Malmö 55.ToMalmöLundKalmarYstadMalmö01204065Lund9001530Kalmar251005Ystad552040
Rows are origins, columns destinations, darker purple to pink means more deliveries. Largest: Malmö to Lund 120; Lund to Malmö 90; Malmö to Ystad 65; Ystad to Malmö 55.

Illustrative data. It belongs to no company.

When to use it

Use it when

Comparing many origin-destination pairs precisely.

Avoid it when

When geographic route shape is central.

How to read it

Locate an origin row and destination column, then read the cell.

Note

Explain diagonal cells and zero versus missing pairs.

The data you need

Layout
Edge list plus optional node table
Fields
Source: text ID; Target: text ID; Value: nonnegative number
One row is
One directed source-to-target quantity. What is the grain?
Rules
Use consistent node IDs and units. Aggregate duplicate pairs deliberately. Check balance where flow conservation is expected.
Optional
Separate node table: NodeID,Label,Group.
Preparation
Resolve node identities and endpoint joins; define direction and duplicate/self-link handling. Aggregate weights only under a stated relationship or flow definition.
Units
Unweighted links encode presence. Weights need a unit; flow shares divide by stated source, destination or network totals, not an assumed common denominator.
Example of the input layout: Edge list plus optional node tableAn edge list: one row per link, from one node to another, often with a node table beside it.FromToValueABACBCCDABCD
An edge list: one row per link, from one node to another, often with a node table beside it.

Worked example

A->B30, B->A10. Matrix[A, B]=30 and[B, A]=10; direction matters.

SourceTargetValue
AB30
AC20
BD30