function ExecutiveScreen({ setRoute }) {
const stateVals = Object.fromEntries(STATES.map(s => [s.code, s.value]));
const monthLabels = ["Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec","Jan","Feb","Mar"];
const revActual = [180,192,205,198,215,224,232,240,252,268,275,288];
const revTarget = [200,205,210,215,220,225,230,240,245,255,265,280];
const catData = [
{ label: "IT & Electronics", value: 428 },
{ label: "Medical & Pharma", value: 312 },
{ label: "Infrastructure", value: 268 },
{ label: "Defence Supplies", value: 214 },
{ label: "Services & Consulting", value: 186 },
{ label: "Other", value: 118 },
];
return (
Executive Dashboard
FY 2025–26 · Q2 · Last refreshed 2 minutes ago · All systems operational
{/* AI insight strip */}
Executive summary generated by VyaparBI Copilot RAG · 3 sources
Q2 procurement is
tracking 12.4% above last quarter, driven by Karnataka (+18.4%) and Delhi NCR (+22.1%).
Punjab shows an anomaly — tender activity down 2.1% pending MCC review. Prophet forecast: Q4 revenue
₹3,480 Cr (±3.2%).
See 3 recommended actions →
{/* KPI row */}
{KPIS.map(k => (
{k.label}
{k.value}{k.unit}
{fmtPct(k.delta)} {k.vs}
))}
{/* Row: revenue trend + donut */}
Revenue Collection — Actual vs Target
₹ Crore · Monthly · FY 2025–26
{/* Row: State map + department table */}
Procurement by State
Click a state to drill down · Q2 FY26
Top 5
{STATES.slice(0, 5).map((s, i) => (
{i + 1}
{s.name}
₹{s.value.toFixed(0)} Cr
= 0 ? 'var(--ok)' : 'var(--danger)', fontWeight: 600 }}>{fmtPct(s.delta)}
))}
Top Departments by Procurement Value
Q2 FY26 · Live GeM feed
Live
| Department / PSU |
Value |
Orders |
Change |
|
{DEPARTMENTS.map((d, i) => (
|
{d.name}
|
₹{d.value.toFixed(1)} Cr |
{fmtNum(d.orders)} |
= 0 ? 'var(--ok)' : 'var(--danger)', fontWeight: 600 }}>{fmtPct(d.delta)} |
v + i * 3)} w={80} h={22} stroke={d.delta >= 0 ? 'var(--ok)' : 'var(--danger)'}/> |
))}
{/* Bottom: recent tenders + insights */}
Recent Tenders
Live from GeM Portal · GEM/2026
| Tender ID |
Buyer |
Category |
Value |
Bids |
Status |
Closes |
{RECENT_TENDERS.map((t, i) => (
| {t.id} |
{t.dept} |
{t.cat} |
₹{t.value} Cr |
{t.bids} |
{t.status} |
{t.closes} |
))}
AI Auto-Insights
3 new
{AI_INSIGHTS.map((ins, i) => (
{ins.title}
{ins.body}
{ins.tag}
· Confidence 92%
))}
);
}
window.ExecutiveScreen = ExecutiveScreen;