Data Analyst — BigQuery & Looker Studio (Project-Based, Then On-Call)

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

TYPE OF WORK

Gig

WAGE / SALARY

465.00-940.00

HOURS PER WEEK

TBD

DATE UPDATED

May 8, 2026

JOB OVERVIEW

Job Title: Data Analyst — BigQuery & Looker Studio (Project-Based, Then On-Call)
Type: Contract — project to start, on-call retainer after
Pay: Open to proposals — tell us your project rate and your hourly rate for ongoing changes
Location: Remote, Philippines preferred

About Us
We are a professional land surveying firm in Ottawa, Canada. We are building a reporting system so our partners can see job profitability, utilization, work-in-progress, and pipeline in real time. We have a tea ---------- mber who handles ---------- and the automated data pipeline into BigQuery. We need someone to own the analytics layer on top of it.

What We Need
This is a two-part engagement.
Part 1 — Build it
Our data is already flowing into Google BigQuery. Your job is to design the data model, write the SQL views, and build the Looker Studio dashboards our partners use daily. Core reports include job profitability with drill-down by person and phase, work-in-progress, staff utilization, AR aging, and quote pipeline.
We will work with you closely at the start to make sure you understand the business and what each report needs to show. After that we expect you to work independently and deliver.
Part 2 — Hand it over
Before this engagement closes, you must deliver a written maintenance guide — plain English, no jargon — that explains how the system works, how to update it when something changes, and how to troubleshoot common problems. This is a hard deliverable. No guide, no final payment.
After that — on-call
Once the system is live and handed over, we will contact you when we need something changed — a new dashboard, a new filter, a schema update. You quote us for the change, we approve, you do it. No retainer, no commitment on either side. We just want a reliable person we can call who already knows our system.

You Must Have

Real BigQuery experience — table design, SQL views, star schema or similar
Real Looker Studio experience — multi-page reports, calculated fields, drill-downs, blended sources
Ability to write documentation that a non-technical person can follow
Strong written English

Working hours: 8am-4pm Eastern Time (Ottawa, ON)


How to Apply

Email
---------- with your project rate, your hourly rate for ongoing work, and two or three examples of BigQuery or Looker Studio work you have done — what the data was, what the reports showed, and what your role was.
Read the whole post before applying. The first line of your application must name the Google product we use as our data warehouse. Applications that do not start with this will not be read.

SKILL REQUIREMENT
VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0008
Controller Execution Time ( Jobseekers / Job )  0.0276
Total Execution Time  0.0289
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,511,016 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Data-Analyst-BigQuery-Looker-Studio-Project-Based-Then-On-Call-1642135
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0210 seconds)  (Hide)
0.0003   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0013   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1642135
 LIMIT 1 
0.0009   SELECT *
FROM `employers`
WHERE `employer_id` = 904166
 LIMIT 1 
0.0108   SELECT COUNT(DISTINCT t.id) as cnt
FROM 
`t_thread` `t`
INNER JOIN `t_message` `mON `t`.`id` = `m`.`thread_id`
INNER JOIN `t_message_employer` `eON `m`.`id` = `e`.`message_id`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1642135
AND `misc`.`idIS NULL 
0.0006   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-06-21',ej.date_added) duration_daysDATEDIFF('2026-06-21',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-06-21',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1642135' 
0.0008   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1642135 
0.0021   UPDATE employer_jobs SET hit_counts '***May-08-2026=361***May-09-2026=48***May-10-2026=36***May-11-2026=61***May-12-2026=34***May-13-2026=35***May-14-2026=21***May-15-2026=18***May-16-2026=19***May-17-2026=14***May-18-2026=18***May-19-2026=10***May-20-2026=4***May-21-2026=6***May-22-2026=15***May-23-2026=4***May-24-2026=10***May-25-2026=9***May-26-2026=15***May-27-2026=12***May-28-2026=11***May-29-2026=6***May-30-2026=3***May-31-2026=12***Jun-01-2026=6***Jun-02-2026=14***Jun-03-2026=7***Jun-04-2026=5***Jun-05-2026=8***Jun-06-2026=7***Jun-07-2026=2***Jun-08-2026=4***Jun-09-2026=6***Jun-10-2026=13***Jun-11-2026=1***Jun-12-2026=1***Jun-13-2026=4***Jun-14-2026=3***Jun-15-2026=1***Jun-16-2026=9***Jun-17-2026=8***Jun-18-2026=2***Jun-19-2026=12***Jun-20-2026=4***Jun-21-2026=1' WHERE job_id'1642135'  
0.0007   UPDATE employer_jobs SET monthly_hits '***May-2026=780***Jun-2026=118' WHERE job_id'1642135'  
0.0013   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1642135' AND status LIKE 'sent%' ORDER BY id DESC  
0.0004   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1642135 
0.0013   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '904166'
AND `date_added` >= '2022-06-08' 
0.0003   select from teasers 
0.0003   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)