Data Visualization
Clear, accurate data visualization is essential for compliance professionals making critical decisions. Our charts prioritize clarity, accuracy, and accessibility over visual flair.
Core Principles
Accuracy First
Data integrity is non-negotiable. Never distort scales, truncate axes, or use visual tricks that misrepresent data.
Clarity Over Decoration
Remove chartjunk. Every element should serve the data. No 3D effects, unnecessary gradients, or decorative elements.
Accessible by Default
Design for all users. Color should support meaning, not carry it alone. Provide text alternatives.
Context Matters
Include labels, legends, and titles. The chart should be understandable without external explanation.
Chart Types & Usage
Bar Charts
Comparing discrete categories, rankings, or counts
Examples: Alert volumes by type, department comparisons, monthly totals
- Categorical comparisons
- Rankings
- Part-to-whole (stacked)
Line Charts
Showing trends over time or continuous data
Examples: Transaction volume trends, risk score changes, compliance metrics over time
- Time series
- Trends
- Multiple series comparison
Pie/Donut Charts
Showing composition of a whole (use sparingly)
Examples: Alert status distribution, case outcomes breakdown
- 2-5 categories only
- Obvious majority/minority
- Part-to-whole when % matters
Data Tables
Detailed, precise data that needs to be searchable or sortable
Examples: Transaction lists, alert queues, audit logs
- Precise values needed
- Many dimensions
- User needs to search/filter
Chart Color Palette
Use these colors consistently across all data visualizations. Order them by importance, with Marine for primary series.
Marine
#075156 Primary data series, key metrics
Green
#2C8248 Success, positive trends, secondary series
Navy
#17232D Text, labels, tertiary data
Citrus
#ABDD65 Highlights, accents (never for text)
Warning
#F59E0B Warning states, medium risk
Error
#BA1A1A Errors, high risk, critical alerts
Recommended Sequence
When displaying multiple data series, use colors in this order:
For more than 3 series, consider using patterns or splitting into multiple charts.
Semantic Colors
Some colors carry inherent meaning. Use them consistently:
Success / Positive
Approved transactions, resolved alerts, compliance met
#2C8248 (Green) Warning / Medium Risk
Pending review, medium-risk scores, attention needed
#F59E0B (Amber) Error / High Risk
Critical alerts, SAR candidates, compliance failures
#BA1A1A (Red) Neutral / Inactive
Closed cases, historical data, disabled states
#6B7280 (Gray) Chart Anatomy
Accessibility Requirements
Never rely on color alone
Use patterns, labels, or icons alongside color to convey meaning.
Maintain sufficient contrast
Ensure data elements are distinguishable from each other and backgrounds.
Provide text alternatives
Charts must have descriptive text or data tables for screen readers.
Allow keyboard navigation
Interactive charts must be operable via keyboard.
Pattern Usage for Accessibility
When color alone isn't sufficient, add patterns to differentiate data series:
Best Practices
Do
- Start Y-axis at zero for bar charts
- Use consistent scales across related charts
- Include clear titles and labels
- Provide data source and timestamp
- Use legends when there are multiple series
- Test with colorblind simulators
- Provide tabular alternative for screen readers
Don't
- Use 3D effects or perspective distortion
- Truncate axes to exaggerate differences
- Use pie charts for more than 5 categories
- Rely on color alone to convey meaning
- Add decorative elements that don't serve data
- Use dual Y-axes (very confusing)
- Display too many data points on one chart
Visual Examples
Correct: Y-axis starts at zero
Incorrect: Truncated axis exaggerates differences
Correct: 3 clear segments
Incorrect: Too many segments
Interactions & Tooltips
Tooltips
- Show on hover AND focus (keyboard accessible)
- Display precise values and context
- Position to not obscure related data
- Use consistent formatting for numbers
Count: 1,234
Change: +15.2%
Interactive States
- Hover: Subtle highlight, opacity change
- Selected: Stronger highlight, other elements dimmed
- Focus: Visible focus ring for keyboard users
- Disabled: Reduced opacity, no interactions
Number Formatting
- Use locale-appropriate separators (1,234 or 1.234)
- Abbreviate large numbers: 1.5M, 2.3K
- Show percentages with 1 decimal: 45.2%
- Currency: $1,234.56 (2 decimals)
- Always include units where ambiguous
Implementation Notes
Recommended Libraries
- Chart.js — Lightweight, accessible, good defaults
- Recharts — React-specific, composable
- Apache ECharts — Feature-rich, good for complex dashboards
- D3.js — Low-level, maximum flexibility
CSS Variables
:root {
--chart-primary: #075156;
--chart-secondary: #2C8248;
--chart-tertiary: #17232D;
--chart-success: #2C8248;
--chart-warning: #F59E0B;
--chart-error: #BA1A1A;
--chart-neutral: #6B7280;
} Responsive Behavior
- Charts should resize with container
- Simplify labels on small screens
- Consider switching chart type (e.g., horizontal bars on mobile)
- Maintain touch-friendly interaction areas (min 44px)