Skip to content

Comments

Add disassociability use case: Privacy-Preserving Digital Advertising Measurement#58

Open
tina77fritz wants to merge 8 commits intousnistgov:masterfrom
tina77fritz:ads-dp-use-case
Open

Add disassociability use case: Privacy-Preserving Digital Advertising Measurement#58
tina77fritz wants to merge 8 commits intousnistgov:masterfrom
tina77fritz:ads-dp-use-case

Conversation

@tina77fritz
Copy link

@tina77fritz tina77fritz commented Nov 20, 2025

This PR adds a small reference tool demonstrating two foundational
disassociability techniques commonly used in privacy-preserving
analytics systems:

  1. Contribution bounding – limiting how many times a single user may
    contribute to a cohort.
  2. Cohort thresholding – reporting only cohorts that meet a minimum
    k number of bounded contributions.

What is included

  • cohort_thresholding.py
    A simple, readable Python implementation using only the standard
    library. It loads an event-level CSV (user_id, cohort_id, value),
    applies contribution bounding and k-thresholding, and produces
    aggregated cohort-level metrics.

  • example_events.csv
    A small synthetic dataset illustrating how the tool works.

  • README.md
    Documentation covering:

    • the privacy motivation,
    • input/output formats,
    • example commands,
    • and notes on how the techniques support disassociability.

Purpose

This tool is intended as an accessible reference for practitioners who
need simple building blocks for privacy-aware aggregation workflows,
such as advertising measurement, recommendation systems, and other
event-based analytics pipelines.

The implementation is designed to be easy to read, adapt, and extend
(e.g., with differential privacy, synthetic data, or additional
metrics).

No production code is introduced; this is a documentation-and-example
tool aligned with the goals of the NIST Privacy Engineering
Collaboration Space.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant