A list of dependencies works until you have more than a handful. Past that, a flat list hides the thing that matters most: the clusters and loops where several pieces of work all wait on each other. A dependency matrix fixes that by putting the same items down the rows and across the columns and marking each cell where one depends on another. In one grid you can see what feeds what, spot circular dependencies, and find the sequence that untangles the plan. This guide covers what a dependency matrix is, how to build one, a worked example, and when to use it instead of a simple log.

Key takeaways

  • A dependency matrix is a square grid with the same items on the rows and the columns; a mark in a cell means the row item depends on the column item.
  • Reading a row shows everything an item waits on; reading a column shows everything that waits on it.
  • The formal version is the dependency structure matrix (DSM), used to cluster related work and sequence it to minimize rework.
  • A matrix is best when dependencies are dense and cross-connected; a dependency log is better when you need owner, status, and dates per link.
  • Use the matrix to find and remove circular dependencies before they lock a schedule.

What is a dependency matrix?

A dependency matrix is a square grid that maps the relationships between a set of tasks, deliverables, or projects. The same items are listed down the left side (the rows) and across the top (the columns), and a mark in a cell records that the row item depends on the column item. Because every item appears on both axes, the matrix captures every possible pair of relationships in a compact, scannable form rather than a long list of sentences.

Reading it is straightforward once you fix the convention. Scan across a row to see everything that item depends on (its inputs). Scan down a column to see everything that depends on that item (its outputs). That two-way readability is why a matrix beats a list as soon as the web of dependencies gets dense. The relationships it records are the same four project dependency types (finish-to-start and its variants) that govern how any two pieces of work connect; the matrix is simply the artifact that lays them all out at once.

The dependency structure matrix (DSM)

The formal, analyzable version of this idea is the dependency structure matrix, also called the design structure matrix or DSM. It is the same square grid, but it is built to be manipulated. The diagonal is left blank (nothing depends on itself), and the off-diagonal cells hold the directed links. Once the relationships are in a DSM, you can reorder the rows and columns to reveal structure.

Two analyses make the DSM worth the effort. Sequencing (also called partitioning) reorders items so that, as far as possible, everything sits below the items it depends on, which gives you a clean order of execution. Clustering groups tightly interlinked items together so you can see which chunks of work should be planned and managed as a unit. Marks that remain above the diagonal after sequencing signal feedback loops: circular dependencies that will cause rework unless you break them.

How to build a dependency matrix

Building one is a short, repeatable process. The discipline is in listing the right items and being honest about the links.

StepWhat you do
1. List the itemsPut every task, deliverable, or project on both axes in the same order
2. Set the conventionDecide that a mark means "row depends on column" and note it on the sheet
3. Fill the cellsWork row by row; mark each cell where that item waits on the column item
4. Check the diagonalLeave the diagonal blank; nothing depends on itself
5. Look for loopsIf A depends on B and B depends on A, you have a circular dependency to resolve
6. SequenceReorder rows and columns so dependencies fall on one side of the diagonal

Keep the item count sane. A matrix of 15 items is readable; a matrix of 80 is not, and that is your signal to work at a higher level (group tasks into deliverables, or projects into programs) before mapping. At portfolio level the matrix maps the links between whole projects, which is exactly the view a portfolio review meeting needs to sequence work and spot where one delayed project stalls three others.

Dependency matrix example

Here is a small matrix for a website launch. A mark (X) means the row item depends on the column item being done first.

Depends on →CopyImagesDesignBuildLaunch
Copy-
Images-
DesignXX-
BuildX-
LaunchX-

Read the Design row: it depends on Copy and Images, so both must be finished before design can start. Read the Build row: it waits only on Design. Because every mark sits below the diagonal, the work is already in a clean sequence (copy and images, then design, then build, then launch) with no circular dependencies. If a mark had appeared above the diagonal, it would flag a loop to break before the schedule could be trusted.

Dependency matrix vs dependency log

A matrix and a log answer different questions, and mature teams keep both. The matrix shows the structure of the relationships at a glance. The log carries the detail (owner, type, status, dates) for each individual link.

Dependency matrixDependency log
ShowsThe whole web of relationships at onceOne row per dependency with its details
Best forSpotting clusters, loops, and sequenceTracking owner, status, and due dates
Scales toDense, cross-connected work (up to ~15 to 20 items)Many dependencies, each managed individually
WeaknessNo room for status or ownershipHard to see the overall structure

Use the matrix to design the plan and find the loops, then hand the confirmed links to a log so each one has a named owner and a due date. Both feed the wider discipline of project dependency management, and the cross-project links a matrix surfaces are a core input to portfolio governance, where a delay in one project's deliverable becomes a risk to every project downstream of it.

A matrix is only as good as the links you put in it, and the links do not come from the plan. They come from asking the people doing the work what they are waiting on, which is the dependency mapping exercise. Run that first, then build the grid from what it produced.

Frequently asked questions

What is a dependency matrix?

A dependency matrix is a square grid that maps how a set of tasks or projects depend on each other. The same items are listed down the rows and across the columns, and a mark in a cell means the row item depends on the column item. It lets you read an item's inputs across its row and its outputs down its column, which makes a dense web of dependencies far easier to understand than a flat list.

How do you create a dependency matrix?

List every item on both axes in the same order, decide that a mark means "row depends on column," then fill each cell where a real dependency exists, working row by row. Leave the diagonal blank because nothing depends on itself. Finally, scan for circular dependencies (A depends on B and B on A) and reorder the rows and columns so the marks fall on one side of the diagonal, which gives you a clean execution sequence.

What is the difference between a dependency matrix and a dependency structure matrix?

They are the same grid, but a dependency structure matrix (DSM) is built to be analyzed. In a DSM the diagonal is blank and the off-diagonal cells hold directed links, so you can reorder items to sequence the work and cluster tightly linked items together. A plain dependency matrix is often used just to visualize relationships; the DSM adds the sequencing and clustering analysis on top.

What is the difference between a dependency matrix and a dependency log?

A dependency matrix shows the whole structure of relationships at a glance but has no room for detail. A dependency log records one row per dependency with its owner, type, status, and dates, but makes the overall structure hard to see. Teams use the matrix to design the plan and find loops, then track the confirmed links in a log so each has a named owner and a due date.

When should you use a dependency matrix?

Use a dependency matrix when dependencies are dense and cross-connected, so a flat list would hide the clusters and loops that matter. It is especially useful for finding circular dependencies before they lock a schedule and for sequencing interdependent work. If you only have a handful of simple, linear dependencies, a list or a log is enough and a matrix adds no value.

What are the four types of dependencies shown in a matrix?

The links in a dependency matrix are the same four logical relationships used in scheduling: finish-to-start, start-to-start, finish-to-finish, and start-to-finish. Finish-to-start is the most common, where one task must finish before the next begins. A matrix records that a dependency exists between two items; the specific type is usually carried in the accompanying dependency log alongside the owner and status.

E
Elena Marsh
PMO lead and portfolio strategist. Fifteen years building project management offices and running portfolio governance for technology and professional-services teams.