OPEN TO DATA, BI & ANALYTICS ROLES ACROSS CANADA

When the numbers don’t agree, I’m the one they call.

For 4+ years, Finance, Sales and Operations brought me the report that didn’t tie out. I find the cause, fix it at the source, and build the SQL, pipelines and Power BI reporting that keep it fixed.

Pick the role you’re hiring for below. Every requirement it usually lists is tied to where I’ve done it: a paid role, or a public project you can open and check. Short on time? Watch three 70-second case-study tours ↓

Open to remote and relocation across Canada · Legally eligible to work in Canada · Available immediately

Ask Your Data · example query

> how many migration artifacts passed parallel-run validation?

107 artifacts have a GO verdict.

SELECT COUNT(*) FROM migration_parallel_run_results
WHERE verdict = 'GO'

> delete all denied claims

I can't do that — this is a read-only interface.

Recorded example from the tested query contract. Try your own question in the Ask Your Data demo.

4+
years in finance, sales & supply-chain analytics
21
public projects, code included
16
live demos you can open now
4
projects on real public records: B.C. filings, company filings, fire data, GA4 exports

ROLE FIT

Hiring for one of these? Here’s the evidence, line by line.

Choose the role you’re filling. Each requirement is tied to paid work or a public project you can inspect, and nothing is ticked that I haven’t done.

DATA ANALYST

Answers the business can defend in the meeting.

I was the only analyst at a perishable-goods distributor, so I answered whatever Sales, Finance or the warehouse needed that week. The public projects work the same way: each one ends in a finding, not just a chart.

OPEN THESE FIRST

  1. B.C. Local-Government FinanceReal filings: 68 municipalities are $570M a year short on renewal.
  2. GrowthOps OSAd platforms claimed $3.72M; the business collected $3.06M. Every dollar explained.
  3. Retail Analytics PlatformRevenue tied out across four pages; margin didn’t. Here’s why.
Data Analyst: what the role usually asks for, and where I’ve done it
The role asks forWhere I’ve done itSource
SQL: joins, window functions, CTEsT-SQL every day as the sole analyst at Two Rivers. In public, the HR and GL projects run their committed SQL exactly as written.Paid role
Dashboards and KPI reportingOwned Power BI end to end at Two Rivers: sales, inventory and finance reporting that three departments used without waiting on an analyst.Paid role
Python for analysis and automationAt Shivam Investments, replaced recurring manual analysis with Python and SQL feeding Power BI: about 40% less effort (internal estimate).Paid role
Finding the story in the dataOn a retail platform, one page’s margin was off because $333,573 of cost sat on 3,056 order lines that never shipped. Traced, fixed, and now a test.Public project
Data quality you can trustAutomated reconciliation controls at Two Rivers: about 45% fewer recurring discrepancies and 30% fewer reporting errors (internal estimates).Paid role
Statistics and experimentsA powered geo holdout measures what six attribution models can’t; survival analysis with honest censoring in the HR case.Public project
Advanced ExcelA utility FP&A model in Excel on public filings: Power Query, a Power Pivot data model with DAX, LINEST regression, dynamic arrays, named LAMBDA functions and what-if data tables, with every figure tied to an independent model to the cent.Public project
Tied outPaid roles4Public projects3

BI / POWER BI DEVELOPER

Reports people act on, with one definition behind every number.

I’ve owned Power BI end to end, from the star schema and DAX measure library to row-level security and the published report. In public, the reports live in Git as code, and tests check that every visual binds to a real field.

OPEN THESE FIRST

  1. GrowthOps OSA 7-page Power BI report and an Excel workbook that agree to the cent.
  2. Supply Chain Control TowerAn eight-page Power BI control tower over a tested pipeline.
  3. Utility FP&A in Excel and Power BIPublic utility revenue $100.9M below an independently modelled plan, with an exact variance bridge.
BI / Power BI Developer: what the role usually asks for, and where I’ve done it
The role asks forWhere I’ve done itSource
Star-schema modelling and DAXDesigned the star schemas and DAX measure library behind Sales, Finance and Supply Chain reporting at Two Rivers.Paid role
Row-level securityRLS/RBAC and column masking in production, so cost, margin and people data reached only the people entitled to it.Paid role
Reports stakeholders rely onRep and territory scorecards, AP/AR aging and OTIF reporting, plus a sales-ops layer that ended arguments about whose extract was right.Paid role
Refresh and model performanceIncremental refresh on production semantic models, with DAX measures reviewed like code instead of left to pile up.Paid role
SSRS and paginated reportsKept the SSIS/SSRS estate running at Two Rivers while priority pipelines moved to Microsoft Fabric.Paid role
Reports under version controlPower BI projects kept in Git as PBIP/TMDL, with tests that every visual’s fields exist in the model, plus a Tableau workbook generated from script.Public project
One number across toolsA utility model published in Excel and in Power BI, with a test holding the report’s tables to the workbook’s own cells to the cent, and GrowthOps OS, where a generated Power BI report and a formula-driven workbook on one snapshot agree to the cent.Public project
Tied outPaid roles5Public projects2

ANALYTICS ENGINEER

One definition per metric: versioned, tested, written down.

Analytics engineering is making one definition the only definition. In production, I got Sales, Finance and Supply Chain to agree on their KPIs and built them into the semantic model. In public, dbt contracts, unit tests and MetricFlow sit beside a contracted B.C. finance pipeline that normalizes 90 drifting source files.

OPEN THESE FIRST

  1. B.C. Local-Government Finance90 drifting official files under contract, a dbt model with 31 data tests.
  2. Supply Chain Analytics — dbtContracts, unit tests, SCD2 and change impact.
  3. Supply Chain Control TowerBad data stopped at the boundary, and proven in CI.
