Creator prompt
The idea behind this presentation
Data Journalism & Data Analysis PPT
With Synthetic Data Startups, SQL Scenarios & Python Faker Library
Slide 1: Title Slide
Data Journalism & Data Analysis
From Investigative Reporting to SQL, Python & Synthetic Data Generation
[Your Name]
[Date]
Slide 2: Agenda
Data Journalism & Data Analysis Basics
Synthetic Data & Virtual Consumers (Startups)
SQL Analysis for Journalists: Core Scenarios & Queries
Python Basics for Data Journalism
Faker Library: Generating Thousands of Records for Practice
Live Demo & Key Takeaways
Slide 3: Data Journalism & Data Analysis Basics
Data Journalism = Using digital data as the core narrative foundation — collecting, cleaning, analyzing, and visualizing data to build news stories
Data Analysis = Process of inspecting, cleaning, transforming, and modeling data to extract useful insights
Core Process:
Define Story → Collect Data → Clean → Analyze → Interpret → Communicate → Publish
Goal: Turn raw data into accountable, evidence-based journalism
Key Principle: Data is the tool, story is the purpose, truth is the bottom line
Slide 4: Synthetic Data & Virtual Consumers (Part 1)
What is Synthetic Data?
Data generated by systems that preserves the statistical properties and patterns of real data while protecting privacy
Intellicia (South Korea)
Platform: TheSurvey.ai
Generates "synthetic consumers" — hundreds of thousands of virtual respondents
AI trained on real consumer data answers surveys and interviews
Compresses consumer research from weeks to hours
Clients: CJ CheilJedang, Lotte Wellfood, and other major Korean companies
Completed 130+ projects
Journalism Relevance: Faster access to consumer insights for market and business reporting
Slide 5: Synthetic Data & Virtual Consumers (Part 2)
RIWI (Canada)
Uses proprietary RDIT™ real-time data collection technology
Generates synthetic datasets that maintain statistical properties of real data
Privacy-preserving, aimed at AI/ML model training and market simulation
Acutus AI (India)
Founded by former executives from Cint and Lucid
Synthetic-Data-as-a-Service platform
Uses generative AI to create datasets that avoid privacy bottlenecks and improve AI model performance
Sovereign Forger
Generates synthetic ultra-high-net-worth individual profiles
Used for AI training and compliance testing
Essential plan starts at $499 (1,000 records)
Journalism Relevance: Privacy-safe datasets for investigative training without exposing real sources
Slide 6: SQL Analysis — Why It Matters for Journalists
SQL is the core daily tool for data journalists and analysts
SQL testing appears in almost every round of data journalism and analyst interviews
Four evaluation dimensions:
Syntax accuracy — writing correct SQL
Communication — explaining your thought process
Edge cases — handling NULLs, duplicates
Business/Story insight — explaining what the output means for the story
Journalism Example: Finding patterns in government spending, election results, or public health data
Slide 7: SQL Core Scenarios — Common Query Types
Basic Operations:
SELECT — column filtering
WHERE — row filtering
GROUP BY + HAVING — grouping and aggregation
Advanced Queries:
JOINs (INNER vs LEFT vs FULL OUTER)
Window functions: RANK(), ROW_NUMBER()
Subqueries and CTEs
High-Frequency Journalism Questions:
Calculate total spending per government department
Calculate month-over-month change in reported cases
Identify repeat vs first-time donors or voters
Slide 8: SQL Scenario Example — Sample Dataset
Tables:
citizens (id, name, city, registered_date)
donations (id, citizen_id, amount, donation_date)
Scenario 1: Total donations per citizen
sql
SELECT c.name, SUM(d.amount) AS total_donated
FROM citizens c
JOIN donations d ON c.id = d.citizen_id
GROUP BY c.name
ORDER BY total_donated DESC;
Scenario 2: Citizens donating above average
sql
SELECT name FROM citizens
WHERE id IN (
SELECT citizen_id FROM donations
GROUP BY citizen_id
HAVING SUM(amount) > (SELECT AVG(amount) FROM donations)
);
Journalism Use: Identifying major donors and unusual patterns for accountability reporting
Slide 9: Python Basics for Data Journalism
Why Python for Data Journalism?
Automate processing of thousands of records
Rich library ecosystem
Reproducible, scriptable workflows for investigations
Core Libraries:
Library Purpose
Pandas Data cleaning, transformation, aggregation
NumPy Numerical computing
Matplotlib / Seaborn Data visualization for stories
Faker Synthetic data generation for practice
Journalism Example: Cleaning 10,000 rows of leaked documents in minutes instead of days
Slide 10: Faker Library — Installation & Setup
Faker is a Python library for generating all kinds of synthetic data — ideal for journalism students and reporters to practice without real data
Install:
bash
pip install Faker
Initialize with a random seed (for reproducibility):
python
from faker import Faker
import pandas as pd
import random
fake = Faker()
Faker.seed(42) # Fixed seed = same output every run
Localization support:
python
fake_zh = Faker('zh_CN') # Chinese names, addresses, etc.
fake_kr = Faker('ko_KR') # Korean locale
fake_in = Faker('en_IN') # Indian locale for local practice
Journalism Use: Generate realistic test datasets for SQL and Python practice without privacy concerns
Slide 11: Faker Core Methods — What Can It Generate?
Method Generates
fake.name() Full name
fake.email() Email address
fake.phone_number() Phone number
fake.address() Full address
fake.date_of_birth() Date of birth
fake.uuid4() Unique ID
fake.pyfloat() Random float
fake.company() Company name
fake.job() Job title
fake.city() City name
fake.country() Country name
fake.credit_card_number() Credit card number
Journalism Use: Create realistic sources, witnesses, and records for training simulations
Slide 12: Generating Thousands of Records with Faker
python
import pandas as pd
from faker import Faker
fake = Faker()
Faker.seed(42)
# Generate 10,000 synthetic citizen records
data = []
for _ in range(10000):
data.append({
"citizen_id": fake.uuid4(),
"name": fake.name(),
"email": fake.email(),
"city": fake.city(),
"registered_date": fake.date_between(start_date='-3y', end_date='today'),
"age": fake.random_int(min=18, max=75),
"total_donated": round(fake.pyfloat(min_value=10, max_value=5000), 2)
})
df = pd.DataFrame(data)
df.to_csv("synthetic_citizens.csv", index=False)
print(f"Generated {len(df)} records")
Output: A 10,000-row CSV ready for SQL or Pandas analysis — perfect for journalism practice
Slide 13: End-to-End Demo — Faker + SQL + Pandas
Step 1: Generate synthetic data with Faker (10,000 citizens)
Step 2: Load into SQLite and run SQL queries
python
import sqlite3
conn = sqlite3.connect(":memory:")
df.to_sql("citizens", conn, index=False)
query = """
SELECT city, COUNT(*) AS num_citizens, AVG(total_donated) AS avg_donation
FROM citizens
GROUP BY city
ORDER BY avg_donation DESC
LIMIT 10;
"""
result = pd.read_sql(query, conn)
print(result)
Step 3: Analyze results in Pandas
python
print(df.describe())
print(df.groupby("city")["total_donated"].mean().sort_values(ascending=False).head())
Journalism Use: Full pipeline from synthetic data to investigative insight
Slide 14: Real-World Applications & Challenges
Applications in Journalism & Beyond:
Market Research — synthetic consumers replace slow survey panels (Intellicia)
AI/ML Training — privacy-safe datasets for model training (RIWI, Acutus AI)
Compliance Testing — synthetic profiles for regulatory testing (Sovereign Forger)
Journalism Practice — Faker generates test data for SQL/Python training
Investigative Reporting — SQL + Python for finding patterns in large datasets
Challenges:
Synthetic data bias if training data is biased
Privacy risks if not properly anonymized
Over-reliance on synthetic data can miss real-world edge cases
Human oversight remains irreplaceable in journalism
Slide 15: Key Takeaways & Thank You
Key Takeaways:
Data journalism turns raw data into accountable, evidence-based stories
Synthetic data startups like Intellicia, RIWI, Acutus AI, and Sovereign Forger are transforming how journalists and companies get data fast and privately
SQL remains the core skill for data journalists — master JOINs, GROUP BY, and subqueries
Python + Pandas + Faker lets you generate thousands of realistic records for practice or prototyping
The journalism pipeline: Faker → Pandas → SQL → Insights → Story
Thank You — Questions?
Follow Design: {"palette":["Newsprint cream #F8F6F0 — slide background canvas","Investigative ink #12151A — primary headlines, body text, and structural hairline borders","Redaction vermilion #D93829 — active alerts, investigative callouts, and key story principles","Notebook slate #4D5663 — secondary descriptions, metadata, and column subtitles","Code ledger tint #EFECE3 — container fills for SQL queries, terminal blocks, and data cards","Verification sage #2D6A4F — synthetic data startup badges and success indicators"],"fonts":{"Newsreader":"https://fonts.googleapis.com/css2?family=Newsreader:ital,wght@0,200..800;1,200..800&display=swap","Public Sans":"https://fonts.googleapis.com/css2?family=Public+Sans:ital,wght@0,100..900;1,100..900&display=swap","IBM Plex Mono":"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&display=swap"},"type":"Newsreader in medium and semi-bold for editorial broadsheet slide titles and big takeaway quotes with subtle italic emphasis; Public Sans in regular and medium weights with tight 1.4 line height for agenda bullets, structured narrative blocks, and company profiles; IBM Plex Mono in 500 weight for SQL queries, Python Faker code, field types, and inline data keys.","layout":"An asymmetric 4-column investigative broadsheet layout with an authoritative left editorial rail (35% width) carrying narrative context and process steps, paired with a right multi-card workspace (65% width) holding code blocks, startup profiles, and query tables; generous 48px canvas margins with horizontal 1px hairline separator rules between topics.","framework_treatment":"Newspaper-style hairline borders around data cards, faux terminal windows with monospace command headers for Python and SQL demos, stamped category tags like 'STARTUP SPOTLIGHT' and 'CORE QUERY', two-row data tables with subtle zebra striping, and minimalist monochrome flow diagrams showing the end-to-end data pipeline from raw synthetic generation to story publication.","feels_like":"A ProPublica investigative visual report crossbred with a high-end data journalism code notebook"}