F - MPX NYC: Measurement

As part of the MPX NYC survey, we developed a digital tool called the MPX NYC Person–Place Network Mapper. We describe its design, functionality, and implementation.

Code
plot_icon(icon_name = "droplets", color = "dark_purple", shape = 0)

F.1 Person–Place Network Mapper

We designed, tested, and implemented the MPX NYC Person–Place Network Mapper to meet practical and ethical challenges in collecting sensitive spatial data within an anonymous survey. Our goal was to capture information on venues visited by participants—including those where sexual activity occurred—while minimizing the risk of reidentification through location data.

Requirements

Working in partnership with a back-end web developer, we led the design of a survey tool capable of collecting:

  1. Self-reported health and demographic information through multiple question types;
  2. Sexual and social network data through link tracing; and
  3. Information on relevant geographic locations.

Throughout, we sought to reduce participant burden and ensure that no identifying information was collected.

Example of a user prompt for a forced-response question in the custom designed MPX NYC survey instrument

Place Mapping

Because participants were unlikely to recall precise addresses or ZIP codes, we integrated the Google Maps API to allow them to identify locations by business name, landmark, cross-street, subway station, or neighborhood. The map displayed standard navigation tools and detailed geographic information to aid orientation (see Figure F.1).

Figure F.1: Map input question format developed for MPX NYC

At the beginning of the survey, participants were asked to locate their primary residence on the map. Later, they identified venues where they had physical or sexual contact in group settings. Each map tap placed a marker and triggered follow-up questions about the type of venue and activities that occurred there.

Implementation

The tool’s front end was developed by the principal investigator as a single-page React/Next.js application hosted on Vercel, with design elements based on the MPX NYC style guide. Standard survey question formats (e.g., multiple choice, free text) were combined with the custom place-mapping and link-tracing components. The back end comprised a custom Neo4j graph database connected to the front end through a study API.

F.2 Safety

Survey questions were carefully designed to avoid collecting any direct or indirect identifiers, such as names, email addresses, IP addresses, or exact geographic coordinates. Age was recorded as a categorical variable rather than an integer to further reduce identifiability.

To protect participant privacy, geographic coordinates were converted into census tract identifiers on the participant’s device before transmission to the database. Census tracts represent U.S. geographic areas containing 2,500–8,000 residents.

Public and Private Identifiers

When a participant began the survey, the front end parsed referral identifiers and language settings from the access URL. This information was sent to the study API, which generated a public–private identifier pair and stored it in a secure table. The API then returned the public identifier to the participant.

Upon survey completion, responses were transmitted to the API, which replaced public identifiers with private ones before saving the data to the database. The identifier-pair table was stored separately and deleted after data collection concluded.

Sensitive Spatial Data

Each spatial input generated precise coordinates through the Google Maps API. These were immediately processed on the front end through the FCC API to obtain census block identifiers, which were then truncated to census tracts. Only the census tract identifiers were transmitted to the study database.

Testing and Ethical Review

We conducted two rounds of usability testing with approximately ten participants each to refine the survey interface and workflow. The final instrument and study protocol were reviewed and approved by the Harvard T.H. Chan School of Public Health Institutional Review Board (IRB22-0761).

F.3 Study questionnaire

Code
targets::tar_read(config_list)[[1]][["variables"]] |>
  purrr::map(
    function(x) return(paste0(
                              "::: {.callout }\n\n# ", 
                              x[["label"]], 
                              "\n\n",
                               x[["question"]],
                              "\n\n",
                              paste(x[["response_options"]], collapse = "; "),
                              "\n\n:::"
                              ))
  ) |>
  paste(collapse = "\n\n") |>
  cat()
Home census tract

Where in the city do you live? Tap on the map to show your home.

Age

How old are you?

<18; 18-24; 25-34; 35-44; 45-54; 55+; 55+

Participant question

What question do you wish we had asked in the survey?

Assigned sex

What is your sex assigned at birth?

Male; Female; Other

Recruitment channel

Recruitment channel

Grindr; Partner toolkit; Instagram; Twitter; Unknown

Recent important social contacts

How many queer and trans friends do you have who are important to you for any reason? Count only those you have been in touch with over the past 4 weeks.

Recent physical contacts

How many individuals have you had prolonged physical contact (but no sexual contact) with in the past 4 weeks, excluding group settings?

Recent individual sex contacts

How many individuals have you had sex with in the past 4 weeks, excluding group sex partners?

Recent covid diagnosis

In the past 4 weeks, did you test positive for COVID-19?

Yes; No; Did not test

Survey date

Survey date

Current gender

What is your gender identity?

Man; Woman; Trans man; Trans woman; Non-binary; Other

Group contact

Over the past 4 weeks, have you had sex with two or more people at the same time or had close physical contact with multiple people at the same time? (like at a party, sport game, concert, show)

Yes; No

PrEP user

Are you on PrEP?

Yes; No

HIV status

What is your HIV status?

Living with HIV; Not living with HIV; Unsure

HIV supressed

Have you been told that your viral load is suppressed or undetectable?

Yes; No; Unsure

Monkeypox care

Did you receive care by a medical provider for your symptoms?

Yes; No

Mpox testing

In the past 4 weeks, did you receive testing for mpox?

Yes; No

Mpox vaccine

Have you received at least 1 dose of the monkeypox vaccine?

Yes; No; Unsure

Sexual orientation

What is your sexual orientation?

Gay; Bisexual; Straight; Queer; Something Else

Gender identity

Gender identity

Cisgender Man; Non Binary; Transgender Man; Transgender Woman; Cisgender Woman; Another Demographic; Another Demographic

Race

Race

White; Latinx; Black; Asian; Multi Racial; Another Group

Hookup travel time

By the way, how long are you willing to travel to hook up?

Number of symptoms (calculated)

Number of symptoms (calculated)

Place type

What kind of place is this?

Concert/Theatre/Show; Concert/Theatre/Show; Dark Room/Sex Party; Dark Room/Sex Party; Dance Party; Sport Game; Private Residence; Something Else

Sexual contact at place

Did you have sexual contact while at this venue?

Did not have sex; Had sex; Did not have sex

F.4 References

  • Vercel. 2024. NextJS Documentation. https://nextjs.org/docs.
  • Neo4j. 2024. Neo4j Documentation. https://neo4j.com/docs.
  • US Census Bureau. 2022. Census Geography.
  • Federal Communications Commission (FCC). 2022. API for Census Block Data.

Acknowledgements: The survey instrument was designed by Keletso Makofane and coded by Keletso Makofane (front end) and Imran Ansari (back end). Sudipta Saha found the web service that allowed us to safely collect spatial data. Seema Kara wrote the initial technical specifications for the instrument. neo4j granted a concessionary licence for the graph database system we used for the back end. Pedro Carneiro and Nguyen Tran led the development of survey questions. Cody Nolan and Anton Antón Castellanos Usigli conducted translation from English to Spanish. Robert Pitts helped to design questions on suspected mpox symptoms.

Lead author: Keletso Makofane, MPH, PhD. Editor: Nicholas Diamond, MPH. (Published: June 2025).

Code
plot_icon(icon_name = "taco", color = "light_purple", shape = 16, alpha = 0,  size = 100, image_size = 0.2)