Earned Income Report
Overview
The Earned Income Report system tracks and calculates revenue earned from subscriptions, issue sales, and redemptions. It provides detailed breakdowns by region (US vs International), issue numbers, and subscription types.
Key Components
Data Structure
The report consists of several key data elements:
- Basic Report Information
- Title
- Date range (start/end dates)
- Filters (SKUs, new/renewal, self/gift)
- Issue ID (optional)
- Entry Types
- Paid Copies
- Earned Income
- Average per Copy
- Comped Copies
- Free Reships
- Total Copies
- Redemption Data
- Number of Redemptions
- Earned Income from Redemptions
- Breakdown by Gift vs Non-Gift
- Expired Monthly Data
- Total Earned Income from Expired Monthlies
- Count of Expired Subscriptions
Database Tables
The system uses four main tables:
jc_earned_income_reports
- Main report metadatajc_earned_income_report_entries
- Individual report entriesjc_earned_income_report_redemptions
- Redemption trackingjc_earned_income_report_expired_monthlies
- Expired monthly subscription data
Functionality
Report Generation Process
- Creates a new report record with basic metadata
- Processes redemptions if applicable
- Processes expired monthly earnings if applicable
- Processes shipping batches sequentially:
- Handles initial shipping list
- Processes reships
- Updates totals and averages
Regional Breakdowns
Reports separate data into:
- US (includes US territories)
- International
- Combined totals
Report Output
Generates a CSV file containing:
- Report metadata and filters
- Redemption summary (if applicable)
- Expired monthlies summary (if applicable)
- Issue-by-issue summary
- Detailed breakdown by region and SKU
Known Limitations
- Country codes for redemptions are currently hardcoded to ‘US’
- Processing is done in batches of 50 items
- Requires ‘customer_screens’ capability to generate/download reports
Database Schema Note
Tables are created with WordPress dbDelta to ensure proper schema management and updates.