Skip to content

Greenely · 2025 · Shipped to production

History Graph — clarifying bi-directional battery behavior

50+ iterations to visualize charging and discharging over time — so non-experts can see where energy came from, where it went, and what the battery did.

  • Product Design
  • Data Viz
  • Interaction
  • Energy
Role
Product Designer — UX/UI
Team
Product stakeholders + cross-functional reviewers
Timeline
Multi-iteration design cycle (~50 versions)
Platform
Mobile app module

Brief

What a recruiter should know in 30 seconds

What I did

Explored and iterated the battery history graph (~50 versions); aligned visual language with stakeholders.

What changed

Text labels and stronger selected-state cues replaced ambiguous iconography; design accepted into the app.

How we knew

Internal non-expert reviews reported quick understanding with minimal instruction — quantified product metrics not shared publicly.

Insight → decision

Evidence that changed the design

Insight

Icons for charging/discharging added noise more than clarity.

Decision

Replaced icons with explicit Charging / Discharging labels plus a selected-state indicator.

Insight

Users asked “which state am I looking at?” as often as they asked about the data.

Decision

Strengthened selected-stack emphasis so the active series is unmistakable.

Insight

Inflow/outflow was easy to imply and hard to prove with color alone.

Decision

Made energy source and destination structure explicit in the chart encoding.

Decisions

Why we chose what we chose

01

Text labels over charging/discharging icons

Reduced ambiguity under density; icons competed with the data

02

Selected-state darkening + indicator

Made the active series scannable without redrawing the entire encoding

03

Explicit inflow/outflow structure

Answered the user question that pure polarity stacks left implicit

Information richness vs. calm readability

Keep flow detail but escalate hierarchy aggressively

Removing data would hide battery value; poor hierarchy would hide it anyway

Novel metaphor vs. familiar stacked bars

Stay with refined stacks

Familiar form reduced learning cost; craft fixed the failure modes

Visuals

The work, annotated

01

Exploration — encoding bi-directional battery behavior over time

Early passes proved polarity and density before visual language polish.

  1. Positive/negative stacks across a 24-hour window
  2. Bi-directional energy is easy to misread without hierarchy
  3. Exploration prioritized comprehension over decoration

02

Refinement — hierarchy and density under mobile constraints

Mobile viewport forced ruthless priority: first read must survive small screens.

  1. Spacing and contrast micro-iterations
  2. Density allowed only after hierarchy held
  3. Aligned with existing solar/consumption chart language

03

Selected state — making the active series unmistakable

Icons lost to plain labels; selected-state cues carried mode clarity.

  1. Charging / Discharging as text, not icons
  2. Indicator + darkening for the active series
  3. Answers “which state am I looking at?” first

04

Flow detail — where energy came from and where it went

Color alone was not enough — structure had to prove inflow vs outflow.

  1. Explicit source and destination encoding
  2. Secondary detail without breaking the first read
  3. Supports the “where did the energy go?” question

05

Toward production — visual language aligned with Greenely’s data UI

Stakeholder-aligned lock: labels, states, and color roles ready for engineering.

  1. Production-ready selected/unselected states
  2. Copy and color roles specified for handoff
  3. Accepted into Greenely’s app after internal non-expert reviews

Accessibility

Inclusive decisions

  • Color was never the only signal — labels and indicator states carry meaning
  • Contrast tuned so selected vs. unselected stacks remain distinguishable
  • Avoided icon-only mode identification
  • Cognitive a11y: reduced competing metaphors so the first read stays stable
  • Opportunity: pattern descriptions / textual summary of daily battery behavior for screen-reader users — [Add SR transcript / audit notes here]

Results

What changed

Internal usability feedback indicated non-experts could understand battery behavior with minimal instruction. The design was accepted into Greenely’s app.

Production

Revised graph accepted into Greenely’s app

Comprehension

Internal non-expert reviews reported quick understanding with minimal instruction

Iteration rigor

50+ design versions before lock

Quantified impact

[Add measurable outcome here — comprehension task success, engagement with history module]

Business impact

Clearer battery history helps users perceive value from hardware + software — supporting retention and informed use of energy features.

User impact

People can inspect charging and discharging over time without translating an engineer’s chart into household meaning.

Reflection

What I would tell a hiring manager honestly