Analytics Engineer: what the role usually asks for, and where I’ve done it
The role asks forWhere I’ve done itSource
dbt modelling and testsStaging-to-marts dbt with an enforced contract on the executive mart, unit tests, incremental facts and SCD2 snapshots.Public project
Dimensional modellingStar schemas, conformed dimensions and slowly changing dimensions in the Two Rivers enterprise data mart.Paid role
A semantic or metric layerOwned the production Power BI semantic layer. In public, MetricFlow metrics reconcile to the marts they summarise.Paid role
Definitions agreed with the businessWorked with Sales, Finance and Supply Chain until P&L, OTIF, inventory turns and days on hand each had exactly one definition.Paid role
Data tests in CISchema contracts, quarantined bad rows and a quality gate, each proven by injecting the exact failure it exists to catch.Public project
A cloud warehouseThe same dbt project built on Databricks (serverless SQL warehouse, Unity Catalog) and on Snowflake (dbt Projects on Snowflake): 180 of 180 nodes green on each, and all 41 mart totals equal the DuckDB build on both. A retail platform’s Snowflake marts ran for the first time too: 48 of 48 nodes green, 107 of 107 measures reconciled with an independent pandas build. A bounded AWS Athena / S3 run also reconciles all 32 warehouse measures to Python.Public project
Tests on messy real dataA dbt project on the Province’s filings: 31 data tests, a written list of the Province’s known defects, and a gold layer rebuilt identically in CI.Public project
Git and CI for analytics codeAll 21 public projects run automated validation in GitHub Actions; this repository's root workflow directly rebuilds Portfolio Intelligence.Public project
Tied outPaid roles3Public projects5

SUPPLY CHAIN & OPERATIONS ANALYST

The stock, the shelf and the ledger telling the same story.

I was the only analyst across a perishable-goods supply chain, integrating ERP, POS, WMS, workforce and API data for OTIF, FEFO, lot traceability, vendor scorecards and warehouse accuracy. The public work adds forecasting, inventory policy, disruption planning and the preserved Kestrel Bay distributor model.

OPEN THESE FIRST

  1. Inventory Analytics1,170 prioritized actions across a 420-SKU network.
  2. Supply Chain Control TowerShort-shipping, not lateness, is the bigger OTIF driver.
  3. Supply Chain Analytics — dbtOne versioned revenue definition for Finance and Ops.
Supply Chain & Operations Analyst: what the role usually asks for, and where I’ve done it
The role asks forWhere I’ve done itSource
OTIF and service levelsBroke OTIF down by lane, carrier and failure reason at Two Rivers, separating late trucks from over-promised delivery dates.Paid role
Inventory, expiry and traceabilityFEFO, expiry-risk and lot-traceability reporting, built so a recall question takes minutes instead of a day of spreadsheets.Paid role
Supplier performanceVendor scorecards on fill rate, lead-time variance, price adherence and quality claims, translated into landed-cost impact.Paid role
Warehouse and WMS accuracyCycle-count accuracy, bin utilisation and pick/pack throughput, reconciled against what was actually on the shelf.Paid role
Demand forecastingSKU-level demand forecasting deployed as Python web apps at Two Rivers. In public, seven methods compete in rolling-origin backtests.Paid role
Inventory policy and working capitalSeven service targets priced on an annual cost frontier, with surplus transfers screened before any new purchase, in Inventory Analytics.Public project
Tied outPaid roles5Public projects1

DATA ENGINEER

Pipelines that fail loudly at the boundary, not quietly in a dashboard.

I’ve built Bronze→Silver→Gold pipelines in Microsoft Fabric, Azure Data Factory and Synapse with SQL and PySpark, and kept a legacy SSIS/SSRS estate running while migrating off it. The public pipelines add contracts, quarantine and quality gates, each tested by breaking the data on purpose.

OPEN THESE FIRST

  1. Supply Chain Control TowerA medallion pipeline benchmarked at 10M rows.
  2. Legacy-to-Fabric MigrationA row-for-row GO/NO-GO cutover gate.
  3. B.C. finance data pipeline90 official files under written contracts, and the Province’s own defects caught.
Data Engineer: what the role usually asks for, and where I’ve done it
The role asks forWhere I’ve done itSource
Cloud ELT on Azure and FabricBronze→Silver→Gold pipelines in Microsoft Fabric, Azure Data Factory and Synapse at Two Rivers, written in SQL and PySpark.Paid role
Source-system integrationERP, Square POS, workforce and REST API feeds into the warehouse, including the Synerion time-and-attendance API.Paid role
Data quality and alertingAutomated schema, completeness, uniqueness and referential-integrity tests, with anomaly thresholds, exception logging and pipeline alerts.Paid role
Migration with validationRefactored priority pipelines into Fabric notebooks, validating cutover with row counts, checksums and control totals so no report broke. In public: a GO/NO-GO gate across 107 artifacts.Paid role
Working at scaleA medallion pipeline benchmarked at 10 million rows in Delta Lake, and a dbt project run on a Databricks SQL warehouse.Public project
CI/CD, contracts and orchestrationGitHub Actions on every repository, Docker images built in CI, an Airflow DAG run nightly by its scheduler in CI, and a 90-file public-finance pipeline that fails on unexpected headers or item labels.Public project
Streaming, Terraform and KubernetesAn AML monitor on a Kafka stream (Redpanda): event-time windows, late and duplicate deliveries, at-least-once with idempotent alerts. Terraform deploys it to a Kubernetes cluster in CI, a pod is killed mid-stream, and the run passes only if the stream flags exactly what the batch flags.Public project
Scheduled pipelines that keep runningA forecast pipeline pulls Canada’s public fire and weather records and republishes on a GitHub Actions schedule twice a day, as it has since September; a monthly job re-checks the Province’s B.C. files for changes.Public project
Tied outPaid roles4Public projects4

