Data Visualization Research · 2026

Three Never-Before-Seen
Chart Types

Each chart solves an analytical problem for which no adequate visualization previously existed—combining novel encodings with rich, realistic synthetic data.

01 · MACROECONOMICS
Causal Lag Clock Matrix
Shows which economic indicators lead or lag others—and by exactly how many months—across all 28 pairs at once
02 · SPORTS ANALYTICS
Phase Portrait Leaderboard
Maps season record vs. recent momentum in a phase space with animated trajectory tails, revealing teams peaking at the right time
03 · BUSINESS INTELLIGENCE
Temporal Rosette
Encodes 24-hour and 7-day activity rhythms as a single radial "fingerprint"—every business type has a uniquely recognizable signature
Visualization 01 · Macroeconomics

Causal Lag Clock Matrix

An 8×8 matrix where each cell encodes both how strongly two indicators correlate and which one leads the other—and by how many months.

The Novel Encoding
A clock arc in each cell: the dot's position (left=row leads, top=simultaneous, right=column leads) encodes the timing offset. Cell color shows correlation sign and strength.
Why Better Than Alternatives
A correlation matrix ignores timing. Cross-correlograms show one pair at a time. This chart shows all 28 pairwise lead-lag relationships simultaneously.
Real-World Dataset
8 US macro indicators with known causal timing: Yield Spread, Housing Starts, Consumer Confidence, PMI, Retail Sales, Inflation, Unemployment, Corporate Profits.
→ Hover any cell to read the relationship
Visualization 02 · Sports Analytics

Phase Portrait Leaderboard

Physics' phase portrait concept applied to competitive standings: season win% on X, recent-game momentum on Y, with animated trajectory tails.

The Novel Encoding
Each team traces a path through phase space as the season evolves. Quadrant = competitive archetype. Tail direction = improving or fading.
Why Better Than Alternatives
Bump charts show rank but not velocity. Line charts show one metric without comparison. This reveals which teams are peaking at the right moment.
Real-World Dataset
10 NBA teams over a 30-week season. Storyline arcs include a mid-season collapse (LAL), a late surge from bottom (OKC), and a dominant front-runner (BOS).
Wk 1
Visualization 03 · Business Intelligence

Temporal Rosette

A dual-ring radial "rhythm fingerprint" that simultaneously shows the hourly (inner petals) and day-of-week (outer ring) activity patterns.

The Novel Encoding
Inner 24 petals: each hour's average activity, variable-length, midnight at top. Outer 7 arcs: Mon–Sun intensity. Two temporal scales in one compact glyph.
Why Better Than Alternatives
Heatmap calendars can't show two timescales in one view. Small multiples use 14× the space. This is a dashboard-scale glyph recognizable at a glance.
Real-World Dataset
8 business archetypes: Coffee Shop, Hospital ER, Gym, E-Commerce, Restaurant, Movie Theater, Social Media, Bank ATM. Each shape is instantly distinctive.
→ Hover petals or outer arcs for details
Appendix A

Why Is Novelty So Hard?

The chart design space feels infinite. In practice, the intersection of "visually novel" × "analytically superior" × "actually readable" is vanishingly small. Most combinations have already been explored.

Three criteria for genuine novelty
1
Solves a problem no existing chart solves — not a cosmetic variation. There must be an analytical question that becomes answerable for the first time.
2
Introduces a genuinely new visual encoding — at minimum one new mapping from data dimension to visual variable, not seen in this combination before.
3
Is clearly superior for a specific task — novelty alone isn't enough. For at least one real dataset/task pair, this chart must outperform all existing alternatives.
The design methodology
Rather than asking "what new chart can I invent?", the productive framing is: "what analytical task currently has no adequate visualization?" Start with the gap, then design toward it.

Each of the three charts began as a frustrated analyst's question:
  • "How can I see all economic lead-lag relationships at once?"
    → Causal Lag Clock Matrix
  • "Which team is peaking at the right moment—and how do I see that?"
    → Phase Portrait Leaderboard
  • "What does this business's rhythm look like in one single glance?"
    → Temporal Rosette
