NREL: OpenPATH

Quick links: presentation poster with preliminary results, server code, client (app) code, analysis code. More results to come in a published paper!

Transportation accounts for over 30% of U.S. greenhouse gas emissions. Governments, schools, large employers, and other institutions want to help by providing individuals with low-emissions mobility options, such as e-bikes — but it would be great to have a way to measure how much this actually changes individuals’ behavior. OpenPATH (previously e-mission) is a project headed by Dr. K. Shankari at the National Renewable Energy Lab (NREL) to build an open-source, privacy-preserving app that automatically tracks users’ trips so that these types of studies can easily be done.

Previously, though trips were detected automatically, the app would need to prompt the user for the mode of transportation and some other details. As it turns out, users don’t like filling out surveys, so we try to minimize this! Often, this information can be inferred using machine learning, but sometimes it is still useful to have the user confirm the data. Working at NREL as a paid full-stack developer under the U.S. Department of Energy’s Science Undergraduate Laboratory Internships program in the summer of 2021, my task was to build the system to collect predictions from the inference algorithms and prompt users for confirmation if necessary.

My solution is based on a flexible configuration file schema to allow the scientists in charge of a given study to customize the extent to which they need their participants to manually label trip data. For instance, one policy might be to have users label all datapoints for which the inference algorithm is less than 80% confident, but only every other week.

The system receives information from the AI-based inference algorithms running on the server and calculates a confidence probability for each label. It displays labels as red if the user must input a value, yellow if the user must confirm an inferred value, and green if the information is already good enough that no user input is required. If a trip contains any red or yellow labels, it goes into a “To Label” tab on the app. Users then turn all labels in “To Label” green by inputting information or pressing the checkmark button to confirm. See my poster for more details.

My system passed preliminary testing with a group of beta-testers and was incorporated into production usage. In further testing with a government-funded pilot program of low-income Colorado residents, the system seems to significantly lower the user burden. More detailed results coming soon! In the meantime, feel free to browse the server code, client (app) code, and analysis code.

Updated: