Systematically remove non-data elements from graphics to maximize information density. Based on Edward Tufte's data-ink ratio principle.
Scanned 9/8/2026
Install to Claude Code
npx -y skills add sethmblack/paks-skills --skill data-ink-maximization --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Data Ink Maximization?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/sethmblack-data-ink-maximization)More formats (shields.io, HTML) on the badges page.
---
name: data-ink-maximization
description: Systematically remove non-data elements from graphics to maximize information density. Based on Edward Tufte's data-ink ratio principle.
license: MIT
metadata:
version: 1.0.3770
author: sethmblack
repository: https://github.com/sethmblack/paks-skills
keywords:
- data-ink-maximization
- writing
---
# Data-Ink Maximization
Systematically remove non-data elements from graphics to maximize information density. Based on Edward Tufte's data-ink ratio principle.
---
## When to Use
- Chart or graphic feels cluttered
- Too many visual elements competing for attention
- Need to simplify without losing information
- Preparing graphics for publication or presentation
- Dashboard has too much "chrome"
**Trigger Phrases:**
- "My chart is cluttered"
- "How do I simplify this?"
- "There's too much going on"
- "Clean up this graphic"
- "Reduce visual noise"
---
## Inputs
| Input | Required | Description |
|-------|----------|-------------|
| graphic | Yes | The visualization to optimize |
| purpose | No | What the graphic needs to communicate |
| constraints | No | Format, size, or context limitations |
---
## Core Principle
> "Data-ink is the non-erasable core of a graphic, the non-redundant ink arranged in response to variation in the numbers represented."
> — Edward Tufte
**The Formula:**
```
Data-Ink Ratio = (Ink used to display data) / (Total ink used in graphic)
```
**The Goal:** Maximize within reason. Every visual element must earn its place by encoding information.
---
## Workflow
### Step 1: Identify All Elements
List every visual element in the graphic:
- Lines (axes, gridlines, borders, data lines)
- Shapes (bars, points, areas)
- Text (labels, legends, titles, annotations)
- Colors (backgrounds, fills, borders)
- Effects (shadows, 3D, gradients)
### Step 2: Classify Each Element
For each element, ask: **Does this encode data?**
| Classification | Definition | Action |
|----------------|------------|--------|
| **Data-ink** | Directly represents a data value | Keep |
| **Redundant data-ink** | Repeats information already shown | Remove |
| **Non-data-ink** | Decoration or structure only | Evaluate |
### Step 3: Apply the Erasure Test
For each non-data element, ask: **If I remove this, do I lose information?**
- If no → Remove it
- If yes → Keep it (it's actually data-ink)
- If maybe → Try removing it and see
### Step 4: Reduce Redundancy
Common redundancies:
- Legend + direct labels (choose one—direct labels preferred)
- Axis title + clear axis labels (often title is redundant)
- Gridlines + axis ticks (usually need only one)
- Border + background color (border often unnecessary)
### Step 5: Lighten Structure
Elements you must keep can often be lightened:
- Heavy gridlines → Light gray or dotted
- Bold axis lines → Thin gray
- Prominent borders → Remove or make subtle
- Dark backgrounds → White or light
### Step 6: Apply the Shrink Test
Shrink the graphic significantly. What survives?
- If it remains readable → Good data-ink ratio
- If it becomes illegible → Too much non-data-ink
---
## The Erasure Checklist
Remove unless specifically needed:
| Element | Default Action | Keep If |
|---------|----------------|---------|
| 3D effects | Remove | Never |
| Shadows | Remove | Never |
| Gradients | Remove | Encoding a data dimension |
| Background colors | Remove | Essential for grouping |
| Gridlines | Remove | Precise reading needed |
| Axis lines | Lighten | Data near axis |
| Borders | Remove | Grouping multiple charts |
| Legends | Replace | Direct labels impossible |
| Data point borders | Remove | Overlapping points |
---
## Before and After Examples
### Bar Chart
**Before:** Heavy borders, 3D bars, dark gridlines, separate legend, background gradient
**After:** Simple bars, direct value labels, no gridlines, white background
### Line Chart
**Before:** Thick axis lines, heavy gridlines, legend box, data point markers on every point
**After:** Light gray baseline, no gridlines, direct line labels, markers only at key points
### Dashboard
**Before:** Each widget in a box, navigation chrome, decorative icons, colored backgrounds
**After:** White background, widgets separated by space alone, minimal navigation, no icons
---
## Outputs
| Output | Description |
|--------|-------------|
| Element audit | List of elements classified by type |
| Removal list | Specific elements to remove |
| Lightening list | Elements to reduce in weight |
| Revised graphic | Description of optimized version |
---
**Format:**
```markdown
## Analysis: [Topic]
### Key Findings
- [Finding 1]
- [Finding 2]
- [Finding 3]
### Recommendations
1. [Action 1]
2. [Action 2]
3. [Action 3]
```
## Additional Notes
**Best practices:**
- Use this skill when the situation clearly matches its intended use cases
- Combine with related skills for comprehensive analysis
- Iterate on outputs if initial results don't fully meet requirements
**Common variations:**
- Adjust the depth of analysis based on available time and information
- Scale the approach for different levels of complexity
- Adapt the output format to audience needs
**When to skip this skill:**
- The situation doesn't match the core use cases
- Simpler approaches would be more appropriate
- Time constraints require faster methods
## Example
**User:** "I have a bar chart showing sales by region. It has gridlines, a border, 3D bars, a legend, and axis titles. How do I clean it up?"
**Data-Ink Maximization response:**
Let's audit each element:
**Remove completely:**
- 3D effect on bars (pure decoration, distorts perception)
- Border around chart (adds nothing)
- Legend (replace with direct labels)
**Lighten or reduce:**
- Gridlines → Remove entirely or make very light gray, dashed
- Axis titles → If axes are labeled "Q1, Q2, Q3, Q4" and "Revenue ($M)", titles may be redundant
**Keep:**
- Bars (data-ink)
- Axis labels (necessary for reading)
- One axis line (baseline reference)
**Your optimized chart:**
- Simple 2D bars
- Direct labels on or above each bar showing the value
- Light gray horizontal baseline only
- White background
- Region names as x-axis labels
- No legend, no border, no gridlines
Apply the shrink test: if you reduce this to thumbnail size, the bars and their relative heights should still be visible. That's good data-ink ratio.
---
## Integration
This skill pairs with:
- **chartjunk-detection** - Identify problems before fixing
- **small-multiples-design** - Apply same principles across repeated elements
- **high-resolution-thinking** - Add data after removing chrome
---
## Constraints
- Don't remove elements that aid accessibility
- Some gridlines help when precise reading is needed
- Consider your audience's expectations
- The goal is maximum clarity, not minimum elements
---
## Source Expert
Edward Tufte - `experts/edward-tufte/`Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!