Spam Text Relief aggregate data, methodology version 2 Units: FTC reporting records and FCC complaint tickets, separately. Neither is a count of unique people, verified events, total calls or legal violations. FTC records are grouped by Created_Date; FCC tickets by date_created with issue='Unwanted Calls'. Monday-Sunday windows use each source's reported date. weekly.csv: week_start, week_end, ftc, ftc_robocall_share (fraction 0-1), fcc. Blank FCC values are missing, never zero. daily.json supplies aggregate daily denominators. weekly.json includes derived statistics and source caveats. input-manifest.json lists FTC release URLs, byte hashes, sizes and retrieval dates where retained. Old cache retrieval dates are unknown, not invented. Reproduce: save weekly.json, daily.json and reproduce.py in one directory. Run python3 reproduce.py. It checks totals, medians, paired sample sizes, volume ratio, average weekday shares and both Pearson correlations. Raw FTC reproduction: download the manifest's distinct release URLs into a private directory, renaming DNC_Complaint_Numbers_ to DNC_. Check each file's SHA-256 against the manifest; a later replacement may no longer match. Set FTC_CACHE_DIR to that directory, then run: python3 ftc-recompute.py --week YYYY-MM-DD --output ./recomputed No API paging is needed. Do not republish raw records. Historical source files may become unavailable; hashes document inputs but cannot restore lost files. Deduplication: hash the complete parsed row, including all source columns. Retain the greatest multiplicity for each identical row in any one release. Thus duplicate releases are suppressed across dates and suffixes, while two identical rows within one release remain two records. The source has no stable report identifier: independent identical reports across releases and overlap cannot be distinguished. This is an assumption, not verified unique counts. Coverage: seven observed Created_Date values are required for an FTC chart week. This is not proof of complete publication. Current index discovery has no fixed suffix ceiling; files can be revised and late backfill can change counts. Historical cache gaps are not evidence of agency nonpublication. Comparisons: weekday shares are each day's count divided by its week's total, then averaged with equal weight across matched seven-observed-day weeks. Weekday-profile Pearson r has seven points. Weekly-total r has the published paired_week_count observations. Neither estimates a causal effect. Agencies are not summed. No significance or independent-observation claim is made. Citation: Spam Text Relief, Unwanted-call reporting data, method version 2, https://spamtextrelief.com/data/, data-through date and your access date. Identify FTC/FCC as primary sources and this publication as the analyst. Source terms apply to original releases; no agency endorsement is asserted. Dataset license: Creative Commons Attribution 4.0 International (CC BY 4.0) https://creativecommons.org/licenses/by/4.0/ Applies to Spam Text Relief's original FTC/FCC aggregate compilations, including those accompanying earlier weekly analyses, to the extent the publication holds copyright or similar rights. Share and adapt, including commercially, subject to the license. Where attribution is required, credit Spam Text Relief, identify the dataset and data-through date, link to the data page and license, and indicate changes. No endorsement is implied. Underlying agency releases retain their source rights status and terms; no rights are claimed over public-domain material. This grant does not cover article prose, branding or third-party material. Attribution may be made in a reasonable manner; the data-through date is a suggested citation aid. Full scope: https://spamtextrelief.com/data/#dataset-license