Header

PersonalAnalytics Software

Software for privacy-protected collection of digital behavioral data

PersonalAnalytics, the open-source software developed at the Human Aspects of Software Engineering Lab (HASEL) at the University of Zurich, lets researchers and citizens collect and analyze digital behavioral data. It is built specifically for researchers who want participants to run a study client on their own device and capture computer interaction data in a privacy-protected way.

PersonalAnalytics is built on the premise that automatically collected data alone is rarely enough. It therefore combines objective interaction data with in-the-moment self-reports, so that actual behavior can be linked to how people experience it. Data collection is modular, organized into so-called trackers that can be enabled, disabled, and configured independently of one another.

What is captured

  • Window and application activity. Regularly records which application is in the foreground, the window title, and (on macOS) the URL of the active browser tab. Each activity is automatically assigned to a type (e.g. coding, email, planned meeting). This produces an objective picture of computer use without participants having to log anything manually.
  • User input. Stores aggregated counts of keystrokes, mouse clicks, and pixels moved and scrolled per interval. Importantly, the actual keys or text typed are never stored, so it captures interaction intensity without keylogging.
  • Experience sampling. Prompts participants at configurable intervals with a small pop-up to answer one or more questions, for example about perceived productivity, stress, or mood. Supports Likert scales, single- and multiple-choice, and free text, with optionally randomized timing.
  • Daily surveys. Present a set of questions once at the start and/or end of the workday, timed relative to each participant's own configured work hours rather than a fixed clock time. Useful for designs with morning intention-setting and evening reflection.
  • Daily retrospection. A timeline at the end of the workday shows participants how their day was fragmented and distributed across activities. This participant-facing review gives people a reason to keep the tool running, which benefits retention over multi-week studies.

All data is stored exclusively on the participant's own device, in a local SQLite database. Nothing is uploaded automatically.

PersonalAnalytics Software Overview

Configuring it for your own study

The intended workflow: fork the repository, adapt one configuration file, deploy. Most study-related decisions (study name, privacy policy and data-upload URLs, study contact, active trackers, and the specific self-report questions) live in a single file, study.config.ts. Anything else can be changed in code. Deployment runs through an included GitHub Actions pipeline that produces code-signed Windows and notarized macOS installers and pushes silent automatic updates to participants (even mid-study).

The authoritative reference is the RESEARCH.md documentation, which covers every configuration parameter, code signing, and deployment end to end.

Getting data back safely

Because all data is stored locally, there is a deliberate export step at the end of the study. PersonalAnalytics guides each participant through reviewing their own data and optionally anonymizing sensitive parts (redacting window titles and URLs) before anything leaves the device. For each data type, participants choose how to share: unchanged, anonymized, partially anonymized based on a list of terms, or not at all.

This keeps participants in genuine control, which is both ethically sound and helpful for approval by ethics committees, and it tends to improve willingness to take part, since people share more readily when they can see and clean up what they pass on. Export formats include zipped SQLite, zipped JSON, and a direct export to the database.

Further information:

For questions, please contact Dr. André Meyer.