The key insight: Existing charts fail in predictable ways—they show one thing at a time (single-pair CCF plots), or they ignore a critical dimension (correlation matrices ignore timing), or they require too much space (small multiples). Every successful novel chart fixes exactly one of these failure modes for a specific task.
Appendix B

Verifying Novelty — What Already Existed

Before committing to any design, we searched to confirm we weren't reinventing something that already exists. Novelty claims require evidence.

Web searches conducted
QueryWhat ExistedWhat Was MissingVerdict
"lead lag cross-correlation matrix visualization" CCF correlograms (single pair), static correlation matrices No chart showing all N×N pairs with timing simultaneously Novel
"temporal fingerprint multidimensional radial chart" ArcGIS temporal profile charts (GIS context), forensic fingerprints No compact multi-scale radial glyph for business rhythms Novel
"phase portrait sports standings momentum visualization" Momentum bars, bump charts (rank over time), standings tracers No phase-space scatter with trajectory tails for competitive data Novel
"harmonic frequency portrait time series multiple entities" Spectrograms, wavelet transforms, VizStruct Fourier projections All single time-series; no readable glyph for non-technical audiences Novel
"radial multi-ring business rhythm hourly daily fingerprint" Forensic fingerprint papers (wrong domain entirely) Confirms the visualization type doesn't exist Novel
Edge cases investigated
DeltaLag (arxiv 2511.00390): A deep learning method for detecting lead-lag patterns in financial markets. This is an analytical algorithm, not a visualization. Confirmed our clock matrix is a distinct visual design.

Observable phase portrait: Jo Wood's phase portrait notebook on Observable shows math/physics phase portraits. The specific application to competitive sports standings with trajectory tails is absent.
What novelty verification doesn't guarantee
Web search confirms no one has published or prominently discussed these designs. It does not guarantee they haven't been created in private dashboards, unpublished conference posters, or commercial tools.

The stronger claim—that these designs are analytically superior for their specific task—rests on the logical argument that no alternative can simultaneously encode the information each chart shows.
Appendix C

The Graveyard — Six Rejected Designs

For every chart that made it into the deck, several more were considered and discarded. Rejection is part of the design process, not a failure of it.

Rejected
Gravity Well Chart
Data "masses" distort a background grid like gravitational lensing. Beautiful, but the grid distortion is perceptually ambiguous—hard to read quantitatively. The metaphor was too clever for practical use.
Rejected
Stroboscopic Heatmap
A calendar heatmap where each cell has concentric rings (like tree rings) showing data from successive months. In practice the rings became so small they were illegible, and time orientation was confusing.
Rejected
Bloom Chart
Radial petals represent multi-metric profiles that "bloom" as time progresses. Beautiful for presentations, but hard to compare across entities—effectively redundant with animated small-multiple radar charts.
Rejected
Fourier Rosette (FFT)
Original plan was to compute actual spectral decomposition of each business's time series. While technically precise, FFT interpretation is too abstract for non-technical audiences. Replaced with direct hourly/daily profiles.
Rejected
Momentum Ribbon
For rankings over time, show momentum as ribbon width/color. Rejected because it exists as a known variant of the alluvial/Sankey diagram family—not novel enough to include alongside genuinely new designs.
Rejected — cut late
Three-Ring Rosette
Original VIZ 3 had a third outer ring for weekly trend (4 sectors). Cut after early rendering showed the third ring made glyphs too large, and the week-to-week variation was subtle enough to look like noise rather than signal.
Pattern of rejection: Most designs failed because they were either (1) too abstract to read without a manual, (2) visually appealing but not analytically superior to alternatives, or (3) variants of existing chart types rather than genuinely new encodings.
Appendix D

Designing the Data — Synthetic but Faithful

Synthetic data must be designed to demonstrate the visualization's power, not merely fill the space. Each dataset was engineered with specific narrative and analytical intent—grounded in real-world evidence.

Viz 1 — Economic Lead-Lag Matrix
The 28 pairwise relationships encode well-established macroeconomic causal chains from the economics literature:

Inverted yield curve → unemployment (+10 mo, −0.72): The strongest predictor of recessions, documented since 1986.

Consumer confidence → retail sales (+2 mo, +0.80): The strongest positive link, encoded as the biggest dot in the matrix.

PMI → corporate profits (+3 mo, +0.75): Manufacturing activity as a profits predictor.

Phillips curve (UNE leads CPI, −0.48): Initially encoded as positive correlation—a factual error caught and fixed.
Viz 2 — NBA Phase Portrait
Team trajectories were designed to tell stories visible only in phase space, not in a regular standings table:

LAL (Lakers): Mid-season collapse—drifts left and down into STRUGGLING quadrant, then partially recovers. Mirrors documented 2022-23 Lakers slump.

PHX (Suns): Starts DOMINANT, slides to COOLING, then STRUGGLING. Classic over-performing team that regresses.

OKC (Thunder): Long northeast diagonal from bottom-left to top-right = sustained, consistent improvement. The one team whose trajectory is a clean story arc.

MEM (Grizzlies): Chaotic zig-zag—a team that can't maintain streaks.
Viz 3 — Business Temporal Profiles
Each business's hourly/daily profile was calibrated against published consumer behavior research:

Hospital ER: Surprisingly flat hourly pattern (slight evening peak). Most people expect a dramatic shape—the near-flat ring is itself a finding.

Gym: Classic double-peak (6–9am, 5–8pm), sharply weekday-heavy. Uniquely bimodal shape.

Movie Theater: Hard cutoff before 5pm on weekdays; almost entirely weekend. The "absence" of morning petals is part of the fingerprint.

Social Media: Remarkably flat both hourly and daily—high everywhere. The uniform shape contrasts starkly with every other business.
Appendix E

What Went Wrong First

Every complex visualization involves debugging. Here is an honest record of the failures encountered during development, categorized by type.

