Power BI Developer – Executive Dashboard & Automated Reporting

Please login or register as jobseeker to apply for this job.

TYPE OF WORK

Gig

SALARY

TBD

HOURS PER WEEK

TBD

DATE UPDATED

Jan 23, 2026

JOB OVERVIEW

We are engaging a senior Power BI Developer to design and implement a centralized, executive-level dashboard that consolidates firm performance metrics currently maintained across multiple spreadsheets.

The solution must be secure, automated, and fully owned by the firm, with refresh capabilities configured to run without manual intervention. This role is responsible for both the dashboard and the underlying data architecture that supports reliable, ongoing reporting.

Scope of Work
Dashboard & Analytics

Design and build a Power BI executive dashboard focused on firm-wide KPIs, trends, and performance indicators
Translate spreadsheet-based data into a clean, optimized Power BI data model
Implement DAX measures for KPIs, time-based metrics, and rollups
Design visuals suitable for executive consumption (high signal, low noise, drill-down capable)


Data Architecture & Automation
Connect Power BI to firm-provided spreadsheets stored in secure cloud locations (e.g., SharePoint or OneDrive)
Configure automated data refresh via Power BI Service (scheduled refresh and monitoring)
Implement best practices for performance, data validation, and error handling
Ensure the solution continues to function independently after project completion


Security, Access & Governance
Work within a least-privilege access model
Use firm-owned service accounts for data refresh (no personal credentials)
Publish dashboards to firm-owned Power BI workspaces
Provide documentation covering data sources, refresh configuration, and maintenance steps


Access Model (Non-Negotiable)
Read-only access to designated reporting spreadsheets
Contributor or Member access to a specific Power BI workspace
No Microsoft 365 global admin access
No access to firm email, accounting, HR, or core operational systems
All access is time-bound and revocable
Candidates must be comfortable delivering within these constraints.


Required Qualifications
Demonstrated experience building executive-level Power BI dashboards
Strong knowledge of Power BI Service, including publishing, scheduled refresh, and workspace permissions
Advanced proficiency in Power Query (M) and DAX
Solid data modeling skills (star schema, relationships, performance optimization)
Experience consolidating and automating spreadsheet-based reporting


Preferred Experience
Power BI solutions using SharePoint or OneDrive data sources
Professional services, legal, finance, or operations reporting environments
Experience documenting and handing off production dashboards to internal teams


Deliverables
Firm-owned Power BI dashboard published to Power BI Service
Automated refresh configured and tested
Clear documentation for data sources, refresh logic, and ongoing maintenance
Optional recommendations for future enhancements or scalability


Application Requirements

Please include:
Examples of Power BI dashboards you have built (screenshots or portfolio links)
A brief explanation of how you typically handle automated refresh and access control
Estimated timeline, budget and availability


Evaluation Process
Shortlisted candidates may be asked to complete a small, time-boxed sample exercise demonstrating data modeling, DAX usage, and executive dashboard design.

VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0010
Controller Execution Time ( Jobseekers / Job )  0.0127
Total Execution Time  0.0145
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,512,560 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Power-BI-Developer-Executive-Dashboard-Automated-Reporting-1562497
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0066 seconds)  (Hide)
0.0017   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0005   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1562497
 LIMIT 1 
0.0004   SELECT *
FROM `employers`
WHERE `employer_id` = 664991
 LIMIT 1 
0.0004   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1562497
AND `misc`.`idIS NULL 
0.0004   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-04-18',ej.date_added) duration_daysDATEDIFF('2026-04-18',e.rebill_date) duration_rebillej.*, e.deactivate FROM employers eemployer_jobs ej WHERE e.employer_id ej.employer_id AND
                                   ((
e.user_level >= '500' AND ej.date_added <= e.rebill_date)
                                   OR 
e.employer_id '' OR (ej.date_approved <> '2000-01-01' and DATEDIFF('2026-04-18',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1562497' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1562497 
0.0009   UPDATE employer_jobs SET hit_counts '***Jan-23-2026=28***Jan-24-2026=101***Jan-25-2026=53***Jan-26-2026=64***Jan-27-2026=47***Jan-28-2026=37***Jan-29-2026=23***Jan-30-2026=20***Jan-31-2026=7***Feb-01-2026=13***Feb-02-2026=7***Feb-03-2026=24***Feb-04-2026=12***Feb-05-2026=13***Feb-06-2026=13***Feb-07-2026=11***Feb-08-2026=4***Feb-09-2026=14***Feb-10-2026=7***Feb-11-2026=17***Feb-12-2026=5***Feb-13-2026=7***Feb-14-2026=3***Feb-15-2026=3***Feb-16-2026=18***Feb-17-2026=9***Feb-18-2026=8***Feb-19-2026=2***Feb-20-2026=4***Feb-21-2026=7***Feb-22-2026=2***Feb-23-2026=4***Feb-24-2026=3***Feb-25-2026=1***Feb-26-2026=4***Feb-27-2026=4***Feb-28-2026=2***Mar-01-2026=5***Mar-02-2026=8***Mar-03-2026=7***Mar-04-2026=8***Mar-05-2026=6***Mar-06-2026=5***Mar-07-2026=2***Mar-08-2026=3***Mar-09-2026=2***Mar-10-2026=7***Mar-11-2026=10***Mar-12-2026=5***Mar-13-2026=3***Mar-14-2026=3***Mar-15-2026=2***Mar-16-2026=3***Mar-17-2026=4***Mar-18-2026=3***Mar-19-2026=5***Mar-20-2026=1***Mar-21-2026=1***Mar-22-2026=6***Mar-23-2026=6***Mar-24-2026=4***Mar-25-2026=6***Mar-26-2026=4***Mar-27-2026=5***Mar-29-2026=1***Mar-30-2026=3***Mar-31-2026=3***Apr-01-2026=2***Apr-02-2026=2***Apr-03-2026=1***Apr-04-2026=4***Apr-05-2026=2***Apr-06-2026=4***Apr-07-2026=3***Apr-08-2026=7***Apr-09-2026=3***Apr-10-2026=2***Apr-12-2026=1***Apr-13-2026=1***Apr-14-2026=1***Apr-18-2026=1' WHERE job_id'1562497'  
0.0006   UPDATE employer_jobs SET monthly_hits '***Jan-2026=380***Feb-2026=221***Mar-2026=131***Apr-2026=34' WHERE job_id'1562497'  
0.0003   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1562497' AND status LIKE 'sent%' ORDER BY id DESC  
0.0002   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1562497 
0.0004   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '664991'
AND `date_added` >= '2022-06-08' 
0.0003   select from teasers 
0.0002   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)