From published research on platform pricing (HEC Montréal / GERAD) to deployed industrial pricing engines — I build the models, the code, and the data infrastructure underneath them, and I save margin by replaying real quotes through pricing simulations.
Most companies set prices by gut feel, and gut feel leaks margin. I close that gap.
Today I am a Data Scientist at AirWise Sales, a custom HVAC manufacturer in Hamilton, Ontario, working from Toronto. In my first year I built the company's end-to-end pricing engine, its quote simulations, a production scheduling optimizer, and the master-data foundation for an ERP migration.
The pricing theory came from my PhD in Decision Sciences at HEC Montréal and GERAD (2021–2026), with Prof. Georges Zaccour, on optimal menu pricing and freemium monetization for digital platforms, with two papers under review. The operations-research roots go back further: an M.Sc. in Industrial Engineering at the University of Tehran, healthcare reference pricing through game theory and stochastic optimization, and a B.Sc. at Alzahra University, after ranking in the top 0.02% of Iran's national entrance exam.
One thread runs through all of it: I turn pricing theory into tools that ship.
Numbers I can defend in any room — measured, simulated where stated, and verified where claimed.
Labour, landing, and indirect costs missed by legacy quoting — exposed by replaying historical quotes through a rebuilt cost model, validated to 0.1% at the BOM level against a real purchase order.
ERP cost data → Python/SQL → modular quoting tool covering fans, coils, cooling, gas trains, sheet metal, and labour — validated against a 28-unit corpus of historical quotes.
Job-shop MILP + CP-SAT model solving 100-job instances; identified fabrication as the plant's binding bottleneck.
Recurring lookups, fan selections, and BOM builds automated across the quoting workflow — time savings measured task-by-task in the company work log.
Six systems built end-to-end — modeled, coded, validated, and put in front of the business.
Every quote meant hand-searching the ERP and scattered spreadsheets; with only engineering able to price some subsystems, sales could never quote a unit alone.
A pricing engine linking ERP cost data through a Python query library to an Excel tool pricing eight-plus subsystems, recommending fans by duty point, and flagging variances.
Over 480 hours a year recovered: sales now quotes any unit unaided, filters price in one click, and errors surface before the order.
The quoting process predated the current cost model, so no one could tell whether historical sell prices had ever covered full cost, leaving under-recovery invisible.
A Python harness drives the live Excel pricing tool, replaying a corpus of 13 archived quotes spanning 28 units against the current cost model.
It matched an archived purchase order's bill-of-materials total within 0.1%, then surfaced five-figure per-unit labour, landing, and indirect costs legacy quoting never loaded.
Scheduling the fabrication floor ran on experience and reaction, with no quantitative way to test capacity or sequencing before committing the floor to it.
A job-shop scheduling optimizer pairing a mixed-integer program with a CP-SAT constraint model, in a clean three-module Python design: parameters, model, driver.
Scales to 100-job instances against roughly 70 for a classic solver, pinpointing fabrication as the binding bottleneck for what-if capacity planning.
For over a year the same physical part lived under three to five names: purchasing ordered duplicates, engineering guessed between aliases, and BOMs were re-entered when names failed to match. Three prior attempts had failed.
An engineering-readable part-ID grammar across electrical, mechanical, coils, gas trains, copper fittings, dampers, and filters — refined through structured review and rolled out non-disruptively via the legacy ERP description field.
1,920 fan and damper aliases collapsed into 1,382 collision-free part numbers — 538 fewer to maintain and quote, with about 60% of noisy records purged for one trusted part master.
A cloud-ERP go-live risked inheriting dirty legacy data — stale suppliers, duplicate parts, and orphan records — contaminating the new system from day one.
A migration bridge that generates ERP load templates from legacy tables for parts, BOMs, suppliers, and contacts, with purchase-order-activity filters and cleaning that catches identifier traps.
More than 400 stale records excluded, leaving a curated master of 368 suppliers, 469 contacts, and 793 supplier-part links loaded with zero orphans.
Electrical bills-of-materials were assembled by hand from a master parts file with no engineering ownership, and errors only surfaced on the shop floor.
An engineering-owned template with 84 predefined component slots, per-slot manufacturer dropdowns drawn from 18 normalized catalog sheets, and a 40-field unit-spec sheet that auto-filters valid parts.
Per-unit specification fell from over an hour to roughly five minutes — about a 90% reduction — with errors caught at the template, not the floor.
Theory first, then deployment — each role built on the last.
Platform pricing, revenue management, and customer behavior in operations.
When should a platform offer subscriptions alongside pay-per-use? An optimization framework with two-dimensional customer heterogeneity reveals threshold conditions for transactional, hybrid, and subscription-only structures — and shows menu pricing is second-best when discount and quality are unconstrained.
A unified Markov model of user dynamics across non-user, free, and premium states — jointly optimizing acquisition, retention, advertising, and subscription pricing, and showing how CRM investment strengthens pricing power.
Extends menu pricing to two-sided environments with network externalities — dynamic policies with cross-side interactions and optimal subsidization across user groups.
The full stack of a pricing scientist: theory, solvers, code, and industrial data.