A slow pace, to be sure, but I have been adding to a dashboard of SNAP Performance Indicators over the past year, based on the SNAP data I’ve been cleaning and compiling over the past 2 years, and built with the Observable Framework library.

You can view the dashboard here.

No extremely tricky visualizations, but that is because I have found that these datasets that are simple tables by state each year mask the complexity of federal and state policy around implementing SNAP benefits. The dashboards become more and more text heavy, I realize, as I absentmindedly pull in context that I believe is valuable to know alongside each chart. Additionally, the recent changes to SNAP in 2025 have complicated any forward-looking projections.

Largely, I’m now using this dashboard as a space to experiment with incorporating the context into each visualization, how to best caption or link to follow up, and becoming more familiar with plot options through Observable Plot.

For example, take the “Measurement policy changes…” chart on payment error rates.

Line chart by state and year, showing how payment error rates for each state have changed over time. Alaska peaks in 2023 at nearly 60%. Underpayments and Overpayments are shown.

  • The decision to split under- and over-payments as if they were negative and positive values, even though the y-axis labels are the absolute values, probably deserves some scrutiny.
    • Practically, it separates the lines better for many states, especially with the maximum values forcing most of the data to crowd together in between 0 and 10%. Splitting the under- and over-payments avoids overlap.
    • If 0 is the ‘correct’ amount, then it makes sense that the amount of money underpaid should sort of be reaching ‘up to’ the right amount. I thought perhaps the visual separation reinforces the difference between the payment types?
    • This also might complicate the notion of a summed total error rate.
  • One note based on the data itself, since the “payment error rate” reflects dollar amounts and is a percentage of each state’s total SNAP benefits, perhaps each state line should have some sort of additional dimension better indicated what the percentage is in a real dollar value.
    • Partially I did not do this as I am not sure yet where to find the total allotments for each state by year.
    • Another note is that most charts in the news, or any reporting, will focus on the “Total Payment Error Rate”, or the sum of the under- and over-payments percentages. In this chart, the total rate is contained in a footnote, on hover or click, but it can be confusing at first glance.
  • I am mixed about dynamic updating of the subtitle. E.g., after clicking a specific state, the subtitle changes to reflect how to state the number in a plain language sentence, like “In Maryland, in FY 2024, 8.85% of dollars paid through SNAP…”
  • I don’t like that a user can’t hover over each line to get a state, but the lines are so crowded any way. E.g., if you see the peak in 2007 and want to see what state that is, you have no choice but to go through each state in the selector.
    • This is why I call out Alaska in the subtitle to immediately answer the question of the peak of the chart.
  • I’m not sure if the “Explore more and highlight a state:” user instruction is needed.
    • I think this helps with accessibility, however.
  • Embedding text for a responsive UI in a chart is difficult. I’m not sure if there is a standard yet really on how to handle this well.
    • On small screens the text is becomes small and can quickly overlap. I had to be a bit picky in the placement of labels, the lineWidth option, and strategically-placed new-line characters.
    • The data in this chart complements a text mark in the sense that a large portion of the y-axis is unused until the right-most side (thanks, Alaska), giving me space to work with.
    • I’m not sure how this affects accessibility, however. I’d like to better understand how these visuals are communicated through a screen reader or another assistive technology.
    • However, I think the text notes are required, or some equivalent, otherwise I feel that comparing payment error rates over time through any chart type is flawed since the definition of what an error is changes.
    • Really, part of what we see in the chart isn’t necessarily the errors, but how the USDA defines the error rate, which is why the text notes are so important. The Monthly SNAP participation line chart is like this as well; the defining feature of the chart (a steep drop) is caused by a government decision on when to release benefits.
  • How to embed a clickable link into a chart?
    • The purple-colored text note is a link to a news article. Another visualization I explicitly wrote “(link)” at the end to inform the user. This is through the Plot.text mark, by setting a href option, which is nice. I don’t think I’m able to set only part of the text to be a link, however.

I’d like to get one page up for each performance indicator, then any additional questions or one-off visualizations on SNAP that I put together in the future later.

Overall, I’ve found this helpful in improving my Observable Plot skills alongside trying to chart data that requires a lot of context to interpret.