Files
igny8/igny8-wp-plugin-for-reference-olny/modules/config/kpi-config.php
2025-11-09 10:27:02 +00:00

582 lines
22 KiB
PHP

<?php
/**
* ==========================
* 🔐 IGNY8 FILE RULE HEADER
* ==========================
* @file : kpi-config.php
* @location : /modules/config/kpi-config.php
* @type : Config Array
* @scope : Global
* @allowed : KPI definitions, metrics configurations
* @reusability : Globally Reusable
* @notes : Central KPI configuration for all modules
*/
// Prevent direct access only if not being included
if (!defined('ABSPATH') && !defined('IGNY8_INCLUDE_CONFIG')) {
exit;
}
return [
// Keywords KPIs
'planner_keywords' => [
'total_keywords' => [
'label' => 'Total Keywords',
'query' => 'SELECT COUNT(*) as count FROM {table_name}',
'color' => 'blue'
],
'mapped_keywords' => [
'label' => 'Mapped',
'query' => 'SELECT COUNT(*) as count FROM {table_name} WHERE status = "mapped"',
'color' => 'green'
],
'unmapped_keywords' => [
'label' => 'Unmapped',
'query' => 'SELECT COUNT(*) as count FROM {table_name} WHERE status = "unmapped"',
'color' => 'amber'
],
'total_volume' => [
'label' => 'Total Volume',
'query' => 'SELECT SUM(search_volume) as count FROM {table_name}',
'color' => 'purple'
],
'avg_difficulty' => [
'label' => 'Avg Difficulty',
'query' => 'SELECT ROUND(AVG(difficulty)) as count FROM {table_name}',
'color' => 'blue'
],
'high_volume_keywords' => [
'label' => 'High Volume (>1K)',
'query' => 'SELECT COUNT(*) as count FROM {table_name} WHERE search_volume > 1000',
'color' => 'green'
]
],
// Clusters KPIs
'planner_clusters' => [
'total_clusters' => [
'label' => 'Clusters',
'query' => 'SELECT COUNT(*) as count FROM {table_name}',
'color' => ''
],
'total_volume' => [
'label' => 'Volume',
'query' => 'SELECT SUM(total_volume) as count FROM {table_name}',
'color' => 'green'
],
'total_keywords' => [
'label' => 'Keywords',
'query' => 'SELECT SUM(keyword_count) as count FROM {table_name}',
'color' => 'amber'
],
'mapped_clusters' => [
'label' => 'Mapped',
'query' => 'SELECT COUNT(*) as count FROM {table_name} WHERE mapped_pages_count > 0',
'color' => 'purple'
],
'avg_keywords_per_cluster' => [
'label' => 'Avg Keywords/Cluster',
'query' => 'SELECT ROUND(AVG(keyword_count)) as count FROM {table_name}',
'color' => 'blue'
],
'high_volume_clusters' => [
'label' => 'High Volume Clusters',
'query' => 'SELECT COUNT(*) as count FROM {table_name} WHERE total_volume > 10000',
'color' => 'green'
]
],
// Ideas KPIs
'planner_ideas' => [
'total_ideas' => [
'label' => 'Ideas',
'query' => 'SELECT COUNT(*) as count FROM {table_name}',
'color' => ''
],
'new_ideas' => [
'label' => 'New',
'query' => 'SELECT COUNT(*) as count FROM {table_name} WHERE status = "new"',
'color' => 'green'
],
'scheduled_ideas' => [
'label' => 'Scheduled',
'query' => 'SELECT COUNT(*) as count FROM {table_name} WHERE status = "scheduled"',
'color' => 'amber'
],
'published_ideas' => [
'label' => 'Published',
'query' => 'SELECT COUNT(*) as count FROM {table_name} WHERE status = "published"',
'color' => 'purple'
],
'ai_generated' => [
'label' => 'AI Generated',
'query' => 'SELECT COUNT(*) as count FROM {table_name} WHERE source = "AI"',
'color' => 'blue'
],
'recent_ideas' => [
'label' => 'This Week',
'query' => 'SELECT COUNT(*) as count FROM {table_name} WHERE created_at >= DATE_SUB(NOW(), INTERVAL 7 DAY)',
'color' => 'green'
]
],
// Planner Home KPIs (Main Dashboard)
'planner_home' => [
'total_keywords' => [
'label' => 'Keywords',
'query' => 'SELECT COUNT(*) as count FROM {prefix}igny8_keywords',
'color' => ''
],
'total_volume' => [
'label' => 'Volume',
'query' => 'SELECT SUM(search_volume) as count FROM {prefix}igny8_keywords',
'color' => 'green'
],
'total_clusters' => [
'label' => 'Clusters',
'query' => 'SELECT COUNT(*) as count FROM {prefix}igny8_clusters',
'color' => 'amber'
],
'total_ideas' => [
'label' => 'Ideas',
'query' => 'SELECT COUNT(*) as count FROM {prefix}igny8_content_ideas',
'color' => 'purple'
],
'high_volume_keywords' => [
'label' => 'High Vol (>1K)',
'query' => 'SELECT COUNT(*) as count FROM {prefix}igny8_keywords WHERE search_volume > 1000',
'color' => 'blue'
],
'recent_ideas' => [
'label' => 'This Week',
'query' => 'SELECT COUNT(*) as count FROM {prefix}igny8_content_ideas WHERE created_at >= DATE_SUB(NOW(), INTERVAL 7 DAY)',
'color' => 'teal'
],
'mapped_keywords' => [
'label' => 'Mapped Keywords',
'query' => 'SELECT COUNT(*) as count FROM {prefix}igny8_keywords WHERE status = "mapped"',
'color' => 'green'
],
'unmapped_keywords' => [
'label' => 'Unmapped Keywords',
'query' => 'SELECT COUNT(*) as count FROM {prefix}igny8_keywords WHERE status = "unmapped"',
'color' => 'amber'
],
'clusters_with_ideas' => [
'label' => 'Clusters With Ideas',
'query' => 'SELECT COUNT(DISTINCT keyword_cluster_id) as count FROM {prefix}igny8_content_ideas WHERE keyword_cluster_id IS NOT NULL',
'color' => 'green'
],
'queued_ideas' => [
'label' => 'Queued Ideas',
'query' => 'SELECT COUNT(*) as count FROM {prefix}igny8_content_ideas WHERE status = "scheduled"',
'color' => 'amber'
]
],
// Writer Home KPIs (Main Dashboard)
'writer_home' => [
'queued_tasks' => [
'label' => 'Queued Tasks',
'query' => 'SELECT COUNT(*) as count FROM {prefix}igny8_tasks WHERE status IN ("queued", "in_progress")',
'color' => 'blue'
],
'draft_tasks' => [
'label' => 'Drafts',
'query' => 'SELECT COUNT(*) as count FROM {prefix}igny8_tasks WHERE status IN ("draft", "review")',
'color' => 'amber'
],
'published_tasks' => [
'label' => 'Published',
'query' => 'SELECT COUNT(*) as count FROM {prefix}igny8_tasks WHERE status = "published"',
'color' => 'green'
],
'total_tasks' => [
'label' => 'Total Tasks',
'query' => 'SELECT COUNT(*) as count FROM {prefix}igny8_tasks',
'color' => ''
]
],
// Writer Tasks KPIs
'writer_tasks' => [
'total_ideas' => [
'label' => 'Ideas',
'query' => 'SELECT COUNT(*) as count FROM {prefix}igny8_content_ideas',
'color' => ''
],
'content_scheduled' => [
'label' => 'Content Scheduled',
'query' => 'SELECT COUNT(*) as count FROM {prefix}igny8_tasks WHERE status IN ("queued", "in_progress")',
'color' => 'green'
],
'written' => [
'label' => 'Written',
'query' => 'SELECT COUNT(*) as count FROM {prefix}igny8_tasks WHERE status IN ("draft", "review")',
'color' => 'amber'
],
'published' => [
'label' => 'Published',
'query' => 'SELECT COUNT(*) as count FROM {prefix}igny8_tasks WHERE status = "published"',
'color' => 'purple'
]
],
// Writer Drafts KPIs
'writer_drafts' => [
'total_ideas' => [
'label' => 'Ideas',
'query' => 'SELECT COUNT(*) as count FROM {prefix}igny8_content_ideas',
'color' => ''
],
'content_scheduled' => [
'label' => 'Content Scheduled',
'query' => 'SELECT COUNT(*) as count FROM {prefix}igny8_tasks WHERE status IN ("queued", "in_progress")',
'color' => 'green'
],
'written' => [
'label' => 'Written',
'query' => 'SELECT COUNT(*) as count FROM {prefix}igny8_tasks WHERE status IN ("draft", "review")',
'color' => 'amber'
],
'published' => [
'label' => 'Published',
'query' => 'SELECT COUNT(*) as count FROM {prefix}igny8_tasks WHERE status = "published"',
'color' => 'purple'
]
],
// Writer Published KPIs
'writer_published' => [
'total_ideas' => [
'label' => 'Ideas',
'query' => 'SELECT COUNT(*) as count FROM {prefix}igny8_content_ideas',
'color' => ''
],
'content_scheduled' => [
'label' => 'Content Scheduled',
'query' => 'SELECT COUNT(*) as count FROM {prefix}igny8_tasks WHERE status IN ("queued", "in_progress")',
'color' => 'green'
],
'written' => [
'label' => 'Written',
'query' => 'SELECT COUNT(*) as count FROM {prefix}igny8_tasks WHERE status IN ("draft", "review")',
'color' => 'amber'
],
'published' => [
'label' => 'Published',
'query' => 'SELECT COUNT(*) as count FROM {prefix}igny8_tasks WHERE status = "published"',
'color' => 'purple'
]
],
// Optimizer Audits KPIs
'optimizer_audits' => [
'total_audits' => [
'label' => 'Total Audits',
'query' => 'SELECT COUNT(*) as count FROM {table_name}',
'color' => 'blue'
],
'completed_audits' => [
'label' => 'Completed',
'query' => 'SELECT COUNT(*) as count FROM {table_name} WHERE audit_status = "completed"',
'color' => 'green'
],
'pending_audits' => [
'label' => 'Pending',
'query' => 'SELECT COUNT(*) as count FROM {table_name} WHERE audit_status = "pending"',
'color' => 'amber'
],
'avg_seo_score' => [
'label' => 'Avg SEO Score',
'query' => 'SELECT ROUND(AVG(seo_score)) as count FROM {table_name} WHERE audit_status = "completed"',
'color' => 'purple'
],
'total_issues' => [
'label' => 'Total Issues',
'query' => 'SELECT SUM(issues_found) as count FROM {table_name} WHERE audit_status = "completed"',
'color' => 'blue'
],
'recent_audits' => [
'label' => 'This Week',
'query' => 'SELECT COUNT(*) as count FROM {table_name} WHERE created_at >= DATE_SUB(NOW(), INTERVAL 7 DAY)',
'color' => 'green'
]
],
// Writer Templates KPIs
'writer_templates' => [
'total_templates' => [
'label' => 'Total Templates',
'query' => 'SELECT COUNT(*) as count FROM {table_name}',
'color' => 'blue'
],
'active_templates' => [
'label' => 'Active',
'query' => 'SELECT COUNT(*) as count FROM {table_name} WHERE is_active = 1',
'color' => 'green'
],
'draft_templates' => [
'label' => 'Draft',
'query' => 'SELECT COUNT(*) as count FROM {table_name} WHERE is_active = 0',
'color' => 'gray'
],
'content_templates' => [
'label' => 'Blog Templates',
'query' => 'SELECT COUNT(*) as count FROM {table_name} WHERE prompt_type = "content"',
'color' => 'blue'
],
'product_templates' => [
'label' => 'Product Templates',
'query' => 'SELECT COUNT(*) as count FROM {table_name} WHERE prompt_type = "generation"',
'color' => 'green'
],
'popular_templates' => [
'label' => 'Popular (>10 uses)',
'query' => 'SELECT COUNT(*) as count FROM {table_name} WHERE usage_count > 10',
'color' => 'purple'
]
],
// Optimizer Suggestions KPIs
'optimizer_suggestions' => [
'total_suggestions' => [
'label' => 'Total Suggestions',
'query' => 'SELECT COUNT(*) as count FROM {table_name}',
'color' => 'blue'
],
'implemented' => [
'label' => 'Implemented',
'query' => 'SELECT COUNT(*) as count FROM {table_name} WHERE status = "implemented"',
'color' => 'green'
],
'pending' => [
'label' => 'Pending',
'query' => 'SELECT COUNT(*) as count FROM {table_name} WHERE status = "pending"',
'color' => 'amber'
],
'high_impact' => [
'label' => 'High Impact',
'query' => 'SELECT COUNT(*) as count FROM {table_name} WHERE impact_level = "high"',
'color' => 'purple'
],
'avg_improvement' => [
'label' => 'Avg Improvement',
'query' => 'SELECT ROUND(AVG(improvement_score)) as count FROM {table_name} WHERE status = "implemented"',
'color' => 'blue'
],
'recent_suggestions' => [
'label' => 'This Week',
'query' => 'SELECT COUNT(*) as count FROM {table_name} WHERE created_at >= DATE_SUB(NOW(), INTERVAL 7 DAY)',
'color' => 'green'
]
],
// Linker Backlinks KPIs
'linker_backlinks' => [
'total_backlinks' => [
'label' => 'Total Backlinks',
'query' => 'SELECT COUNT(*) as count FROM {table_name}',
'color' => 'blue'
],
'active_backlinks' => [
'label' => 'Active',
'query' => 'SELECT COUNT(*) as count FROM {table_name} WHERE status = "active"',
'color' => 'green'
],
'lost_backlinks' => [
'label' => 'Lost',
'query' => 'SELECT COUNT(*) as count FROM {table_name} WHERE status = "lost"',
'color' => 'amber'
],
'avg_domain_authority' => [
'label' => 'Avg DA',
'query' => 'SELECT ROUND(AVG(domain_authority)) as count FROM {table_name} WHERE status = "active"',
'color' => 'purple'
],
'dofollow_links' => [
'label' => 'DoFollow Links',
'query' => 'SELECT COUNT(*) as count FROM {table_name} WHERE link_type = "dofollow" AND status = "active"',
'color' => 'blue'
],
'recent_backlinks' => [
'label' => 'This Week',
'query' => 'SELECT COUNT(*) as count FROM {table_name} WHERE created_at >= DATE_SUB(NOW(), INTERVAL 7 DAY)',
'color' => 'green'
]
],
// Linker Campaigns KPIs
'linker_campaigns' => [
'total_campaigns' => [
'label' => 'Total Campaigns',
'query' => 'SELECT COUNT(*) as count FROM {table_name}',
'color' => 'blue'
],
'active_campaigns' => [
'label' => 'Active',
'query' => 'SELECT COUNT(*) as count FROM {table_name} WHERE status = "active"',
'color' => 'green'
],
'completed_campaigns' => [
'label' => 'Completed',
'query' => 'SELECT COUNT(*) as count FROM {table_name} WHERE status = "completed"',
'color' => 'amber'
],
'avg_links_per_campaign' => [
'label' => 'Avg Links/Campaign',
'query' => 'SELECT ROUND(AVG(links_acquired)) as count FROM {table_name}',
'color' => 'purple'
],
'success_rate' => [
'label' => 'Success Rate %',
'query' => 'SELECT ROUND((COUNT(CASE WHEN status = "completed" THEN 1 END) * 100.0 / COUNT(*))) as count FROM {table_name}',
'color' => 'blue'
],
'recent_campaigns' => [
'label' => 'This Week',
'query' => 'SELECT COUNT(*) as count FROM {table_name} WHERE created_at >= DATE_SUB(NOW(), INTERVAL 7 DAY)',
'color' => 'green'
]
],
// Personalize Rewrites KPIs
'personalize_rewrites' => [
'total_rewrites' => [
'label' => 'Total Variations',
'query' => 'SELECT COUNT(*) as count FROM {table_name}',
'color' => 'blue'
],
'this_month_rewrites' => [
'label' => 'This Month',
'query' => 'SELECT COUNT(*) as count FROM {table_name} WHERE created_at >= DATE_FORMAT(NOW(), "%Y-%m-01")',
'color' => 'amber'
],
'total_ai_sessions' => [
'label' => 'AI Sessions',
'query' => 'SELECT COUNT(*) as count FROM {prefix}igny8_logs WHERE log_type = "field_detection" OR log_type = "content_generation"',
'color' => 'green'
],
'avg_sessions_per_rewrite' => [
'label' => 'Avg Sessions/Rewrite',
'query' => 'SELECT ROUND((SELECT COUNT(*) FROM {prefix}igny8_logs WHERE log_type = "field_detection" OR log_type = "content_generation") / GREATEST(COUNT(*), 1), 1) as count FROM {table_name}',
'color' => 'purple'
],
'recent_rewrites' => [
'label' => 'This Week',
'query' => 'SELECT COUNT(*) as count FROM {table_name} WHERE created_at >= DATE_SUB(NOW(), INTERVAL 7 DAY)',
'color' => 'green'
],
'successful_rewrites' => [
'label' => 'Successful',
'query' => 'SELECT COUNT(*) as count FROM {table_name} WHERE status = "completed"',
'color' => 'blue'
]
],
// Personalize Tones KPIs
'personalize_tones' => [
'total_tones' => [
'label' => 'Total Tones',
'query' => 'SELECT COUNT(*) as count FROM {table_name}',
'color' => 'blue'
],
'active_tones' => [
'label' => 'Active',
'query' => 'SELECT COUNT(*) as count FROM {table_name} WHERE status = "active"',
'color' => 'green'
],
'custom_tones' => [
'label' => 'Custom',
'query' => 'SELECT COUNT(*) as count FROM {table_name} WHERE tone_type = "custom"',
'color' => 'amber'
],
'avg_usage_frequency' => [
'label' => 'Avg Usage',
'query' => 'SELECT ROUND(AVG(usage_count)) as count FROM {table_name}',
'color' => 'purple'
],
'popular_tones' => [
'label' => 'Popular (>50 uses)',
'query' => 'SELECT COUNT(*) as count FROM {table_name} WHERE usage_count > 50',
'color' => 'blue'
],
'recent_tones' => [
'label' => 'This Week',
'query' => 'SELECT COUNT(*) as count FROM {table_name} WHERE created_at >= DATE_SUB(NOW(), INTERVAL 7 DAY)',
'color' => 'green'
]
],
// Personalization Data KPIs
'personalize_data' => [
'total_data_entries' => [
'label' => 'Total Data Entries',
'query' => 'SELECT COUNT(*) as count FROM {table_name}',
'color' => 'blue'
],
'personalization_data' => [
'label' => 'Personalization Data',
'query' => 'SELECT COUNT(*) as count FROM {table_name} WHERE data_type = "personalization"',
'color' => 'green'
],
'field_data' => [
'label' => 'Field Data',
'query' => 'SELECT COUNT(*) as count FROM {table_name} WHERE data_type = "fields"',
'color' => 'amber'
],
'recent_entries' => [
'label' => 'Recent (7 days)',
'query' => 'SELECT COUNT(*) as count FROM {table_name} WHERE created_at >= DATE_SUB(NOW(), INTERVAL 7 DAY)',
'color' => 'purple'
],
'active_entries' => [
'label' => 'Active',
'query' => 'SELECT COUNT(*) as count FROM {table_name} WHERE status = "active"',
'color' => 'green'
],
'avg_usage_per_entry' => [
'label' => 'Avg Usage/Entry',
'query' => 'SELECT ROUND(AVG(usage_count)) as count FROM {table_name}',
'color' => 'blue'
]
],
// Personalization Variations KPIs
'personalize_variations' => [
'total_variations' => [
'label' => 'Total Variations',
'query' => 'SELECT COUNT(*) as count FROM {table_name}',
'color' => 'blue'
],
'unique_posts' => [
'label' => 'Unique Posts',
'query' => 'SELECT COUNT(DISTINCT post_id) as count FROM {table_name}',
'color' => 'green'
],
'recent_variations' => [
'label' => 'Recent (7 days)',
'query' => 'SELECT COUNT(*) as count FROM {table_name} WHERE created_at >= DATE_SUB(NOW(), INTERVAL 7 DAY)',
'color' => 'amber'
],
'avg_variations_per_post' => [
'label' => 'Avg Variations/Post',
'query' => 'SELECT ROUND(COUNT(*) / COUNT(DISTINCT post_id), 2) as count FROM {table_name}',
'color' => 'purple'
],
'published_variations' => [
'label' => 'Published',
'query' => 'SELECT COUNT(*) as count FROM {table_name} WHERE status = "published"',
'color' => 'green'
],
'high_performing_variations' => [
'label' => 'High Performing',
'query' => 'SELECT COUNT(*) as count FROM {table_name} WHERE performance_score > 80',
'color' => 'blue'
]
]
];