BUSINESS ANALYST

From an unclear ask to a change people actually adopt.

I’ve spent my career between the people asking the question and the systems answering it: agreeing definitions, mapping the process, testing the change and getting it used. The public work includes the documents a BA actually produces, from charter and RACI to UAT plan and business case.

OPEN THESE FIRST

  1. Legacy-to-Fabric MigrationCharter, RACI, traceability and a live asset decision board.
  2. Inventory Analytics13 traced requirements, 12 UAT scenarios and a pilot plan.
  3. All eleven delivery documentsBusiness cases, process maps, UAT plans and decision memos.
Business Analyst: what the role usually asks for, and where I’ve done it
The role asks forWhere I’ve done itSource
Requirements and stakeholdersWorked with Sales, Finance and Supply Chain at Two Rivers until each KPI had one definition, documented with acceptance criteria.Paid role
Root-cause analysisTraced recurring GL/P&L and inventory discrepancies back to their feeds instead of patching reports: about 45% fewer (internal estimate).Paid role
Process mappingA replenishment and exception-management case ↗: current and future state, handoffs, controls and measurable outcomes.Public project
User stories and a backlogA migration backlog ↗: 16 user stories with 36 Given/When/Then criteria, 30 of which name the CI test that runs them. Loaded into a Jira Cloud Scrum project through the REST API (5 epics, 16 stories), the ten stories whose criteria all run in CI are Done. Thedelivery pack ↗ is also published in Confluence with reciprocal Jira links.Public project
UAT and acceptanceA clinical-data UAT plan ↗ with roles, scenarios, defect handling and exit criteria; 12 UAT scenarios in Inventory Analytics.Public project
Business cases and optionsA ten-year asset capital case ↗ with three options, a health-system decision packet ↗, and finance models that turn operating, capital, debt and reserve assumptions into explicit Base, Upside and Downside decisions.Public project
Options with their costA municipal plan shows a council what closing the renewal gap costs in tax for each mix of borrowing and pace, before anyone chooses.Public project
Change and adoptionWidened self-service Power BI across Sales, Finance and Supply Chain, with row-level security and masking keeping pace.Paid role
Tied outPaid roles3Public projects5

FINANCIAL ANALYST

Every report treated like a close: it ties to source, or it doesn’t ship.

My first analytics job was a financial analyst’s: month-end GL/P&L reconciliations and AP/AR reporting. At Two Rivers I automated those reconciliation controls, and my public finance work turns the same habit into tested engines.

OPEN THESE FIRST

  1. Finance Decision Models in Excel and Power BIUtility plan-vs-actual and distributor working capital.
  2. GL / P&L Reconciliation60 account-periods: 8 certify, 9 go to review, 43 blocked.
  3. Pricing & Costing AnalyticsPocket price, margin leakage and $0.00 unexplained.
Financial Analyst: what the role usually asks for, and where I’ve done it
The role asks forWhere I’ve done itSource
GL/P&L reconciliation and closeMonthly GL/P&L reconciliations at Shivam Investments; automated the same controls later at Two Rivers.Paid role
AP/AR and working capitalAP and AR aging, DPO/DSO, invoice-match exceptions and credit exposure: a working view of cash, not a month-old snapshot.Paid role
Variance and margin analysisGoverned P&L and margin KPIs for monthly variance reviews. In public, a pocket-price waterfall shows 18.2% of list price never arriving.Paid role
Controls and audit trailA close-certification engine tests all 5,400 journal entries, enforces segregation of duties and blocks 43 of 60 account-periods rather than inventing sign-offs. Its Tableau scorecard is generated and checked against Python as project work.Public project
Reporting automationPython and SQL feeding Power BI replaced recurring manual analysis at Shivam: about 40% less effort (internal estimate).Paid role
Excel and Power BI reportingExcel and Power BI at Shivam, plus Power BI finance reporting at Two Rivers.Paid role
Public-sector budgetingA five-year plan for any of 161 B.C. municipalities: tax increases, borrowing under the legal limit and reserves. For Fernie, closing the renewal gap by 2029 needs 3.7% a year.Public project
Budgets, forecasts and scenariosExcel finance models: a utility plan with an exact variance bridge and a four-year backtest; a distributor model with price-volume-mix and working capital; and that distributor’s full budget cycle, from top-down targets and bottom-up submissions through a challenge round to three linked monthly statements and a 3+9 reforecast. A lululemon DCF ↗ links SEC filings to explicit scenarios and sensitivity analysis.Public project
Tied outPaid roles5Public projects3

DATA SCIENTIST

Models that beat the boring baseline, or they don’t ship.

A master’s in applied machine intelligence, a forecast that runs twice a day and is graded in public, and one rule: a model ships only if it beats a simple baseline on data it has never seen. Several of mine lost, and the write-ups say so.

OPEN THESE FIRST

  1. Canada Wildfire RiskReal public data, live twice a day, weekly grading of the first eligible forecast per day.
  2. Corridor Decision IntelligenceUplift models, a proven-optimal plan and a randomized test of the policy.
  3. Transaction MonitoringAll 60 planted cases found, with fewer alerts.