Biggest surprise
Removing icons improved understanding — more metaphor was not more clarity.
Biggest mistake
I spent too long exploring decorative cues before stress-testing selected-state hierarchy with non-experts.
Lesson
In data UX, hierarchy is a product decision, not a visual afterthought.
What I would improve today
I would pair the graph with a one-sentence daily summary (“Charged from solar 11:00–14:00, discharged to home 18:00–21:00”) for cognitive accessibility and scannability.

Deep dive

Context, research, and collaboration

Full process detail for readers who want the long arc. Scan sections above cover the hiring signal.

Context

Where this work lived

Greenely already communicated solar output and household consumption reasonably well. Home batteries introduced a harder visualization problem: energy moves in two directions, across sources and destinations, across time.

Problem

The tension we had to resolve

Users needed to understand battery behavior historically — when it charged, when it discharged, where energy came from, and where it went — without drowning in density or misreading polarity.

Goals & constraints

What success required

Business

  • Increase comprehension of battery value in the app
  • Support informed use of battery features after install
  • Ship a visualization quality bar consistent with Greenely’s data products

Users

  • Answer “what did my battery do yesterday?” in seconds
  • Distinguish charging from discharging without decoding a legend every time
  • See energy flows (in vs out) with confidence

Constraints

  • Mobile viewport limits information density
  • Bi-directional data is easy to misread if polarity is ambiguous
  • Must stay visually coherent with existing solar/consumption charts
  • Stakeholders needed a production-ready visual language, not a concept study

Role

What I owned

I sketched graph concepts and metaphors for bi-directional data, iterated through 50+ design versions for clarity and hierarchy, tested prototypes internally with teammates of varying battery knowledge, and aligned final color, typography, and labels with product stakeholders.

Research

What we asked, learned, and unlearned

Guiding questions

  • Can non-experts tell charging from discharging at a glance?
  • Do stacked positive/negative encodings reduce or increase error?
  • Which cues (icons, labels, color, selection states) create durable understanding?

Methods

  • Internal usability reviews with cross-functional, non-expert participants
  • Comparative critique across iterative prototypes
  • Visual hierarchy passes focused on selected-state clarity

What surprised us

Icons for charging/discharging added noise more than clarity. Explicit textual labels plus a small selected-state indicator outperformed iconography for this data density.

Assumptions that were wrong

Early drafts assumed users would decode stacked polarity with minimal labeling. They needed stronger selected-state emphasis and plain-language status more than additional symbolic metaphor.

Quotes

Voice of the user

Which state am I looking at right now?

Selection and mode clarity was as important as the chart geometry itself.

Where did the energy go?

Inflow/outflow needed explicit visual structure, not implied by color alone.

Don’t make me interpret icons under time pressure.

Text labels scaled better than icon metaphors in a dense module.

Strategy

Principles, bets, and how the work moved

Principles

  • Polarity must be unmistakable
  • Selected state should be louder than surrounding data
  • Prefer words over icons when stakes are comprehension
  • Density is allowed only after hierarchy is solved

Opportunity areas

  • Replace ambiguous iconography with Charging / Discharging labels
  • Strengthen selected-stack emphasis
  • Clarify energy source and destination encoding
  • Tune 24-hour stack readability for mobile

Product strategy

Treat the graph as a comprehension product, not a decoration. Optimize for the primary question — what happened over time — then layer secondary flow detail without breaking the first read.

Hypotheses

  • If labels replace icons, non-experts will identify mode faster.
  • If selected stacks darken slightly, users will track the active series with fewer errors.
  • If inflow/outflow is visually explicit, “where did energy go?” becomes answerable without support.

Exploration

Explored positive/negative stacks across a 24-hour window, alternative metaphors, title treatments, and cue systems. Many iterations were micro-adjustments to spacing, contrast, and label placement — the craft that decides whether a chart is trusted.

Roughly fifty versions refined hierarchy: mode labels, indicator light for selected state, darker active stacks, and clearer inflow/outflow depiction until internal non-experts could orient quickly.

Collaboration

How the team shipped

Collaboration

Aligned visual language with product stakeholders and pressure-tested comprehension with teammates who were not battery experts — a deliberate proxy while broader research was sequenced elsewhere on the battery initiative.

Engineering

Final specs emphasized states (selected/unselected), label copy, and color roles so engineering could implement consistently with existing chart infrastructure. Exact performance budgets and charting library constraints — [Add engineering notes here].