All Case Studies
Power BIRow-Level SecurityDAXPage-Level Security

Secure Commission Reporting Portal

How a US freight brokerage replaced manual commission spreadsheets with one Power BI portal where the CEO, managers and agents each see only their own pages and their own numbers.

5Role-Based Views
632Loads/Month
$196KPayouts Tracked
3Sales Teams
2Security Layers
Download PDF

CEO Dashboard

Screenshot coming soon

01 Executive Summary

In freight brokerage, commission is the most sensitive number in the business. Agents are paid a share of the profit on every load they book, teams carry their own expenses, and executives take their own split. Before this project, these numbers were worked out by hand — and every person could not be given the same file without exposing everyone else's pay.

I built a single Power BI report that calculates every commission automatically from load-level data and enforces security at two levels. Row-level security makes sure each person only sees their own data. Page-level security makes sure each person only sees the pages their role is allowed to open. A custom landing page ties it together: users pick a report from a list that only shows what they can access, click one arrow, and land on their own numbers.

Key result: One secure, self-service portal that replaced manual commission statements — with every dollar traceable from the company total down to an individual load.

— Project at a Glance

Client
A US freight brokerage (name withheld)
Industry
Transportation & logistics: freight brokerage with team-based sales agents
Business Problem
Calculating and sharing agent, team and executive commission securely, accurately and on time
My Role
Power BI Developer: data model, commission logic in DAX, row-level and page-level security, report and UX design
Tools
Power BI Desktop & Service, DAX, Power Query (M), RLS, USERPRINCIPALNAME(), dynamic page navigation, bookmarks & buttons
Users
CEO / executives, team managers and individual sales agents

02 The Challenge

  • Highly sensitive data. Agents must never see another agent's loads or pay, and managers must only see their own team.
  • Different users need different pages. Power BI has no built-in page-level security, so one report normally shows the same pages to everyone.
  • Multi-step commission logic. Load profit, profit adjustments, a 65% team split, team expenses and separate CEO and CFO shares all had to be calculated in the right order.
  • Negative-profit loads. Some loads lose money, and those losses must correctly reduce the commission instead of being ignored.
  • Trust and transparency. Every payout had to be explainable down to the load, so agents could trust their check.

03 Security Architecture: RLS + Page-Level Security

Security was the core of this project. It works on two layers that run together every time someone opens the report.

Layer 1: Row-Level Security (who sees which data)

  • Security mapping table: each user's login email is linked to their role, their team and their agent key.
  • Dynamic RLS with USERPRINCIPALNAME(): Power BI reads who is logged in and filters the data automatically.
  • Filter propagation: the security filter flows from the user table through the Team and Agent dimensions to the load fact table.
  • Role scopes: executives see all teams and agents, managers see only their own team, agents see only their own loads.
  • Tested before release: each role was checked with "View as role" in Power BI Desktop and Service to confirm no data leaks.

Layer 2: Page-Level Security (who sees which pages)

  • Page access table: lists which report pages each role may open, and is itself protected by RLS.
  • Secure navigation list: the landing page's report list is built from that table, so a user only ever sees the pages they are allowed to open.
  • Dynamic arrow button: a DAX measure returns the selected page name and the button uses conditional page navigation to open it.
  • Hidden pages: all report pages are hidden from the page tabs, so the landing page is the only way in.
  • Data still protected underneath: even if a page were reached another way, RLS still limits the data to that user's own rows.

Who Sees What

RolePages AvailableData Scope
CEO / ExecutiveCEO Dashboard, Manager Dashboard, Team Check, Agent Dashboard, Agent CheckAll teams and all agents
Team ManagerManager Dashboard, Team Check, Agent Dashboard, Agent CheckOwn team only
Sales AgentAgent Dashboard, Agent CheckOwn loads only

04 Commission Logic in DAX

All commission rules live in DAX measures, so they are calculated the same way for every user, every time. Each step builds on the one before it:

MeasureHow it is calculated
Load ProfitLine haul revenue minus driver (carrier) pay, summed across loads.
Adjusted ProfitLoad profit after the business's profit adjustments.
65% Split Amount65% of adjusted profit: the team's commission share.
Final Team Check65% split minus that team's expenses: what the team is actually paid.
CEO Share $ / CFO Share $5% of adjusted profit each.
Main Total $65% split + CEO share + CFO share: the total commission payout.
Agent Final CheckThe agent's share calculated from adjusted profit on their own loads.
Verified totals: team rows add up exactly to company totals across every measure — 3 teams = 632 loads = $166,977 final team check.

Agent Dashboard

Screenshot coming soon

Landing Portal

Screenshot coming soon

05 Inside the Report

PageWhat it answers
Home (landing portal)Which reports can I open? One click to my own data.
CEO DashboardCompany-wide commission, executive split and team performance.
Manager DashboardHow is my team performing, load by load and agent by agent?
Team CheckWhat is my team's final payout after the split and expenses?
Agent DashboardWhich loads did I book and what did each one earn me?
Agent CheckWhat is my final commission check for the period?

User Experience Design

  • Guided landing page: a "How it works" panel explains the three steps (choose, click, switch), so new users need no training.
  • Consistent navigation: a header button bar on every page plus a back arrow to return home.
  • Clear wording: messages like "You will only see the reports you have access to" tell users exactly why their list looks the way it does.
  • Matching layout: filters at the top, KPI cards, then detail tables — the same on every page.

06 Business Impact

✓
No more manual statements

Commission is calculated automatically from load data instead of being worked out by hand each period.

✓
Secure by design

One report safely serves executives, managers and agents — no separate files to build or email.

✓
Fewer pay disputes

Agents can see every load behind their check, removing back-and-forth about pay.

✓
Consistent rules

The 65% split, team expenses and executive shares are applied identically for everyone.

✓
Easy to scale

Adding a new agent or team means adding a row to the security table, not rebuilding the report.

07 Full List of Deliverables

DeliverableDescription
Data modelLoad fact table with Team, Agent, Date and security dimensions.
Commission measuresLoad profit, adjusted profit, 65% split, team expenses, final team check, CEO/CFO shares, main total and agent check.
Row-level securityDynamic RLS using USERPRINCIPALNAME() and a user-to-role/team/agent mapping table.
Page-level securityRole-based page access table, secure navigation list and dynamic page navigation.
Landing portalBranded home page with guided "How it works" steps.
5 role-based report pagesCEO Dashboard, Manager Dashboard, Team Check, Agent Dashboard and Agent Check.

08 Skills Demonstrated

SecurityDynamic RLS, page-level security design, role testing with USERPRINCIPALNAME()
DAXMulti-step commission logic, percentage splits, expense deductions, page-navigation measures
Data ModelingStar schema with security dimension and correct filter propagation
Report & UX DesignCustom landing portal, guided navigation, hidden pages, consistent layout
Domain KnowledgeFreight brokerage: loads, line haul, driver pay, gross profit and agent commission
AccuracyTotals reconciled across teams, negative-profit loads handled correctly

Need Secure Reporting for Your Team?

If you need one Power BI report that shows each person only their own numbers — whether for commissions, sales targets or regional performance — I can design the security and the report so it is safe, accurate and easy to use.

Book a Free 20-Minute Call