---
title: Data Dump
slug: data-dump
kind: anti-pattern
summary: Every field the model has, on one screen, at one level of importance — built from the data outward instead of from the job inward.
problem: >-
  The model has twenty columns, so the page has twenty fields, each with equal
  weight. Nothing on it is wrong and it is still unusable, because with no
  hierarchy the eye has no entry point and you must read everything to find
  anything.
family: [scan, inspect]
principles: [progressive-disclosure, surface-dont-bury]
status: stable
visibility: public
related:
  - title: Progressive disclosure
    url: /patterns/progressive-disclosure
    summary: The principle this violates, and the four-layer budget that fixes it.
  - title: Progressive Disclosure for Dense Detail Pages
    url: /cookbook/progressive-disclosure-detail-page
    summary: The implementation guide for rebuilding a dumped page in layers.
---

## How you get here

Nobody designs a data dump. It accretes. The screen starts with six fields, and
every subsequent request is individually reasonable — someone needs the tax
code, someone needs the created date, someone needs the internal reference. Each
addition is small and none is refused, because refusing means telling a
colleague their need does not matter.

The underlying error is upstream of any of those requests: **the page was
designed from the data outward.** The question asked was "where do I put these
fields", not "what is this screen for".

## How to recognise it

- You cannot say in one sentence what the screen is for without using "and also".
- Everything is the same size, so nothing is first.
- Someone new has to be told which three fields matter.
- The most common request about the page is "can you make it less overwhelming",
  and nobody can say which field to remove.
- Fields are ordered by the order they were added, which is the order of the
  migration file.

## Why it survives

Because every individual fact on the page is **true and occasionally useful**.
That makes it very hard to argue against any single element, and the page is
defended field by field by different people.

The counter-argument has to be made at the level of the screen: an interface is
not a list of true facts, it is a ranked answer to one question. Twenty
unranked true facts answer nothing.

## The way out

1. Write the **job sentence** — a who, doing what, needing to decide one thing.
   If it needs "and also", it is two screens.
2. Name the **one question** the screen must answer without scrolling or
   clicking.
3. Put at most **five things** at the glance layer. Everything else is demoted,
   not deleted, and every lower layer gets a visible door.
4. Do a **subtraction pass** and say out loud what you demoted. If nothing was
   demoted, you did not design, you rearranged.

The budget is the mechanism. Without a fixed cap on the glance layer, every
stakeholder's favourite field returns, and the page rebuilds itself within two
quarters.

## The cost of leaving it

It is paid by whoever uses the screen most, every time they use it, and it never
shows up as a bug. That is why data dumps last for years: the cost is real,
continuous, and invisible to everyone except the person doing the work.