Data Scientist: what the role usually asks for, and where I’ve done it
The role asks forWhere I’ve done itSource
Supervised learning and evaluationTwo XGBoost models, a classifier and a Poisson count, averaged and calibrated; trained to 2016, scored once on 2020–2024: ROC-AUC 0.881 out of time.Public project
Deployed forecasts and model trackingA forecast rebuilt twice a day by a scheduled workflow, and a weekly job that grades the first published forecast per station day on the current grid, using leads 2–7 against satellite detections. First 36 days, through 28 October: ROC-AUC 0.734 (95% CI 0.696 to 0.770), ahead of both baselines on ranking; its top-10% edge is not yet distinguishable from zero. MLflow records model versions and monitoring runs ↗; this is a public deployment, not employer MLOps.Public project
ForecastingSKU demand forecasting in production at Two Rivers. In public, a gradient-boosted forecaster lost to a moving average (19.6% vs 18.5% WAPE), so the moving average shipped.Paid role
Anomaly detectionFive explainable rules plus an anomaly model find all 60 planted cases; a flat $10,000 rule finds 38.Public project
Experiments and causal inferenceIn a synthetic simulation, uplift models trained on a ten-arm randomized offer trial pick who gets which offer; the policy itself was then randomized against business as usual (+$1.40 per customer, 95% CI $0.23 to $2.57). Also a synthetic geo holdout, and a recommender with a proposed, pre-registered randomized pilot; online commercial lift remains unmeasured.Public project
LLM applicationsGrounded text-to-SQL: 46 right, 0 wrong and 12 refused on a 58-question contract, behind a read-only guard.Public project
Statistics and ML foundationsMPS in Analytics (Applied Machine Intelligence), Northeastern, GPA 3.76: machine learning, deep learning, NLP, time series and statistical inference.Master’s
Tied outPaid roles1Public projects5Master’s1

PROJECTS

Twenty-one projects, each ending in a finding you can check

Start with the three case studies, then filter the rest by the work your team does. Sixteen run live in the browser. Four include real public records: B.C. municipal filings, company filings, national fire data and Google’s obfuscated GA4 export. Other analyses use seeded synthetic data; project dollar outcomes are modelled.

Live apps on Streamlit can take 30–60 seconds to wake. Every case study also has screenshots, a document you can download and the code, so nothing depends on a demo being awake.

FILTER
SHOWING 21 / 21 PROJECTS

18 more projects, in brief

Each opens straight to its live demo, decision memo or code. Use the filter above to narrow them.

BI PLATFORM · METRIC GOVERNANCE · INSTANT DEMO

Retail Analytics Platform

Revenue matched to the cent across four dashboard pages while margin did not: $333,573 of cost sat on 3,056 order lines that never shipped. The KPI diff that exposed it now fails the build. Its dbt marts run on Snowflake. A Streams/Tasks pipeline reconciles 94,758 lines after late arrivals, duplicates and corrections; a Snowpark judge agrees, with access checks and a resource monitor recorded.

Python · Flask · DuckDB · dbt on Snowflake · Plotly

ANALYTICS ENGINEERING · DBT ON DATABRICKS AND SNOWFLAKE

Supply Chain Analytics — dbt

Finance and Ops stop arguing about revenue, because there is one versioned definition. Every build names the downstream models a change touches, and the same project builds on DuckDB, Databricks and Snowflake to the same totals. Airflow’s scheduler runs it nightly in CI. An AWS Athena run over private S3 data reconciles 32 warehouse measures to an independent Python calculation, with a 10 MiB scan cap.

dbt · Databricks · Snowflake · Airflow · AWS Athena / S3

EXCEL · POWER BI · FP&A · PUBLIC FILINGS

Finance Decision Models in Excel and Power BI

Portland General Electric’s H1 2026 revenue was $100.9M below an independently modelled plan, split into weather, price and usage, in Excel and Power BI on public filings. Beside it, a distributor model for channel economics and working capital, that distributor’s budget cycle with three linked statements and a 3+9 reforecast, and a lululemon DCF traced to SEC filings.

Excel · Power Query · Power Pivot / DAX · Power BI

FINANCE · MONTH-END CLOSE

GL / P&L Reconciliation

At month-end, 8 of 60 account-periods certify themselves, 9 go to a named reviewer and 43 are blocked. No approval is invented to make the close look finished.

T-SQL · SQLite · Power BI · Tableau

PRICING & MARGIN

Pricing & Costing Analytics

The list price is not the price: 18.2% of it never arrives. This shows which points to go and get, and routes each price change to the person who must approve it.

Python · DuckDB · Power BI · Streamlit

INVENTORY · FORECASTING · INSTANT DEMO

Inventory Analytics · Operations Decision Studio

Before it recommends buying more, it checks whether spare stock elsewhere in the network already covers the gap, and what each service target would cost a year.

Python / Flask · Plotly · DuckDB / SQL · Docker

MIGRATION · VALIDATION · BA DELIVERY

Legacy-to-Fabric Migration

The move from SSIS/SSRS to Fabric waits on a row-for-row GO/NO-GO gate across 107 artifacts, and the tests break the data on purpose to prove the gate catches it.

SSIS · SSRS · PySpark · Microsoft Fabric

TEXT-TO-SQL · CAPSTONE

Ask Your Data

Ask 71 tables a question, typed or spoken, and see the SQL behind every answer. On a 58-question test it answers 46 correctly, gets none wrong and refuses 12 rather than guess.

Python · DuckDB · ONNX · Claude API

FINANCIAL CRIME · ANOMALY DETECTION

Transaction Monitoring

