Indicator Definitions and Calculations
Indicators are computed from the clean and refinery dbt layers of the Nigeria HIV programme pipeline. This page defines every indicator derivable from the HTS 001 Client Intake Form and the broader NG-HTS refinery model set, including numerator, denominator, disaggregation, and source variables.
Indicator definitions follow PEPFAR MER 2.7 and Nigeria Federal Ministry of Health HTS guidelines where applicable. Deviations from standard definitions are noted explicitly under each indicator.
Routine Indicators
Standard indicators reported to PEPFAR and the Nigeria Federal Ministry of Health on a monthly basis.
Detailed Definitions
HTS_TST — Individuals Receiving HIV Testing Services
| Field | Value |
|---|---|
| Full name | Individuals who received HIV Testing Services and received their results |
| Short name | HTS_TST |
| Definition | Count of unique client visits where the client received their HIV test result, as indicated by clientReceivedHivTestResult = 1 on the HTS 001 Client Intake Form |
| Numerator | COUNT where clientReceivedHivTestResult = 1 |
| Denominator | N/A (count indicator) |
| Disaggregation | Sex (sex), Age band (derived from age), Testing setting (testingSetting), Modality (modality), Facility (facilityName), State (facilityState), LGA (facilityLga), Month (dateVisit) |
| Inclusion criteria | Records from ng_hiv_refinery__hts_001_client_intake with clientReceivedHivTestResult = 1 |
| Exclusion criteria | Records with DQA Error severity flags; records where discardPage is marked |
| Reporting frequency | Monthly |
| Source variables | clientReceivedHivTestResult, sex, age, testingSetting, modality, dateVisit, facilityName, facilityState, facilityLga |
| Reference | PEPFAR MER 2.7 § HTS_TST |
The HTS Register form (ng_hiv_refinery__hts_004_hts_register) provides age-band-disaggregated totals (testedNegativeMale*, testedPositiveMale*, testedNegativeFemale*, testedPositiveFemale*) which cross-validate counts from individual HTS 001 records.
HTS_TST_POS — HIV-Positive Individuals
| Field | Value |
|---|---|
| Full name | Individuals who received HIV Testing Services and tested HIV-positive |
| Short name | HTS_TST_POS |
| Definition | Count of unique client visits where the HIV test result recorded was Positive |
| Numerator | COUNT where hivTestResult = 'postive' |
| Denominator | N/A (count indicator) |
| Disaggregation | Sex, Age band, Testing setting, Modality, First-time visit (firstTimeVisit), Facility, State, LGA, Month |
| Inclusion criteria | Records with hivTestResult = 'postive' |
| Exclusion criteria | Records with DQA Error flags; discarded forms |
| Reporting frequency | Monthly |
| Source variables | hivTestResult, sex, age, testingSetting, modality, firstTimeVisit, dateVisit |
| Reference | PEPFAR MER 2.7 § HTS_TST_POS |
⚠️ Note: The option code in the choices sheet is
postive(typo preserved from XLSForm). Pipeline clean models handle this mapping. Always use the raw value'postive'when querying the refinery layer directly.
HTS Positivity Rate
| Field | Value |
|---|---|
| Full name | HIV Positivity Rate among clients tested |
| Short name | Positivity % |
| Definition | Proportion of all clients who received their HIV test result who tested positive |
| Numerator | COUNT where hivTestResult = 'postive' |
| Denominator | COUNT where clientReceivedHivTestResult = 1 |
| Disaggregation | Sex, Age band, Testing setting, Modality, Facility, State, LGA, Month |
| Inclusion criteria | Records where client received result |
| Exclusion criteria | Records with DQA Error flags |
| Reporting frequency | Monthly |
| Source variables | hivTestResult, clientReceivedHivTestResult, sex, age, testingSetting, dateVisit |
| Reference | PEPFAR MER 2.7 § HTS_TST / HTS_TST_POS |
HTS_INDEX — Index Case Testing
| Field | Value |
|---|---|
| Full name | Individuals identified through index case testing who received HTS and results |
| Short name | HTS_INDEX |
| Definition | Count of clients who were identified from an index client (indexClient = 'yes') and received their HIV test result |
| Numerator | COUNT where indexClient = 'yes' AND clientReceivedHivTestResult = 1 |
| Denominator | N/A |
| Disaggregation | Sex, Age band, Relation to index client (relationWithIndexClient: Biological/Sexual/Social), Testing setting, Facility, State, LGA, Month |
| Inclusion criteria | Records with indexClient = 'yes' |
| Exclusion criteria | Records with DQA Error flags |
| Reporting frequency | Monthly |
| Source variables | indexClient, relationWithIndexClient, clientReceivedHivTestResult, hivTestResult, sex, age, dateVisit |
| Reference | PEPFAR MER 2.7 § HTS_INDEX |
The ng_hiv_refinery__hts_007_fam_index model provides complementary family index testing data for the same client population.
TB Screening Coverage and Positivity
| Field | Value |
|---|---|
| Full name | TB Symptom Screening among HTS clients |
| Short name | TB_SCRN / TB_SCRN_POS |
| Definition | TB_SCRN: count of clients with a recorded TB screening score. TB_SCRN_POS: count with score ≥ 1 (i.e. at least one symptom present) |
| Numerator | TB_SCRN: COUNT where tbScreening is not null. TB_SCRN_POS: COUNT where tbScreening >= 1 |
| Denominator | TB_SCRN_POS denominator: COUNT where tbScreening is not null |
| Disaggregation | TB score band (score = 0 / score ≥ 1 / not screened), Sex, Testing setting, HIV result, Facility, State, LGA, Month |
| Inclusion criteria | All HTS 001 records |
| Exclusion criteria | Records with DQA Error flags |
| Reporting frequency | Monthly |
| Source variables | tbScreening, currentCough, weightLoss, fever, nightSweats, lymphadenopathy, hivTestResult, testingSetting, dateVisit |
| Reference | Nigeria FMoH HTS Guidelines; PEPFAR MER 2.7 § TB_STAT |
The HTS Register (ng_hiv_refinery__hts_004_hts_register) provides pre-aggregated columns tbScreening0, tbScreening1plus, tbScreeningNo by setting for monthly reporting.
STI Syndromic Screening Coverage
| Field | Value |
|---|---|
| Full name | Syndromic STI Screening among HTS clients |
| Short name | STI_SCRN |
| Definition | Count of clients with a recorded STI screening score, and proportion with score ≥ 1 |
| Numerator | COUNT where stiScreening >= 0 (not null). Positives: COUNT where stiScreening >= 1 |
| Denominator | COUNT where stiScreening is not null (for positivity rate) |
| Disaggregation | STI score band (0 / 1+), Sex, HIV result, Facility, State, LGA, Month |
| Inclusion criteria | All HTS 001 records |
| Exclusion criteria | Records with DQA Error flags |
| Reporting frequency | Monthly |
| Source variables | stiScreening, vaginalDischarge, lowerAbdominalPains, urethralDischarge, complaintsOfScrotal, complaintsGenitalSore, sex, dateVisit |
| Reference | Nigeria FMoH HTS Guidelines |
Recency Testing (RTRI)
| Field | Value |
|---|---|
| Full name | Recency Testing with Rapid Test for Recent Infection (RTRI) among newly HIV-positive clients |
| Short name | RTRI_TST / RTRI_RECENT |
| Definition | RTRI_TST: HIV-positive clients who received a recency test. RTRI_RECENT: HIV-positive clients classified as recently infected |
| Numerator | RTRI_TST: COUNT where hivTestResult = 'postive' AND recencyTest is not null. RTRI_RECENT: COUNT where recencyTest = 'recent' |
| Denominator | RTRI_TST: COUNT where hivTestResult = 'postive'. RTRI_RECENT: COUNT where recencyTest is not null |
| Disaggregation | Recency result (Recent/Long Term/Negative/Invalid), Sex, Age band, Facility, State, LGA, Month |
| Inclusion criteria | Records where hivTestResult = 'postive' |
| Exclusion criteria | Records with DQA Error flags |
| Reporting frequency | Monthly |
| Source variables | recencyTest, hivTestResult, sex, age, dateVisit, facilityName |
| Reference | PEPFAR MER 2.7 § RTRI |
Pre-aggregated recency columns (recencyTestRecent, recencyTestLongterm, recencyTestNegative, recencyTestInvalid) are available in ng_hiv_refinery__hts_004_hts_register by setting and by sex × age band.
PrEP Referral
| Field | Value |
|---|---|
| Full name | HIV-negative clients referred for Pre-Exposure Prophylaxis (PrEP) |
| Short name | PREP_REF |
| Definition | Count of HIV-negative clients who met the referral criteria (Section D score ≥ 1 or risk score ≥ 1) and were referred for PrEP |
| Numerator | COUNT where hivTestResult = 'negative' AND prepReferred = 1 (or equivalent field from clean model) |
| Denominator | N/A |
| Disaggregation | Sex, Age band, Risk Assessment Score band, Testing setting, Facility, State, LGA, Month |
| Inclusion criteria | HIV-negative clients |
| Exclusion criteria | HIV-positive clients; records with DQA Error flags |
| Reporting frequency | Monthly |
| Source variables | hivTestResult, riskAssessment, sexPartnerRiskAssessment, testingSetting, dateVisit |
| Reference | PEPFAR MER 2.7 § PrEP_NEW |
The HTS Register (ng_hiv_refinery__hts_004_hts_register) provides pre-aggregated prepScreened and prepEligibleAndReferred columns by setting and sex × age band.
Syphilis Testing Positivity
| Field | Value |
|---|---|
| Full name | Syphilis Test Positivity among HTS clients |
| Short name | SYPH_POS |
| Definition | Proportion of clients tested for syphilis whose result was reactive |
| Numerator | COUNT where syphilisTestResult = 'reactive' |
| Denominator | COUNT where syphilisTestResult is not null |
| Disaggregation | Sex, Age, HIV result, Facility, State, LGA, Month |
| Inclusion criteria | Records with a recorded syphilis result |
| Exclusion criteria | Records with DQA Error flags |
| Reporting frequency | Monthly |
| Source variables | syphilisTestResult, sex, age, hivTestResult, dateVisit |
| Reference | Nigeria FMoH HTS Guidelines |
Hepatitis B and C Testing Positivity
| Field | Value |
|---|---|
| Full name | Hepatitis B Virus (HBV) and Hepatitis C Virus (HCV) test positivity among HTS clients |
| Short name | HBV_POS / HCV_POS |
| Definition | Proportion of clients tested for HBV/HCV who returned a positive result |
| Numerator | HBV: COUNT where hepatitisBTestResult = 'postive'. HCV: COUNT where hepatitisCTestResult = 'postive' |
| Denominator | HBV: COUNT where hepatitisBTestResult is not null. HCV: COUNT where hepatitisCTestResult is not null |
| Disaggregation | Sex, Age, HIV result, Facility, State, LGA, Month |
| Inclusion criteria | Records with a recorded hepatitis result |
| Exclusion criteria | Records with DQA Error flags |
| Reporting frequency | Monthly |
| Source variables | hepatitisBTestResult, hepatitisCTestResult, sex, age, hivTestResult, dateVisit |
| Reference | Nigeria FMoH HTS Guidelines |
CD4 Testing at Entry (Advanced HIV Disease)
| Field | Value |
|---|---|
| Full name | CD4 testing result at HIV diagnosis |
| Short name | CD4_ENTRY |
| Definition | Distribution of CD4 results (≤200 / >200) among newly HIV-positive clients |
| Numerator | COUNT by cd4SemiQuantitative category; AVG(cd4FlowCyteometry) for continuous CD4 |
| Denominator | COUNT where hivTestResult = 'postive' AND cd4SemiQuantitative is not null |
| Disaggregation | CD4 band (≤200 / >200), Sex, Age, Facility, State, LGA, Month |
| Inclusion criteria | Records where hivTestResult = 'postive' |
| Exclusion criteria | Records with DQA Error flags |
| Reporting frequency | Monthly |
| Source variables | cd4SemiQuantitative, cd4FlowCyteometry, hivTestResult, sex, age, dateVisit |
| Reference | Nigeria FMoH Advanced HIV Disease Guidelines |
Discordant Couples
| Field | Value |
|---|---|
| Full name | Discordant couples identified through HTS |
| Short name | DISCORD |
| Definition | Count of HTS visits where a couple was identified as discordant (one partner positive, one negative) |
| Numerator | COUNT where discordantCouple = 1 |
| Denominator | N/A |
| Disaggregation | Testing setting, Facility, State, LGA, Month |
| Inclusion criteria | All HTS 001 records |
| Exclusion criteria | Records with DQA Error flags |
| Reporting frequency | Monthly |
| Source variables | discordantCouple, testingSetting, dateVisit, facilityName |
| Reference | Nigeria FMoH HTS Guidelines |
Custom Indicators
Programme-specific indicators derived from HTS 001 data that are not part of the standard PEPFAR or FMoH reporting framework.
Programme Cascade Overview
The refinery models together support monitoring of the full HTS service delivery cascade. The table below maps each cascade step to its indicator and source.
| HTS Service Delivery Cascade | |||
| Step | Cascade Stage | Indicator | Source Model |
|---|---|---|---|
| 1 | Clients receiving HTS | HTS_TST | ng_hiv_refinery__hts_001_client_intake |
| 2 | Clients testing HIV-positive | HTS_TST_POS | ng_hiv_refinery__hts_001_client_intake |
| 3 | Positive clients receiving RTRI | RTRI_TST | ng_hiv_refinery__hts_001_client_intake |
| 4 | RTRI classified Recent | RTRI_RECENT | ng_hiv_refinery__hts_001_client_intake |
| 5 | Clients screened for TB | TB_SCRN | ng_hiv_refinery__hts_001_client_intake |
| 6 | TB screen positive (score >= 1) | TB_SCRN_POS | ng_hiv_refinery__hts_001_client_intake |
| 7 | Negative clients referred for PrEP | PREP_REF | ng_hiv_refinery__hts_001_client_intake |
| 8 | Index testing contacts reached | HTS_INDEX | ng_hiv_refinery__hts_001_client_intake |
| 9 | Index contacts testing positive | HTS_INDEX_POS | ng_hiv_refinery__hts_001_client_intake |
| 10 | Monthly aggregate cross-validation | All above | ng_hiv_refinery__hts_004_hts_register |
DQA Flag Handling
Records with DQA Error severity flags are excluded from all indicator calculations by default. Records are not deleted — they remain visible in ng_hiv_refinery__hts_errors for correction and re-entry.
Aggregated Register Cross-Validation
The ng_hiv_refinery__hts_004_hts_register model provides monthly pre-aggregated totals by sex, age band (1–4, 5–9, 10–14, 15–19, 20–24, 25–29, 30–34, 35–39, 40–44, 45–49, 50+), testing setting (Ward, CT, TB, FP, STI, Outreach, Standalone HTS, Other community), and pregnant status. These columns serve two purposes:
- Primary reporting to PEPFAR DATIM and the Nigeria FMoH DHIS2 instance, where the register format is the expected submission unit.
- Cross-validation against individual HTS 001 records — discrepancies between aggregate register totals and counts from individual records trigger investigation.
Recommended cross-validation check: SUM(testedPositiveMale*Total) + SUM(testedPositiveFemale*Total) from the HTS Register should equal COUNT(hivTestResult = 'postive') from HTS 001 individual records for the same facility-month. Systematic discrepancies indicate either missing forms or data entry errors in the register.
Generated automatically from HTS 001 Client Intake Form v1.6 source files. Last updated: 2026-06-30.