| Indicator Index β HTS 001 Client Intake | |||
| # | Indicator Name | Thematic Area | Visualization |
|---|---|---|---|
| 1 | Total HTS clients tested | Testing volume | Count / time series |
| 2 | HIV positivity rate | Testing outcomes | Proportion / bar |
| 3 | First-time testers proportion | Testing outcomes | Proportion |
| 4 | Index testing yield | Testing outcomes | Proportion / bar |
| 5 | Knowledge Assessment completion rate | Pre-test counseling | Proportion |
| 6 | Mean Knowledge Assessment score | Pre-test counseling | Mean / distribution |
| 7 | Personal Risk Assessment completion rate | Risk assessment | Proportion |
| 8 | High-risk clients (Personal Risk Score β₯ 1) | Risk assessment | Proportion / bar |
| 9 | TB screening completion rate | TB screening | Proportion |
| 10 | TB symptom burden (score β₯ 1) | TB screening | Proportion / bar |
| 11 | STI screening completion rate | STI screening | Proportion |
| 12 | STI symptom burden (score β₯ 1) | STI screening | Proportion / bar |
| 13 | Sex Partner Risk Assessment completion rate | Sex partner risk | Proportion |
| 14 | Post-test counseling completion | Post-test counseling | Proportion / bar |
| 15 | Condom provision rate | Post-test counseling | Proportion / bar |
| 16 | PrEP referral rate | Linkage | Proportion / bar |
| 17 | Syphilis test positivity rate | Laboratory | Proportion |
| 18 | CD4 testing coverage among HIV-positive clients | Laboratory | Proportion |
Dashboard Indicators
Overview
π Testing Volume
1. Total HTS Clients Tested
| Element | Detail |
|---|---|
| Numerator | Count of all records where `discard_page` β 1 and `date_visit_clean` IS NOT NULL β i.e. every submitted, non-discarded client intake record. |
| Denominator | N/A β this is a count indicator. |
| Disaggregations | Facility name (`facility_name`); State (`facility_state`); LGA (`facility_lga`); Visit month (`visit_month`); Visit year (`visit_year`); Testing setting (`testing_setting`); Type of session (`type_consueling`); Sex (`sex`) |
| Definition of terms | `discard_page` = 1 means the clinician marked the discard bubble β the entire photopack should be excluded. A non-null `date_visit_clean` confirms the visit date was successfully OCR-read and parsed. |
| Visualization | Line chart (time series) for overall trend; bar chart disaggregated by facility or state for site comparison. |
| Frequency | Daily. |
| Data source | refinery_clean |
π§ͺ Testing Outcomes
2. HIV Positivity Rate
| Element | Detail |
|---|---|
| Numerator | Count of records where `hiv_test_result` = 'positive'. |
| Denominator | Count of records where `hiv_test_result` IS NOT NULL (i.e. a test result was recorded β either positive or negative). |
| Disaggregations | Facility; State; LGA; Visit month; Testing setting (`testing_setting`); Modality (`modality`); Sex (`sex`); Age group (derived from `age`: <15, 15β24, 25β34, 35β49, 50+); First-time tester (`first_time_visit`); Type of session (`type_consueling`) |
| Definition of terms | HIV Test Result is recorded in `hiv_test_result` with values 'negative' or 'positive'. Records where the field is NULL (OCR uncertain or blank) are excluded from both numerator and denominator to avoid deflating the rate. |
| Visualization | Bar chart by facility with a reference line showing the national/state average positivity rate; stacked bar disaggregated by sex. |
| Frequency | Daily. |
| Data source | refinery_clean |
3. First-Time Testers Proportion
| Element | Detail |
|---|---|
| Numerator | Count of records where `first_time_visit` = 'yes'. |
| Denominator | Count of records where `first_time_visit` IS NOT NULL. |
| Disaggregations | Facility; State; LGA; Visit month; Testing setting; Sex (`sex`); Age group (from `age`) |
| Definition of terms | `first_time_visit` = 'yes' indicates the client has never previously received an HIV test. Records where the field is NULL are excluded from both counts. |
| Visualization | Proportion displayed as a single KPI number with trend sparkline; bar chart by facility for site comparison. |
| Frequency | Daily. |
| Data source | refinery_clean |
4. Index Testing Yield
| Element | Detail |
|---|---|
| Numerator | Count of records where `index_client` = 'yes' AND `hiv_test_result` = 'positive'. |
| Denominator | Count of records where `index_client` = 'yes' AND `hiv_test_result` IS NOT NULL. |
| Disaggregations | Facility; State; Relation with index client (`relation_with_index_client`: biological, sexual, social); Visit month |
| Definition of terms | An index client is one identified through contact tracing of a known HIV-positive person (`index_client` = 'yes'). The relation with the index case is recorded in `relation_with_index_client` (biological, sexual, or social contact). |
| Visualization | Bar chart comparing positivity rate for index-tested vs non-index-tested clients; breakdown by relationship type. |
| Frequency | Daily. |
| Data source | refinery_clean |
π Pre-Test Counseling Quality
5. Knowledge Assessment Completion Rate
| Element | Detail |
|---|---|
| Numerator | Count of records where `knowledge_assessment` IS NOT NULL (score was recorded). |
| Denominator | Count of all valid (non-discarded) records. |
| Disaggregations | Facility; State; Visit month; Testing setting |
| Definition of terms | `knowledge_assessment` is a single digit box recording the clinician-computed sum of all 6 knowledge items (max = 6). A non-null value indicates the score was written and successfully OCR-read. |
| Visualization | Proportion as KPI with trend over time; bar chart by facility to identify sites with low completion. |
| Frequency | Daily. |
| Data source | refinery_clean |
6. Mean Knowledge Assessment Score
| Element | Detail |
|---|---|
| Numerator | Sum of `knowledge_assessment` across all records where the score is not null and is between 0 and 6. |
| Denominator | Count of records where `knowledge_assessment` IS NOT NULL AND `knowledge_assessment` BETWEEN 0 AND 6. |
| Disaggregations | Facility; State; Visit month; Sex (`sex`); Age group (from `age`); First-time tester (`first_time_visit`) |
| Definition of terms | The Knowledge Assessment Score is the clinician-recorded sum of the 7 binary items in Section A (max = 6, since `previousTestedHIVNegative` is listed but counts of items = 6 counseling topics). Scores flagged by the DQA pipeline as inconsistent with individual item responses are retained but annotated. |
| Visualization | Distribution histogram of scores; mean score as KPI; line chart of mean score over time by facility. |
| Frequency | Daily. |
| Data source | refinery_clean |
β οΈ Risk Assessment
7. Personal Risk Assessment Completion Rate
| Element | Detail |
|---|---|
| Numerator | Count of records where `risk_assessment` IS NOT NULL. |
| Denominator | Count of all valid (non-discarded) records. |
| Disaggregations | Facility; State; Visit month; Testing setting |
| Definition of terms | `risk_assessment` is the clinician-recorded sum of the 9 personal HIV risk items in Section B (max = 9). A non-null value indicates the score was written on the form and successfully read by OCR. |
| Visualization | Proportion as KPI; bar chart by facility highlighting sites below a threshold (e.g. < 80% completion). |
| Frequency | Daily. |
| Data source | refinery_clean |
8. High-Risk Clients (Personal Risk Score β₯ 1)
| Element | Detail |
|---|---|
| Numerator | Count of records where `risk_assessment` >= 1. |
| Denominator | Count of records where `risk_assessment` IS NOT NULL AND `risk_assessment` BETWEEN 0 AND 9. |
| Disaggregations | Facility; State; Visit month; Sex (`sex`); Age group (from `age`); HIV Test Result (`hiv_test_result`) |
| Definition of terms | A client is considered high-risk if their Personal HIV Risk Assessment Score (`risk_assessment`) is 1 or more. The score is the sum of 9 binary risk behaviour items from Section B. Per the clinical rule printed on the form, clients with score β₯ 1 whose last HIV test was more than 3 months ago should be offered testing. |
| Visualization | Proportion as KPI; stacked bar showing score distribution (0, 1β3, 4β6, 7β9) by facility. |
| Frequency | Daily. |
| Data source | refinery_clean |
π« TB Screening
9. TB Screening Completion Rate
| Element | Detail |
|---|---|
| Numerator | Count of records where `tb_screening` IS NOT NULL. |
| Denominator | Count of all valid (non-discarded) records. |
| Disaggregations | Facility; State; LGA; Visit month |
| Definition of terms | `tb_screening` is the clinician-recorded sum of the 5 TB symptom items in Section C (max = 5): current cough, weight loss, fever, night sweats, lymphadenopathy. A non-null value means the screening was completed and the score was written and read. |
| Visualization | Proportion as KPI with facility-level bar chart. |
| Frequency | Daily. |
| Data source | refinery_clean |
10. TB Symptom Burden (Score β₯ 1)
| Element | Detail |
|---|---|
| Numerator | Count of records where `tb_screening` >= 1. |
| Denominator | Count of records where `tb_screening` IS NOT NULL AND `tb_screening` BETWEEN 0 AND 5. |
| Disaggregations | Facility; State; Visit month; HIV Test Result (`hiv_test_result`); Sex (`sex`) |
| Definition of terms | Per the clinical rule on the form: if TB screening score >= 1, the client should be tested for Xpert MTB RIF or referred to a TB service. The five constituent symptoms are: `current_cough`, `weight_loss`, `fever`, `night_sweats`, `lymphadenopathy` β each scored 0 (No) or 1 (Yes). |
| Visualization | Proportion as KPI; bar chart by facility; cross-tabulation with HIV Test Result to show TB/HIV co-burden. |
| Frequency | Daily. |
| Data source | refinery_clean |
π¬ STI Screening
11. STI Screening Completion Rate
| Element | Detail |
|---|---|
| Numerator | Count of records where `sti_screening` IS NOT NULL. |
| Denominator | Count of all valid (non-discarded) records. |
| Disaggregations | Facility; State; Visit month; Sex (`sex`) |
| Definition of terms | `sti_screening` is the clinician-recorded sum of the 5 STI symptom items in Section C (max = 5). A non-null value means the syndromic STI screening was completed. |
| Visualization | Proportion as KPI; bar chart by facility. |
| Frequency | Daily. |
| Data source | refinery_clean |
12. STI Symptom Burden (Score β₯ 1)
| Element | Detail |
|---|---|
| Numerator | Count of records where `sti_screening` >= 1. |
| Denominator | Count of records where `sti_screening` IS NOT NULL AND `sti_screening` BETWEEN 0 AND 5. |
| Disaggregations | Facility; State; Visit month; Sex (`sex`); HIV Test Result (`hiv_test_result`) |
| Definition of terms | Per the clinical rule on the form: if STI screening score >= 1, the clinician should follow syndromic STI management guidelines or refer. The five items are sex-differentiated: vaginal discharge, lower abdominal pain (female); urethral discharge, scrotal swelling (male); and genital sore / inguinal lymphadenopathy (any sex). |
| Visualization | Proportion as KPI; bar chart by facility; breakdown by sex to identify sex-specific STI burden patterns. |
| Frequency | Daily. |
| Data source | refinery_clean |
π« Sex Partner Risk
13. Sex Partner Risk Assessment Completion Rate
| Element | Detail |
|---|---|
| Numerator | Count of records where `sex_partner_risk_assessment` IS NOT NULL. |
| Denominator | Count of all valid (non-discarded) records. |
| Disaggregations | Facility; State; Visit month |
| Definition of terms | `sex_partner_risk_assessment` is the clinician-recorded sum of the 7 sex partner risk items in Section D (max = 7). Questions ask whether the client has had sex with an HIV-positive partner meeting specific clinical criteria (on ARV with unsuppressed VL, newly diagnosed, LTFU-returned, etc.). |
| Visualization | Proportion as KPI; bar chart by facility. |
| Frequency | Daily. |
| Data source | refinery_clean |
π¬ Post-Test Counseling
14. Post-Test Counseling Completion
| Element | Detail |
|---|---|
| Numerator | Count of records where `post_test_counseling` = 1 AND `risk_reduction` = 1 AND `post_test_disclosure` = 1. |
| Denominator | Count of records where `hiv_test_result` IS NOT NULL (a test was conducted). |
| Disaggregations | Facility; State; Visit month; HIV Test Result (`hiv_test_result`); Sex (`sex`) |
| Definition of terms | Full post-test counseling is defined as completion of all three mandatory post-test steps: (1) `post_test_counseling` = 1 (counseling done), (2) `risk_reduction` = 1 (risk reduction plan developed), (3) `post_test_disclosure` = 1 (disclosure plan developed). Each field is a binary 0/1 oval question. |
| Visualization | Proportion as KPI broken down by HIV result (positive vs negative clients may have different counseling requirements); bar chart by facility. |
| Frequency | Daily. |
| Data source | refinery_clean |
15. Condom Provision Rate
| Element | Detail |
|---|---|
| Numerator | Count of records where `condom_provided_to_client` = 1. |
| Denominator | Count of records where `hiv_test_result` IS NOT NULL. |
| Disaggregations | Facility; State; Visit month; HIV Test Result (`hiv_test_result`); Sex (`sex`) |
| Definition of terms | `condom_provided_to_client` is a binary 0/1 oval field. When 1, the number of condoms distributed is additionally captured in `condom_provided_to_client_count` (integer, 2-box digit field). Lubricant provision is captured separately in `lubricant_provided_to_client` and `lubricant_provided_to_client_count`. |
| Visualization | Proportion as KPI; mean condom count per client as supplementary metric; bar chart by facility. |
| Frequency | Daily. |
| Data source | refinery_clean |
π Linkage to Services
16. PrEP Referral Rate
| Element | Detail |
|---|---|
| Numerator | Count of records where `prep_referred` = 1. |
| Denominator | Count of records where `hiv_test_result` = 'negative' AND (`risk_assessment` >= 1 OR `sex_partner_risk_assessment` >= 1). |
| Disaggregations | Facility; State; Visit month; Sex (`sex`); Age group (from `age`) |
| Definition of terms | Per the clinical rule printed on the form: HIV-negative clients with a Personal HIV Risk Assessment Score >= 1 or a Sex Partner Risk Assessment Score >= 1 in Section D should be referred for PrEP services. `prep_referred` = 1 indicates a referral was made and recorded. |
| Visualization | Proportion as KPI; bar chart by facility to identify sites with low PrEP referral uptake; trend line over time. |
| Frequency | Daily. |
| Data source | refinery_clean |
π§« Laboratory Results
17. Syphilis Test Positivity Rate
| Element | Detail |
|---|---|
| Numerator | Count of records where `syphilis_test_result` = 'reactive'. |
| Denominator | Count of records where `syphilis_test_result` IS NOT NULL (either 'reactive' or 'non_reactive' was recorded). |
| Disaggregations | Facility; State; Visit month; Sex (`sex`); HIV Test Result (`hiv_test_result`); Age group (from `age`) |
| Definition of terms | `syphilis_test_result` is a single-select oval field with options 'non_reactive' and 'reactive'. Records where the field is NULL (not completed or OCR uncertain) are excluded from both numerator and denominator. Cross-tabulation with `hiv_test_result` reveals HIV/syphilis co-infection. |
| Visualization | Proportion as KPI; bar chart by facility; cross-tabulation with HIV result as stacked bar. |
| Frequency | Daily. |
| Data source | refinery_clean |
18. CD4 Testing Coverage Among HIV-Positive Clients
| Element | Detail |
|---|---|
| Numerator | Count of records where (`cd4_semi_quantitative` IS NOT NULL OR `cd4_flow_cytometry` IS NOT NULL). |
| Denominator | Count of records where `hiv_test_result` = 'positive'. |
| Disaggregations | Facility; State; Visit month; CD4 result category: low (β€200 cells/m3 by semi-quantitative or flow cytometry β€200) vs high (>200) |
| Definition of terms | CD4 testing is only applicable for HIV-positive clients. Two methods are captured: (1) `cd4_semi_quantitative` β a single-select oval with options 'lessThan200' (β€200 cells/m3) or 'over200' (>200 cells/m3); (2) `cd4_flow_cytometry` β a 4-digit box for the exact count. A client is considered tested if either method has a non-null value. |
| Visualization | Proportion as KPI; bar chart of CD4 category distribution (β€200 vs >200) among positive clients by facility. |
| Frequency | Daily. |
| Data source | refinery_clean |
Indicator Reference Table
| All Indicators β Quick Reference | ||||
| # | Indicator | Key column(s) | Type | Refinery model |
|---|---|---|---|---|
| 1 | Total HTS clients tested | discard_page, date_visit_clean | Count | refinery_clean |
| 2 | HIV positivity rate | hiv_test_result | Proportion | refinery_clean |
| 3 | First-time testers proportion | first_time_visit | Proportion | refinery_clean |
| 4 | Index testing yield | index_client, hiv_test_result, relation_with_index_client | Proportion | refinery_clean |
| 5 | Knowledge Assessment completion rate | knowledge_assessment | Proportion | refinery_clean |
| 6 | Mean Knowledge Assessment score | knowledge_assessment | Mean | refinery_clean |
| 7 | Personal Risk Assessment completion rate | risk_assessment | Proportion | refinery_clean |
| 8 | High-risk clients (Risk Score >= 1) | risk_assessment | Proportion | refinery_clean |
| 9 | TB screening completion rate | tb_screening | Proportion | refinery_clean |
| 10 | TB symptom burden (score >= 1) | tb_screening | Proportion | refinery_clean |
| 11 | STI screening completion rate | sti_screening | Proportion | refinery_clean |
| 12 | STI symptom burden (score >= 1) | sti_screening | Proportion | refinery_clean |
| 13 | Sex Partner Risk Assessment completion rate | sex_partner_risk_assessment | Proportion | refinery_clean |
| 14 | Post-test counseling completion | post_test_counseling, risk_reduction, post_test_disclosure | Proportion | refinery_clean |
| 15 | Condom provision rate | condom_provided_to_client, condom_provided_to_client_count | Proportion | refinery_clean |
| 16 | PrEP referral rate | prep_referred, hiv_test_result, risk_assessment | Proportion | refinery_clean |
| 17 | Syphilis test positivity rate | syphilis_test_result | Proportion | refinery_clean |
| 18 | CD4 testing coverage (HIV+) | cd4_semi_quantitative, cd4_flow_cytometry | Proportion | refinery_clean |