A flat $10,000 rule finds 38 of 60 planted cases. Five explainable rules plus an anomaly model find all 60 while alerting on a third fewer entities, and each rule is mapped to FINTRAC’s indicators and reports. Customer names are screened against Canada’s real sanctions list, scored on a held-out half. KYC rates every customer and traces beneficial owners through holding companies, and two rules run on a Kafka stream on Kubernetes in CI. A privacy assessment classifies every published data element and records the controls still needed for real clients.

Python · SQLite · scikit-learn · Kafka · Terraform · Kubernetes

MEASUREMENT · CAUSAL INFERENCE

Marketing Attribution & Incrementality

Last-touch gives “direct” a quarter of all conversions; its true share is 1.9%. Six attribution models chase a known answer and none finds it. A geo holdout does, so the synthetic budget plan is calibrated on that. Separately, real GA4 data in BigQuery exposes $54,525 of duplicate or invalid purchase-event revenue and a checkout tagging-order defect.

Python · SQL · BigQuery · GA4 · Causal inference

RECOMMENDER SYSTEMS

Customer Recommendation Engine

The two-stage ranker lost to plain collaborative filtering, 81.2% to 84.9% recall@10, so the simple model ships. A proposed, pre-registered randomized pilot would measure commercial lift; no online lift has been established.

scikit-learn · FastAPI · Experimentation · Streamlit

PEOPLE ANALYTICS · RESPONSIBLE AI

HR Attrition Analytics

A flight-risk model at ROC-AUC 0.738 with zero protected attributes. The live app never shows one person’s score, only group proposals with an owner and a rollback trigger.

T-SQL · Streamlit · Responsible AI

DATA SCIENCE · PRICING · OPTIMIZATION

Corridor Decision Intelligence

Which of 17,059 toll-road customers should get which of nine offers? Uplift models feed a proven-optimal plan worth 75% of the perfect-knowledge ceiling, against 7% for propensity targeting.

Python · DuckDB · Causal ML · Mixed-integer optimization

HEALTH SYSTEM · DECISION SUPPORT

Health System Decision Support

On an average day, patients who no longer need acute care fill 56.9 hospital beds. Transitional care is worth funding with conditions, and the analysis names what is still missing before it can start.

Python · Power BI · SPC · Health economics

CLINICAL DATA · FHIR

Clinical Evidence Console + FHIR Warehouse

49 defects planted in a trial database, 49 found, 0 missed. The reconciliation that proved it also exposed four protocol deviations the checks had let through.

Python · HL7 FHIR R4 · SQL Server / T-SQL · CDISC / SDTM

CRM DEVELOPMENT · HUBSPOT · SALESFORCE

HubSpot CRM Platform

One codebase stands up four businesses’ CRMs in HubSpot developer test accounts and loads 2,977 records by source key; a rerun plans zero writes. The same model compiles to Salesforce, with 25 passing Apex tests.

HubSpot · React / TypeScript · Node.js · Python

WEB ANALYTICS · METRIC GOVERNANCE

Portfolio Intelligence Platform

Private live visits, active attention and approximate countries, with complete-day comparisons and measurement diagnostics. The separate 90-day synthetic dbt workbench models ordered journeys and censored retention; an independent Python oracle checks all 568 sessions.

GoatCounter · JavaScript · dbt Core · DuckDB · Event contracts

…and the profile that ties it together Where to start, what each project is actually proving, and the losses I keep on purpose. github.com/KushPatel29 ↗

EXPERIENCE

Two jobs, one habit: make the numbers tie out

Four-plus years of paid work in operational and financial reporting. This is where every “paid role” tick in Role fit comes from.

—  · 2 yrs 7 mos

Two Rivers Specialty Meats

Data Analyst — Operations, Logistics & Enterprise Reporting

PERMANENT FULL-TIME · NORTH VANCOUVER, BC · ON-SITE

SALES OPS · WMS · LOGISTICS · VENDOR · PRODUCT · AP/AR · GL/P&L · PLATFORM

I was the only analyst across a perishable-goods supply chain, so “my domain” meant whatever number the business needed to defend that week — from a rep's attainment to a lot recall to the month-end close.

  • Power BI
  • DAX
  • T-SQL
  • PySpark
  • Microsoft Fabric
  • ADF
  • Synapse
  • SSIS/SSRS
  • Python

Built governed Power BI reporting across sales, inventory and finance; owned Fabric / ADF / Synapse pipelines and reconciliation controls. Internal estimates: recurring discrepancies down ~45%, reporting errors down ~30%.

Responsibilities and examples

SALES OPS & REP PERFORMANCE

  • Built the sales operations reporting layer — pipeline to invoice — with governed quota, attainment and product-mix logic, so monthly variance reviews argued about causes instead of whose extract was right.
  • Built rep and territory scorecards normalised for account mix and territory potential: attainment, coverage, win rate and margin per rep, with definitions locked in the model so they couldn't be re-cut mid-quarter.

CUSTOMER, PRODUCT & VENDOR

  • Delivered customer analytics for a churn-sensitive book of trade accounts — cohort retention, order-frequency decay, RFM segmentation and margin by customer — which surfaced quiet attrition long before the rep noticed.
  • Ran SKU and assortment analysis on velocity, contribution margin and cannibalisation, which fed real decisions about which products kept their slot.
  • Built vendor scorecards on fill rate, lead-time variance, price adherence and quality claims, and translated them into landed-cost impact so procurement negotiated with numbers instead of impressions.

