Manage Users
Create or remove dashboard users. Admins can manage users.
📊
Favelin Intelligence
Upload your Magento orders export to sync the dashboard.
Data is stored in the cloud — shared across all devices instantly.
📁
Tap to select CSV file
Magento orders export · .csv format
Parsing CSV…
— OR —
Pulls live orders via the Magento API — no CSV needed.
🗑️
Wipe All Data?
This will permanently delete all loaded orders from this browser. You will need to re-upload your CSV to use the dashboard again.

This action cannot be undone.
Missing Cost Data
These SKUs have no cost entered. Add their COGS in Product Costs to fix the Real Net Profit figure.
Intelligence
Navigation
Executive Summary
No data loaded TOTAL MODE
📊
No data loaded yet
Upload your Magento orders CSV to populate
the dashboard with live analytics.

Configurations

Automated sync, historical sync, and customer history engine settings

Automated Sync
DB-driven schedules per data source. Scheduler runs every 15 minutes; jobs are claimed when due.
LOADING
Loading sync jobs…
How it works: Enable a job and pick the Cairo hours of the day to run. Incremental mode pulls recent data only. Backfill mode runs the chosen range in chunks across multiple scheduler ticks. Concurrency-safe via DB-level locking; auto-disables after repeated failures.
Sync History
All scheduled and manual sync runs — successes, failures, durations, and records processed
Started Source Status Duration Records Date range Trigger Error Action
Loading…
Magento Date Range Sync
Pull orders from Magento for any date or date range and store them permanently in the database
ADVANCED
How this works: Each day in the range is fetched one at a time from the Magento API and merged into the permanent database. Orders already stored are updated rather than duplicated. The sync respects Cairo timezone (UTC+3).
Customer History Engine
Controls how "New" vs "Returning" customers are determined
LIGHTWEIGHT
Advanced Customer History Engine
Currently using the lightweight mode: fast phone-number matching against the embedded 121K historical database.
✓ Active — Lightweight Mode
Uses the embedded 121K phone database to classify customers as New or Returning. Fast, works offline, no extra queries. Best for daily operations.
○ Advanced Engine (off)
Queries the favelin_customer_history table for each order. Enables CLV, retention rate, cohort analysis, purchase frequency, and segmentation.
Build Customer History Database
Scan all Delivered orders already in the database and save customer records to favelin_customer_history. Required before enabling Advanced Engine. Safe to run multiple times.
Advanced Engine Unlocks
📊 Customer Lifetime Value (CLV)
🔄 Retention & Churn Rate
📅 Cohort Analysis
🛒 Purchase Frequency
👥 Customer Segmentation
📈 Repeat Purchase Behavior
Product Financial Data
SKU cost & pricing database for real net profit calculations
0 SKUs
Upload Product Cost CSV
Columns: SKU, Name, Original Price, Special Price, COGS, Notes
SKU*
Name
Type
Orig. Price
Special Price
COGS
No product cost data yet. Upload a CSV or add rows manually.
System Status
Orders in Database
Customer History Records
Customer Engine Mode
Lightweight
Last Magento Sync

Sync Debug

Compare what each source returns live vs. what's stored in the dashboard. If live and stored disagree, the sync has a bug.

Date range
Applies to all comparisons below. Keep it small (1-7 days) for fast comparisons.
📦 Magento (orders)
Compares order count + total revenue between Magento API (live) and favelin_orders (stored).
Not run yet.
📈 Google Ads (via GA4)
Compares spend / clicks / sessions / purchases / revenue between GA4 API (live) and favelin_ga_daily (stored).
Not run yet.
📘 Facebook Ads
Compares spend / clicks / impressions / purchases / revenue between Facebook source (live) and favelin_fb_daily (stored). Source shown is whichever the proxy is currently using (direct Graph or Windsor).
Not run yet.