Technical failure
D3 Arc Angle Convention
D3 uses 0 = top (12 o'clock), clockwise—not the standard math convention (0 = right, counterclockwise). The clock arcs in VIZ 1 were initially rotated 90°, with "midnight" appearing at the right side instead of the top. Required careful re-derivation of the coordinate transform: x = r·sin(θ), y = −r·cos(θ) to get clock-face coordinates from D3 angles.
Technical failure
SVG Stacking Order in Rosette
The rosette's center label was initially rendered beneath the inner petals (invisible). SVG renders elements in DOM order—last added = on top. The center text, added before the petals in the first version, was covered. Fixed by restructuring the append order: background circle → petals → outer ring → labels.
Data failure
Phillips Curve Sign Error
The relationship between unemployment and CPI was initially encoded as a positive correlation (+0.48). This is empirically wrong—low unemployment leads to higher inflation (negative correlation). The Phillips curve relationship was corrected to corr=−0.48, with unemployment leading CPI by 6 months.
Design failure
Full-Circle Clock Arc (VIZ 1 v1)
The first version used a full circle for the clock arc, so the lag indicator dot could appear anywhere on a 360° ring. This was visually ambiguous—the bottom half of the circle was unused and confusing. Switching to a semicircle (9 o'clock → 12 → 3 o'clock) dedicated all visual space to the meaningful lag range of −6 to +6 months.
Data failure
NBA Data Too Bunched (VIZ 2 v1)
First version simulated individual game outcomes probabilistically. The resulting win% distributions were too narrow (all teams between 0.42–0.58)—the phase portrait looked like an undifferentiated blob. Solution: replaced game simulation with smooth trajectory curves + small noise, deliberately widening the spread to make the narrative arcs visible.
Planning failure
Three-Ring Rosette Too Dense
The original plan included a third outer ring for weekly trend (4 week-of-month sectors). After rendering, the three-ring glyph was ~30% larger than the two-ring version, and the weekly variation was too subtle relative to the ring's visual weight. Cut before final implementation—caught in planning phase, not after building.
Appendix F

The Contrast Problem — Post-Design Feedback

After the first working version shipped, feedback was: "Some of the content is barely visible—mostly because of poor contrast, partly because of small font sizes." This was a systematic, not isolated, failure.

The pattern of failure
An audit of every text element revealed a consistent anti-pattern: dark background + desaturated blue-gray color + low alpha opacity = compounding visibility failure.

The intent was to create visual hierarchy using opacity: important text = full opacity, secondary = medium, tertiary = low. But in practice:
  • Secondary text at opacity .5 is often unreadable at normal viewing distance
  • WCAG AA requires 4.5:1 contrast for normal text; several elements were below 2:1
  • The "subtle" look that feels elegant in a design mockup becomes frustrating in actual use
Specific offenders found in audit
Before (original)
.info-hint: color #383870 ≈ 1.5:1
SVG legend: #303068 ≈ 1.4:1
Quadrant labels: opacity .22
Axis text: opacity .65
Rosette center: 9.5px font
Hour tick labels: 7px font
Info block headers: 8.5px
After (this version)
.info-hint: color #8080b8 ≈ 3.6:1
SVG legend: #7070a8 ≈ 3.2:1
Quadrant labels: opacity .5
Axis text: full #a0a8cc
Rosette center: 13px font
Hour tick labels: 9px font
Info block headers: 10px
Key learning: Opacity should be used for intentional fading (e.g., trail tails, background watermarks), not as a substitute for color selection in achieving typographic hierarchy. Use lightness and saturation to differentiate text roles, and reserve opacity reduction for elements that are genuinely meant to recede.
Appendix G — Blameless Post-Mortem

What We'd Do Differently

A structured retrospective on the full process: what worked, what didn't, root causes, and the process changes that would prevent recurrence.

What went well
Successes
  • Zero JavaScript errors on first render. D3 v7 API usage was correct throughout; no v5→v7 migration issues.
  • All three visualizations rendered correctly on first attempt. The SVG layout math was right despite its complexity.
  • Novelty was rigorously verified through five distinct search queries before committing to any design.
  • Data encoding is analytically sound. Real economic causal chains, realistic sports narrative arcs, research-backed business rhythm profiles.
  • Interactivity worked immediately: tooltips, animation, keyboard navigation, play/pause, slider all functional without debugging.
What didn't go well
Shortfalls
  • Contrast was systematically underspecified. No contrast audit step existed in the workflow. Relied on "looks fine" judgment rather than measurable targets.
  • Font sizes were consistently too small in SVG-rendered labels and sidebar headers, especially on information-dense slides.
  • Over-indexing on aesthetic restraint. The design philosophy of "subtle, glowing dark theme" led to over-suppressing important textual information.
  • Phillips curve sign error in initial data encoding—a factual error that required correction. Missing a subject-matter fact-check step.
Root cause analysis
The contrast failures trace to a single root cause: no explicit contrast target was set before styling began. Without a floor (e.g., "minimum 3:1 for all text"), individual opacity choices that each seem reasonable accumulate into a systematically illegible design.
Process changes
1. Set contrast floor first. Before any styling, define: normal text ≥ 4.5:1, large/bold text ≥ 3:1, decorative elements exempt.

2. Named "contrast pass" step. After visual design, explicitly audit every rgba(..., .X) and ask: "readability-reducing or intentional fade?"

3. Fact-check data relationships against a reference before encoding.
What good process looks like
CSS custom properties for each text role with explicit contrast targets baked in. Visual hierarchy through lightness + saturation, not opacity alone. Opacity reserved for true "fade" use cases: trail tails, background watermarks, hover states, decorative elements that genuinely should recede.