WMS, INVENTORY & LOGISTICS

  • Built WMS reporting for warehouse operations — cycle-count accuracy, bin utilisation and pick/pack throughput — reconciling what the system claimed against what was actually on the shelf.
  • Developed FEFO and expiry-risk analytics plus lot traceability for perishable inventory, designed so a recall question could be answered in minutes rather than a day of spreadsheets.
  • Decomposed OTIF by lane, carrier and failure reason alongside freight cost per case and dock-to-stock timing, separating late trucks from over-promised delivery dates.

FINANCE — GL/P&L, AP & AR

  • Sat with Sales, Finance and Supply Chain until we agreed on single definitions for P&L/GL and operations KPIs — OTIF, inventory turns, days on hand — then built the Power BI star schemas and DAX that made those definitions the only ones available.
  • Built AP and AR reporting on aging, DPO/DSO, invoice-match exceptions and credit exposure, which gave Finance a working view of cash instead of a month-old snapshot.
  • Moved staffing decisions off gut feel with labour cost per case, overtime exposure and schedule-vs-actual variance — fed by a Synerion time-and-attendance API integration into the analytics warehouse, with punch-to-payroll reconciled so billed hours matched worked hours.
  • Automated the reconciliation controls we used to run by hand: recurring discrepancies down ~45%, reporting errors down ~30%.

DATA ENGINEERING & GOVERNANCE

  • Built Bronze→Silver→Gold pipelines in Fabric / ADF / Synapse with SQL and PySpark while keeping the legacy SSIS/SSRS estate alive — the migration repo is that experience, minus the 6am pages.
  • Owned the semantic layer: star-schema models, incremental refresh, and DAX measures reviewed like code rather than accumulated like sediment.
  • Implemented RLS/RBAC and column masking so cost, margin and people data only reached the people entitled to it, and documented it well enough to survive an audit.

—  · 1 yr 8 mos

Shivam Investments

Financial Analyst — Data & Reporting

PERMANENT FULL-TIME · VADODARA, INDIA · HYBRID

GL/P&L · AP/AR · RECONCILIATION · AUTOMATION

Where the reconciliation habit started: close cycles tight enough that a manual mistake showed up as a real number in front of real people.

  • SQL
  • Python
  • Power BI
  • Excel

Reconciled GL/P&L and AP/AR reporting, then automated recurring analysis with Python, SQL and Power BI. Internal estimate: reporting effort down ~40%.

Responsibilities and examples

CLOSE & CONTROLS

  • Reconciled GL/P&L across sources every month and chased variances to source — the discipline the reconciliation repo later turned into a tested engine.
  • Worked AP and AR aging and exception reporting, tightening the follow-up loop on the accounts that were actually at risk.

AUTOMATION

  • Replaced recurring manual analysis with Python + SQL feeding Power BI, cutting the effort around ~40% and freeing the month for questions worth asking.
  • Standardised the recurring reporting pack so each cycle started from the previous one's logic instead of a fresh workbook.

A note on the percentages above: the ~45%, ~30% and ~40% improvements are internal estimates drawn from company reporting at the time. Unlike the figures in the projects section, they aren't reproducible from a public repo, and I'd treat them as directional rather than audited.

HOW I WORK

My favourite results are the ones where I lost.

Anyone can show you the model that won. I'd rather show you the one I killed and the boring baseline that beat it, because choosing what not to ship is most of this job.

84.9% > 81.2%

The ranker lost

Two-stage retrieval with a gradient-boosted ranker, beaten by plain collaborative filtering on a warm-customer basket holdout; the ranker uses customer-disjoint label training. The fixed benchmark is checked in CI.

18.5% < 19.6%

The forecaster lost

A gradient-boosted multi-step forecaster lost to a moving average on WAPE. The moving average ships; the challenger's defeat is written into the README rather than quietly deleted.

p = 0.0999

The fairness screen still needs review

Synthetic snapshot 2026-06-30: Non-binary: 17 of 85 high-risk flags, versus 149 of 1,125 in the Male reference group (ratio 1.510; Fisher p = 0.0999). A non-significant result does not establish the absence of bias. Unresolved disparities remain visible for monitoring and human review. Audit counts and limitations ↗

HOW A NUMBER GETS ONTO A DASHBOARD

STEP 01

Agree the grain

Before a single measure, the business and I settle what one row means. Most reporting disputes are definition disputes wearing a costume.

STEP 02

Contract the source

Schema contracts at the boundary, so upstream drift fails loudly at ingestion instead of silently in a Gold table.

STEP 03

Model it once

Star schema, one semantic layer, measures reviewed like code — so there's exactly one place a KPI can be wrong, and one place to fix it.

STEP 04

Test the claim

Every headline number gets a test: control totals, ceilings, negative cases. If a claim stops being true, CI goes red.

STEP 05

Ship it auditable

The number arrives with its lineage, its SQL and its access rules attached, so anyone can check my work without asking me.

Beat the baseline or don't ship

Every model is measured against the dumbest thing that could work. If the moving average wins, the moving average ships.

Governance before dashboards

RLS, masking and k-anonymity go in before the first visual, because retrofitting access control is how sensitive data leaks into a screenshot.

Prove the failure path

It isn't enough that the happy path works. I break the data on purpose in CI and prove the guard catches it.

AI-assisted, never unexamined

I build with AI coding assistants, the way most teams now do. The questions, the metric definitions, the tests a result must pass and the findings are mine, and I’ll walk you through any project, or rebuild one of its queries live, in an interview.

Every repo has a short section on what I deliberately didn't build: no vector database where a SQL join was the right answer, no deep learning on 38 SKUs, no cloud architecture I couldn't defend in a budget meeting. Restraint is harder to demo than complexity, so I write it down.

SKILLS

What I’ve used for real, and where

