I need to visually represent a dev team's skill set (and proficiency) against a project portfolio's required skill set. I have two separate tables, one for team members, and one for projects.

Here is an example of what part of the dev table looks like. The vertical axis are skill sets and the horizontal axis represent individual resources on a team. Cell values can be null (no experience), novice, competent, or expert.

enter image description here

What I would like to do is create a single visualization that can overlay current in-house capabilities and competencies with project needs, so that one can easily see where gaps exist between what we have and what we need.

I was thinking a heat map might be a possibility, where a single table used cell background color to indicate where there is alignment and where there is a gap.

Another dimension is capacity--we may have one person on the team who is an expert in, say, Java, but the projects require 3 FTE worth of java.

When you add this third dimension I'm not sure a heat map is valid anymore, because then you might need to get really crazy with your colors and shading to represent both skill alignment and capacity.

Is this a good idea to try to create a single visualization that communicates all this data, or might there be a better way to tackle this?

3 Answers 3


Consider the following:


download bmml source – Wireframes created with Balsamiq Mockups

Bullet graphs provide a condense and clear way of comparing data when you have a list of skills where you need to compare between "target" and "actual". The 100% line makes it very easy to tell whether you have enough resources or not. There's also no need to explain how to read this. The ones where you're under resource immediately jumps out.

Also just want to point out... be careful with using radar (spider) plots and 2D shapes (circles) when representing data. If you need to make comparisons between items, it's very easy to misinterpret sizes because human eyes are adapt at judging horizontal/vertical lengths, but not areas found in shapes.

References: critique on radar charts, critique on circles in charts

  • 1
    These are excellent critiques on using shapes. I agree completely. I'll just note that in this case, the ordinality of the skillset (there are only 4 levels of competence) makes it easier to use shapes. In the examples cited, like corporate market cap, there is a continuum of data so shapes are not appropriate except for high level comparisons.
    – tohster
    Feb 13, 2015 at 23:11
  • 1
    Yes. Different visualization techniques have their place in specific scenarios. E.g. if you want a high level visual of how well rounded different people are. A small multiple radar graph is perfect for that. My comment there is just a reminder that each method have its pros and cons. And you need to consider these rather than just blindly applying techniques.
    – nightning
    Feb 13, 2015 at 23:17
  • 1
    Agreed. I enjoyed reading your post
    – tohster
    Feb 13, 2015 at 23:54
  • Good answer but your last paragraph should probably be a comment on the other answers. Which I did before I read further down. :)
    – Lilienthal
    Feb 14, 2015 at 9:44
  • I went with this answer as the solution because the true purpose is to visually illustrate "target" vs "actual" comparisons, and a bullet graph is well suited for this task. Feb 17, 2015 at 16:56

Generally it's not a great idea to present 'dense' 3D data. But let's say this really needs to be done.

In this case the dimensions you're trying to present are:

Skillset (30+ categories) x Competence (4 categories including none) x Capacity (TBD).

The skillset category makes the data dense. So with respect to the other answerer, a spider chart will not be suitable for this kind of visualization.
Let's start with the densest axis, skillset. You will want to lay this out axis in a way that's easy to navigate...that usually top to bottom.

For competency, you're looking for "minimum competency", so a visual representation that makes comparison easy is helpful (e.g. size, or intensity). Let's go with size, which is obvious.

For capacity, this is optional but just to show that it's possible, I'll include it.

Here is a layout that uses size to represent competency, and intensity/color to represent availability. It should be self explanatory.

grid-bubble chart

If you are going to try to represent the 3D data, I'd recommend some filtering to simplify the data sooner (e.g. you don't need to represent skillsets that the project doesn't need, so you can reduce the number of rows).

With complex optimization/binpacking type problems like matching skillsets, interactivity can help a lot. An example here is....allow users to select people (shade the columns) and then add a "Total" column which shows the aggregated skillset selected for the team. That way it's easy to compare with the actual project requirement.

  • ...huh. What if each of those circles were only filled in partially, like one slice of a pie chart? A full circle would indicate 100% available, a half for 50% available, etc. Might be easier to see than size or shading (or save space if used instead of size).
    – Izkata
    Feb 13, 2015 at 22:32
  • 2
    @izkata because of the density of the data I think partially filled circles (e.g. the "traffic light" circles that management consulting firms like to use) create a lot of cognitive load because of the extra contrast, edges, and irregular shapes they create. That's why I used shading and ordering (most available person closest to the project column) instead of in-circle indicators to show availability
    – tohster
    Feb 13, 2015 at 23:09
  • 2
    I'd hesitate to use circles in this case as it can be tricky to judge sizes since the area doesn't grow linearly with the radius. Since skill is a discrete value ranging from Novice to Expert something like signal bar icons might work better.
    – Lilienthal
    Feb 14, 2015 at 9:43
  • @Lilienthal yup it's a design tradeoff. Signal bars will be more precise, but try a layout with signal bars. I think you will find that the edges and irregular shape of signal bars create a visual tax which renders the whole chart more difficult to read. I could detail why, but it's easier just to try it and the difference should be apparent. Also see uxmovement.com/thinking/…
    – tohster
    Feb 14, 2015 at 9:57
  • For my particular use case, I believe a bullet graph is more appropriate. That said, your answer is also useful, and I appreciate your contribution! Feb 17, 2015 at 16:57

Tackling the competency and capacity in a single visualization may be a tall order, but I think a spider/radar graph is a good, tested solution for visualizing competency.


As the above link mentions, this representation is best for quickly communicating skill coverage or lack thereof, and is commonly seen for just this use case.

I think trying to add the additional capacity information is a risk and might sacrifice the chart's clarity. If this information is more peripheral, perhaps you can notate it on the various competency axes of the radar chart. If it is of sufficient importance, however, I'd suggest a separate chart or table.

  • The spider plot has 5 rings running around and these could perhaps be colored to represent from 0-100% of how much capacity is filled, in 20% increments. Feb 13, 2015 at 19:22
  • Not sure how that might work. The axes of the radar chart indicate the individual competencies measured and the space between them is sort of no man's land (it isn't obvious what competency is represented by these spaces). Also, I would think any coloring of these areas would obscure or at least complicate the area mapped by the competency ratings.
    – jymt
    Feb 13, 2015 at 20:36
  • Hmm, your right @jymt, I guess it doesn't provide a clear hint when you have 0% competencies and 0% capacity, or 100% competencies and 100% capacity. Feb 13, 2015 at 20:40
  • Yeah, the idea of getting it all in one chart is very alluring, though :). I just think this would be incredibly difficult without sacrificing what makes something like a spider graph understandable at a glance.
    – jymt
    Feb 13, 2015 at 20:42
  • Wait, what about a completely independent ring running around the spider plot, which can be filled from 0 to 360 degrees to represent the capacity? Feb 13, 2015 at 20:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.