Red-green color vision deficiency (deuteranopia/protanopia) affects approximately 8% of males and 0.5% of females. A financial dashboard that uses only red and green to communicate gain/loss is inaccessible to this population by default. The fix requires layering redundant channels: direction arrows (up/down), sign characters (+/-), position within the table layout (gains column vs. losses column), and pattern fills for color-blind-accessible chart bars. Color then becomes a redundant confirmation channel rather than the sole carrier. This restructuring does not diminish the visual clarity for color-normal users — it enhances it by providing multiple legibility pathways simultaneously.
The extended semantic color set for financial data beyond red/green: yellow-amber for neutral/unchanged states (0.0% change), blue for target/benchmark comparison lines, purple for forecast/projected values, teal for volume/activity metrics, and grey for inactive or historical-period data. These six colors form a complete financial semantic palette when their saturation and lightness are co-calibrated. The most common mistake is creating these six colors independently in isolation, which produces a perceptually non-uniform set where some pairs are easy to distinguish and others are nearly identical.
Dense financial data tables with red-green conditional formatting create a specific visual pathology: at table scale, the aggregate pattern of red and green cells creates a mosaic that ‘pops’ visually as color blocks rather than reading as numeric data. This is because simultaneous contrast across adjacent cells amplifies the apparent color difference. The solution used in Bloomberg Terminal and professional trading platforms: reduce saturation significantly (use L:75%, S:40% rose and L:75%, S:35% sage rather than vivid red and green), increase lightness until the background is identifiable but not dominant, and reserve full-saturation traffic-light colors for the change-percent columns only, not for background fills across the entire row.