No self-rated stars. Each group separates what I used in a paid role from what I’ve only used in public projects or coursework, where you can open it and judge for yourself.

BI & reporting

In paid roles

  • Power BI
  • DAX
  • Power Query / M
  • Star-schema design
  • Semantic models
  • Incremental refresh
  • Row-level security
  • SSRS & paginated reports
  • Excel

In public projects

  • Tableau
  • Power Pivot & CUBEVALUE
  • Excel dynamic arrays & LAMBDA
  • What-if data tables
  • Budget cycle & three-statement models
  • Object-level security
  • PBIP / TMDL in Git
  • Streamlit
  • Plotly

SQL & data modelling

In paid roles

  • SQL
  • T-SQL
  • Window functions & CTEs
  • Kimball dimensional modelling
  • Conformed dimensions
  • SCD Type 1/2
  • SQL Server

In public projects

  • dbt Core
  • MetricFlow
  • Databricks SQL warehouse
  • DuckDB
  • SQLite
  • Snowflake (dbt, Streams/Tasks, Snowpark)
  • AWS Athena, S3, Glue Data Catalog (project run)

Data engineering

In paid roles

  • Microsoft Fabric
  • Azure Data Factory
  • Azure Synapse Analytics
  • PySpark
  • Medallion (Bronze→Silver→Gold)
  • SSIS
  • REST API integration
  • ERP / WMS / POS extraction
  • Cutover validation

In public projects

  • Delta Lake
  • Airflow (nightly scheduler in CI)
  • Kafka / Redpanda streaming
  • Terraform
  • Kubernetes (in CI)
  • Docker
  • GitHub Actions CI
  • FastAPI

Python, statistics & ML

In paid roles

  • Python
  • pandas
  • Demand forecasting
  • Reporting automation

In public projects & coursework

  • scikit-learn
  • XGBoost
  • Rolling-origin backtests
  • Anomaly detection
  • Survival analysis
  • Causal inference & geo tests
  • Recommender systems
  • LLM text-to-SQL
  • MLflow

Data quality & governance

In paid roles

  • Reconciliation & control totals
  • Automated data-quality tests
  • Anomaly thresholds & alerting
  • RBAC & column masking
  • KPI definition governance

In public projects

  • Schema contracts
  • Quarantine & replay
  • Metric catalogues
  • Injected-failure tests
  • k-anonymity
  • Fairness testing
  • KYC risk rating & beneficial ownership

Business analysis & delivery

In paid roles

  • Stakeholder alignment
  • Requirements & acceptance criteria
  • Metric definitions
  • Self-service rollout

In public projects

  • Process mapping
  • Requirements traceability
  • UAT planning
  • Business cases & options
  • RACI & RAID
  • Jira (backlog via REST API)
  • Change & adoption plans
  • GIS data QA
  • SharePoint & Power Automate design

Airflow runs under its own scheduler nightly in CI; Kubernetes runs on a throwaway CI cluster. AWS, Snowflake, Databricks, BigQuery, Jira and Confluence evidence comes from personal free or trial accounts. These demonstrate project execution, not employer production ownership.

EDUCATION & CREDENTIALS

Education and credentials

MASTER'S DEGREE

GPA3.76

MPS, Analytics — Applied Machine Intelligence

Northeastern University · Vancouver, BC

—

The degree is where the AI/ML half of this portfolio comes from — and where I learned to distrust a model that hasn't been tested against a boring baseline. My capstone is what Ask Your Data above grew out of — the governed SQL layer between the question and the answer came later, on my own time.

  • Machine Learning
  • Deep Learning
  • NLP / LLMs
  • Time-Series Forecasting
  • Statistical Inference
  • Data Mining
  • Cloud Data Platforms

BACHELOR'S

B.Eng., Computer Science

Gujarat Technological University

—

Engineering fundamentals — which is why the analytics work ends up in a repo with tests instead of a workbook on a shared drive.

AWARD

First prize — wildfire-prediction hackathon

Team 1904 Coders, 2024: a Power BI dashboard over Canada’s national fire records, three models compared on area burned, and a weather-sensor prototype on Python, Django and PostgreSQL. It is now the live Canada Wildfire Risk forecast — and the winning model has been re-scored out of time, where its R² falls from 0.351 to 0.201.

Microsoft DP-600 (Fabric Analytics Engineer)

Preparing for the exam · not yet certified

Lakehouse and semantic-model work in Fabric, which is the platform most of my recent pipelines and control-tower reporting run on.

Google Data Analytics Professional Certificate ↗

GOOGLE · OCT 2023 · XZRHJQKA8B3M

The full eight-course track plus the capstone case study — the end-to-end habit of ask, prepare, process, analyse, share, act.

SQL for Data Science ↗

UC DAVIS · JAN 2025 · 02MQDX1MTDNZ

Window functions, CTEs and query profiling — the SQL that the HR and GL repos are actually written in.

Python for Data Science, AI & Development

IBM · NOV 2023

Python, pandas and data preparation — the layer every pipeline and model in this portfolio sits on.

Databricks Fundamentals

DATABRICKS · ACCREDITATION

Lakehouse architecture and the Databricks platform — the same medallion pattern the control-tower and migration repos implement in Fabric.

Data Visualization & Storytelling Basics

NORTHEASTERN · APR 2023

Power BI and the part that matters more than the chart type: making a number land with the person who has to act on it.

Introduction to Analytics

NORTHEASTERN · DEC 2022

The foundation course from the first term of the master's.

DELIVERY DOCUMENTS

The documents around the code

For business-analyst, lead and stakeholder-facing roles: the charters, process maps, UAT plans, business cases and decision memos behind the projects above. Each one opens on GitHub.

