Supporting tool for Routine Immunization program in Kano State, Nigeria

Data visualization Kibana
What it is

Platform that integrates information on health workers, health facilities, and routine immunization supportive supervision (RISS) sessions for Kano State, Nigeria.
The intended objective is to increase health services coverage in Kano.

Background Info

Health facilities in Kano State that are part of the Routine Immunization program (which is a direct offshoot of the Polio Eradication program) are expected to carry out routine immunization and related activities regularly.
To gather data as well as ensure that health facilities comply with these expectations, supervisors visit the health facilities 1-2 times every month and document their findings. Findings are grouped into sections, a.k.a ‘indicators’. During a supervisory session, a health facility is scored for each indicator and at the end of the session, an overall score is awarded to that facility.


The first iteration of the RISS component only showed the status of supervisions (i.e. whether or not supervisions have been carried out) across different administrative levels .
The officials reviewing the RISS findings had to manually make charts for high-level visualizations of these findings, but that was a tedious process and we thought the RISS component would be more useful if we included visualization and analytical functions.

  • Redesign front end: the original RISS component was a tabbed table that showed information about whether or not RISS sessions had been carried out in a particular location, within a selected month. We thought that the visualizations and analytics for the new front end had to be as granular as possible, to aid decision making and pinpoint problems if necessary.

    1. Old RISS component

    What I did: Designed a 1-page, 1-tab container with location pickers, indicator selectors and a date picker, such that users can control the granularity of the information they see.

    2. Mockup of proposed visualization page

  • Create visualizations: For versatility reasons, it was decided that Kibana (by Elasticsearch) would be used to visualize data.

    What I did: Mocked up the arrangement of the charts.
    Created visualizations in Kibana, grouped them into ‘dashboards’, and worked with a developer to clean up the data as much as possible.

    3. Creating visualizations

    4. Visualizations embedded in dashboard


I tested the mocked-up charts with the intended users (officials at the Kano State Primary Health Care Board) and the feedback was of the “this looks good, go ahead” variety.

Kibana Constraints
  • Supervisors document their findings by filling in a form on a cell phone, but some fields in the form are free-text, hence collating that data for visualization is a bit tedious, especially when things are spelled differently.
    For example, if a form field is labelled “who funds RI for this health facility?”, and the answer is supposed to be “Bill & Melinda Gates Foundation”, I can expect to see 2-10 variants of that answer (e.g. BMGH, B&M Foundation, etc)

  • Term separation: Some locations have compound names, e.g. Dawakin Tofa - which is a zone in Kano. I found that if, for example, I need to visualize health facility scores for all the 6 zones in Kano State, Kibana defaults to separating Dawakin + Tofa into different entities, so a user sees scores for 7 zones instead of 6.


In the end, the visualizations worked and users were pleased but it took way more effort than expected to make Kibana display what we wanted, so I think that it might have been more efficient to use regular D3 charts.
Kibana works well for clean, uncomplicated data - but if that's not the case with your data, I'm not sure it's the best option.

Project status