Methods
How the indicators are built.
Release label
alpha
v0.2.0
Pipeline
observatory-batch-pipeline
Observed months
4
43,094 raw rows loaded
Suppressed regions
694
Region-month rows hidden under publication rules
Data source
Daylight uses aggregated data derived from online adult-services advertising and related digital market signals, normalizes it into a local warehouse, and publishes only monthly aggregate outputs.
Normalization
Rates, locations, age strings, image counts, service lists, and hashed advertiser identifiers are derived before metric computation.
Suppression
Thin region-month cells are suppressed according to configurable thresholds to reduce noise and limit misuse.
Limitations
Listing data is not transaction data, worker counts, or direct evidence of risk. All outputs should be interpreted as market signals with known uncertainty.
Pipeline stages
1
Ingest
Load current and archived SQLite sources into a rebuildable warehouse.
2
Normalize
Parse rates, service lists, dates, images, ages, and privacy-safe advertiser identifiers.
3
Aggregate
Compute monthly UK, regional, service, language, mobility, and concentration metrics.
4
QA
Check coverage, parse success, region counts, and suppression eligibility before publication.
5
Publish
Serve versioned aggregate JSON outputs to the public site and gated explorer layer.
Phase 1 indicators
Advertised Rate Index
Median standardized rates, especially 1-hour incall and outcall benchmarks.
Outcall Premium
Matched advertised differential between outcall and incall pricing within the same listing.
Market Volume Index
Distinct listings and advertiser counts after monthly deduplication.
Listing Persistence Index
Observed carry-over and exit signals across adjacent monthly snapshots.
Mobility / Multi-Location Index
Advertiser-level regional overlap measured via hashed repeated identifiers.
Concentration Index
Top-share and HHI-style measures of repeat-advertiser concentration.
Intimacy-Service Index
Share of listings advertising at least one configured companionate marker: GFE, French Kiss, or Dining.
Publication rules
Thin region-month cells are suppressed rather than published without caveat.
No raw advertiser identifiers or row-level listing records are exposed on the public site.
Indicator meaning is stated alongside each chart to reduce overinterpretation.
Current thresholds and coverage
Threshold configuration
region_metric_min_sample: 20
matched_premium_min_sample: 15
service_share_min_sample: 20
public_top_regions_limit: 12
Coverage snapshot
Listings in warehouse: 35,663
Rows with canonical region: 35,453
Rows with incall 1h parsed: 30,874
Rows with outcall 1h parsed: 16,590
Rows with hashed advertiser IDs: 35,309