Scope: these are portfolio scenarios on synthetic data. They show how I frame, document and test a delivery. They don’t claim a client engagement, municipal employment, an approved capital plan or production Microsoft 365 administration.

REPORTING DOMAINS

Reporting across finance, sales and operations

Twelve domains, and the same discipline under all of them: one definition per metric, written down, tested, and labelled with its basis — so the meeting argues about the business instead of about whose number is right. Each tile is a question I've actually been handed, and the model I built so nobody had to ask twice. Each tile links to a related implementation; its case study states the scope.

Explore 12 reporting domains
01

Sales Operations & Rep Performance

“Why did we miss the number — and who's actually performing?”

Pipeline-to-invoice reporting with governed quota, attainment and mix logic, so the variance conversation starts from an agreed baseline instead of three competing extracts — and rep scorecards normalised for territory potential and account mix, with the definitions locked so nobody can re-cut them mid-quarter.

02

Customer Analytics

“Which customers are quietly leaving?”

Cohort retention, RFM segmentation, order-frequency decay and margin-by-customer — with retention and churn reported as rates rather than counts, revenue-weighted alongside logo, and net revenue retention decomposed into new, expansion, contraction and churned. Plus the recommender that proves a simple model can beat a clever one.

03

Product & Assortment

“Which SKUs earn their shelf space?”

SKU-level velocity, annual consumption value, ABC-XYZ policy, ageing, excess and dead-stock analysis—separating products that earn working capital from products that merely occupy it.

04

Vendor Performance

“Which suppliers are costing us more than they invoice?”

Vendor scorecards on fill rate, lead-time variance, price adherence and quality claims — landed-cost impact quantified rather than argued.

05

Supply Chain Planning

“How much should we be holding, and where?”

Seven forecast methods compete in rolling-origin backtests before the selected signal drives safety stock, reorder points and EOQ. Inventory position includes inbound and allocated demand, and network surplus is screened before another purchase is recommended.

06

Warehouse & Logistics

“Does the system match the shelf — and did it arrive on time?”

Cycle-count record and value accuracy, an adjustment-to-shrinkage bridge, economically screened transfers and supplier delivery/fill/quality evidence—plus governed FEFO and lot-traceability patterns from production work.

07

AP & AR

“What do we owe, and what will we actually collect?”

Aging, DPO/DSO, invoice-match exceptions and credit exposure — receivable turnover on an average balance, an aging book that reconciles to the receivable it ages, and payables overdue as a share of total. On the AR side, an NRV model that prices open receivables at what they'll realistically bank.

08

GL / P&L Reconciliation

“Why doesn't the subledger tie to the GL?”

Automated ERP-vs-subledger controls classify discrepancies and trace every dollar to source. A governed certification layer then assigns each account-period a risk tier, accountable review route and explicit certify, review or block state, with evidence fingerprints and re-verification.

09

Data Engineering & BI Platform

“Can we trust the pipeline this all sits on?”

Bronze→Silver→Gold pipelines in Fabric/ADF/Synapse and dbt, star-schema models, semantic layers, RLS/OLS, and CI that breaks the build when the data drifts.

10

AI & Machine Learning

“Is there a model here, or just a metric?”

Forecasting, churn and flight-risk classification, recommenders, survival analysis and grounded LLM/text-to-SQL work — held to honest holdouts, fairness gates and a baseline it has to beat before it ships.

11

HR & People Analytics

“What is labour actually costing us, and who is about to leave?”

Time-and-attendance integration and punch-to-payroll reconciliation, labour cost per unit produced, overtime exposure and schedule-vs-actual variance — plus headcount, turnover and flight-risk modelling held to a fairness gate before anyone sees a name.

12

Marketing & Growth Analytics

“Which channel actually earned that sale?”

Funnel and cohort reporting, LTV against acquisition cost, and multi-touch attribution graded against a known answer rather than argued about — with a geo holdout and a power calculation for the questions attribution genuinely cannot settle.

QUICK ANSWERS

What recruiters usually ask first

Can you work in Canada?
Yes. I’m legally eligible to work in Canada.
Where are you based? Will you relocate?
Vancouver, BC. I’m open to remote roles and to relocating anywhere in Canada.
When can you start?
Immediately.
Which roles are you looking for?
Data analyst, BI / Power BI developer and analytics engineer roles, and supply-chain, finance or business-analysis roles where reporting and data quality are the core of the job. Role fit ties each one to evidence.
Is the project data real?
Four projects include real public records: B.C. local-government finance, finance models on company filings, wildfire forecasts, and GA4 ecommerce analysis in BigQuery. Transaction Monitoring also evaluates name screening against a public sanctions list; its customers and transactions are synthetic. Other projects use seeded synthetic data. Results from my paid roles come from employer systems, so they’re described rather than published.
Did you use AI to build these?
Yes. I use AI coding assistants to write and refactor code faster. The questions, metric definitions, tests and findings are mine, and I’m happy to walk through any project in depth or rebuild one of its queries live.
Can I see the code?
Yes. All 21 projects are public on GitHub ↗, each publishes reproducible validation evidence, and 16 also run as live demos.
Portrait of Kush Patel

Hiring for a data, BI or analytics role? Let’s talk.

Send me the job description, or the report your team argues about, and I’ll walk you through how I’d find the cause, fix it at the source and keep it fixed.

Open to remote and relocation across Canada · Legally eligible to work in Canada · Available immediately

MPS ANALYTICS (APPLIED ML), NORTHEASTERN — GPA 3.76 FIRST PRIZE, 2024 WILDFIRE HACKATHON