Elina · Product Manager, Elisa
Three questions she cannot ask today.
Our algorithm · TrimAndJitterV3
What happens to a row.
On the transformed data
Two of her questions, answered from the anonymised output.
Focus product development on gaming or streaming?
5G medians
Focus on Gaming: it is the worse-served experience (5G radio latency 114 ms vs 72 ms for Streaming). Same answer after.
Which apps to prioritise for network-quality improvements?
Share of slow 5G downloads, top six
Prioritise VPN and IM: they have by far the largest share of unusually slow downloads. Same ranking after.
Both answers come from app × network groups — no subscriber identity needed.
Limits of the output
What this anonymised output cannot answer.
Which base stations are overloaded and should get a capacity upgrade?
The station identifier is removed on purpose.
No subscriber grouping
No alias. No heavy-user, churn or per-customer questions.
Sparse groups lost
138 of 144 quality groups kept. Lost: Chat, VoIP and file transfer on 5G.
Numbers distorted
IoT on 5G, share of laggy records: 36.2% → 44.1%.
Sample limits
Fabricated times, randomised locations. No real congestion event shown.
Measured on the same file · identifiers removed vs TrimAndJitterV3
Privacy measurement of TrimAndJitterV3.
Elina's analyst can, on this one output:
- Compare gaming and streaming experience per network
- Rank apps for network-quality improvements
- Ask the next app × network question without a new release
Appendix · reproducible
TrimAndJitterV3 as one Python notebook.
What is in it
- The whole algorithm as one pandas function (~25 lines)
- Before/after on fictional rows
- Bit-for-bit check against the pipeline on the full 1.1 M-row file
- The four privacy benchmarks on the released table
- Elina's three questions, answered from the anonymised output — and from the base data
Where
notebooks/TrimAndJitterV3.ipynb
github.com/konemall1/digital_sovereignty_hack_2026 · rendered outputs committed · pipeline id c15_window_k5_noise5
PYTHONPATH=src python notebooks/build_trim_and_jitter_v3.py re-executes it: same seed, same checksum, same numbers.