AbairTechSolutionDIGITAL SOLUTIONS FOR A SMARTER TOMORROW

Menu

Oracle APEX

Building KPI Dashboards in Oracle APEX: Charts, Cards and Performance Tips

By AbairTech Solution · Practical guides for Oracle, ERP & business software

Published by AbairTech Solution · Reviewed November 2026 · Editorial policy

Owners and managers rarely want another report. They want to open one screen in the morning and know whether sales, cash, stock and production are on track. Oracle APEX has everything needed to build that screen – Cards regions, charts, faceted filters and drill-down links – but a dashboard that loads slowly or shows too many numbers quickly gets ignored. This guide covers how we design dashboards that people actually use.

1. Start with decisions, not data

Before building anything, ask each manager: what decision do you make every day or week, and which number tells you to act? That usually narrows a long wish list to five to eight KPIs per role. Examples:

Role Useful KPIs
Owner / CEO Today’s sales vs target, cash in hand and bank, receivables overdue, gross margin
Sales manager Sales by salesperson, new customers, top products, orders pending delivery
Store / warehouse Stock below reorder level, expiring stock, pending goods received notes
Production Planned vs produced quantity, rejection rate, machine downtime

2. Build summary views first

Dashboards should not run heavy queries over millions of transaction lines every time someone opens the page. Create views or summary tables that already aggregate data by day, branch and product:

CREATE OR REPLACE VIEW v_daily_sales AS
SELECT TRUNC(i.invoice_date) AS sale_date,
       i.branch_id,
       SUM(l.qty * l.unit_price) AS gross_sales,
       COUNT(DISTINCT i.invoice_id) AS invoice_count
  FROM invoices i
  JOIN invoice_lines l ON l.invoice_id = i.invoice_id
 WHERE i.status = 'POSTED'
 GROUP BY TRUNC(i.invoice_date), i.branch_id;

For very large data, refresh a materialized view or a summary table on a schedule instead of querying live. Make sure the underlying columns used for filtering, such as invoice date and branch, are indexed.

3. Use a Cards region for headline numbers

A Cards region is ideal for the top row of KPI tiles. Return one row per KPI with a title, value, comparison and icon:

SELECT 'Today''s Sales' AS title,
       TO_CHAR(NVL(SUM(gross_sales),0), 'FM999,999,999') AS value,
       'fa-line-chart' AS icon
  FROM v_daily_sales
 WHERE sale_date = TRUNC(SYSDATE)
UNION ALL
SELECT 'Overdue Receivables',
       TO_CHAR(NVL(SUM(amount_due),0), 'FM999,999,999'),
       'fa-exclamation-triangle'
  FROM customer_invoices
 WHERE due_date < TRUNC(SYSDATE) AND status = 'OPEN';

Show a comparison next to each number – vs yesterday, vs last month or vs target. A number on its own does not tell a manager whether to worry.

4. Pick the right chart for each question

Limit each chart to one clear message, keep colours consistent across the dashboard, and label axes with units.

5. Add filters and drill-down

Add a date range and a branch selector at the top of the page, and refresh all regions when they change. Make every KPI clickable: a click on Overdue Receivables should open an Interactive Report of the overdue invoices, pre-filtered. Dashboards answer “what”, drill-down answers “why”.

6. Respect security

Use the same authorization schemes and row-level filters as the rest of the application. A branch manager should see their branch’s figures, not the whole company’s. Hide sensitive regions (for example profit margins) with authorization rather than CSS.

7. Performance tips

Checklist

Want a management dashboard for your business?

AbairTech builds Oracle APEX dashboards on top of ERP, POS, HR and production data. Try our live demos or discuss your KPIs with us.

Explore Live DemosMore Guides