Reports that update themselves.
Every tenant gets its own ReportDb in a star schema, fed by a Hangfire ETL pipeline that refreshes every fifteen minutes for sales, every hour for visits, and nightly for full rebuilds. The dashboards your team opens at 9 a.m. show data from 8:45 - not yesterday.
- 15 min
- Sales freshness
- 8
- Fact tables
- 10
- RLS roles
Net sales
Rs. 14.2M
↑ 12.4% vs last month
Outlets billed
847
↑ 38 new
Returns
Rs. 84K
0.6% of sales
Avg ticket
Rs. 16,759
Daily sales (Rs. millions)
A separate database, just for reports.
Most SFA tools run reports against the same database that's processing every order. That's why their dashboards take eleven seconds to load - and why the rep entering an order at the same time waits a beat. Vendix runs reports off a separate database that's optimised for dashboards. Order entry stays fast. Dashboards stay fast. Both wins.
- Eight measurable areas covered out of the box - sales, returns, visits, stock movement, sales orders, GRN, payments, batch movement.
- Five ways to slice every number - by outlet, by product, by time, by territory hierarchy, by user.
- Refresh schedule - sales every 15 minutes, inventory every 30, visits hourly, full nightly rebuild.
- Refresh history visible to admins - duration, rows processed, success or failure - so "why is the dashboard old?" never becomes a ticket.
How fresh data reaches the dashboard
Live system
Transactions
Reps creating orders
Refresh
Every 15 min
Automatic
Reporting
Dashboards
What managers see
Group tenants get a bonus rollup
A consolidated reporting layer adds up every sub-tenant's numbers nightly. Holding companies see one P&L without each subsidiary exposing raw data.
Power BI Embedded · Sales by region
One report. Web, mobile, email.
Vendix uses Power BI Embedded (.NET SDK) so the same authored report renders inside the Blazor portal, inside the Android app via WebView, and inside the inboxes of anyone you put on a schedule. Power users can also point Power BI Desktop directly at the ReportDb for ad-hoc analysis - same data, no second pipeline.
- Blazor iframe embed in the tenant portal - no second login.
- Android WebView embed - works offline by caching the last render.
- Scheduled email delivery - Daily, Weekly, or Monthly anchors via Hangfire's
ReportEmailDeliveryJob. - Excel + PDF export via ClosedXML and QuestPDF - pixel-perfect.
Same dashboard. Different data.
A regional sales manager and a sales rep should see the same dashboard - but filtered to what each is allowed to see. Vendix wires Power BI's row-level security to the tenant's role hierarchy automatically. You author the report once. Five roles see five legitimate slices.
- TenantAdmin sees all regions, all reps, all outlets.
- RSM/ASM see their region or area - hierarchy walked via
ManagerId. - SalesRep sees their own routes only.
- ReportUser on a holding company sees the consolidated group view.
Same .pbix file · five legitimate views
Everything you'd otherwise build.
Drill-through navigation
Click a region tile, jump to that region's breakdown. Click a rep, jump to their KPIs. Built into the report layer, not bolted on.
Favorites + saved filters
ReportFavorite entity per user - pin the views you actually use. Filters survive log-out so you don't re-pick "this month" every morning.
Excel + PDF + CSV export
ClosedXML for spreadsheets, QuestPDF (community licence) for pixel-perfect PDFs, native CSV for ad-hoc.
Mobile JWT API
6 endpoints under /api/mobile/reports - fetch KPIs, list reports, download PDFs straight to the Android app. Same auth as the rest of the mobile API.
Group consolidation
Holding-company tenants get a ReportDb_Group built nightly at 02:30 UTC. One P&L across every subsidiary, no manual export-and-merge.
EtlRunLog visibility
TenantAdmin sees every job's last run, duration, rows processed, errors. No "why is the dashboard old?" tickets.
Reports that aren't five days late.
On a demo we'll spin up a tenant ReportDb with your sample data, schedule it for fifteen-minute refresh, and email you a PDF. Three minutes from start to delivery.