I work out why the number moved.

Product analyst at Amber, a student housing marketplace operating in 250+ cities worldwide. Funnel drops, A/B test results, and the tooling that makes those answers repeatable.

250+
cities in Amber’s markets
2M+
beds on the platform
3 yrs
at Amber, across three roles
2×
company Rewards & Recognition
Selected work
01Traffic quality

Separating automated traffic from real demand

Problem
A traffic segment's year-on-year growth looked strong while its conversion rate moved the other way. Two signals that should agree, disagreeing.
Approach
Automated traffic tends to leave a consistent signature across geography, device and session behaviour. I built a session-level classifier on those signals and recomputed the affected metrics on a clean denominator.
Outcome
Once automated sessions were separated out, both signals reconciled — the growth and the conversion decline were largely the same artefact. Traffic quality is now part of the standard metric definition rather than an afterthought.
02Experimentation

A pricing change that helped one step and nothing after it

Problem
The available evidence for a pricing change was a cross-sectional comparison between properties that happened to price differently. That design cannot separate price from everything else about a property.
Approach
Some properties had actually changed price tier, and the change logs recorded when. That gave me a real before and after. I ran difference-in-differences inside those properties against ones that never switched, over matched windows, and checked the pre-trends lined up.
Outcome
A clear, statistically significant gain at the payment step and no detectable effect on bookings. The friction was real, but students who balked simply converted another way. That moved the decision off a revenue case and onto a friction one.
Why the comparison had to change
Cross-sectional ✗ Property A lower price Property B higher price vs Different city, size, quality and operator. The price effect is tangled up with all of it. Within-property ✓ Before higher price After lower price Same property, same city, same operator. Only the price changed, so it is its own control. Effects are then differenced against properties that never changed price over the same window, after checking the two groups moved in parallel beforehand.
The first comparison is the one people reach for. It is also the one that cannot tell you whether price caused anything.
03Pricing

Where conversion breaks against the local market

Problem
Partners needed a defensible reference point for pricing against their own local market rather than a judgement call. The open question was what a property priced well above its local level actually gives up in conversion.
Approach
Took what students actually paid per city as the reference rather than listed prices, bucketed every property by how far it sat from its own city's median, and measured the share of properties in each band that booked at all.
Outcome
An inverted-U with a sharp edge: conversion holds a little either side of the local market level, then falls away quickly above it. That curve is now the reference point for price reviews.
04Tooling

Automating the funnel post-mortem

Problem
Funnel investigations were manual, slow and hard to reproduce. Supply movements, term dates and attribution changes all look like product regressions until you rule them out, and ruling them out took about a week.
Approach
I put the method into code. Python and SQL over the warehouse, with a supply check that has to pass before a cause is attributed to UX, plus academic calendar seasonality, traffic-quality exclusion, funnel decomposition, and ranked hypotheses at the end.
Outcome
A normal investigation went from about a week to under an hour. The bigger win is that it gives the same answer whoever runs it.
The order the checks run in
Runs in order. Any gate can stop the investigation and attribute the cause. Supply is stock there? Seasonality term dates? Bot exclusion even human? Decomposition which segment? Hypotheses ranked Nothing is attributed to product or UX until the first three gates pass. Most “product regressions” stop at one of them.
Encoding the order is most of the value. It is what stops the investigation reaching a different conclusion depending on who runs it.
05Data quality

A duplicate problem that flipped conclusions

Problem
A student who returns creates several lead records, so any lead-level metric read without deduplication can turn one person into a trend.
Approach
I used a structural filter that is known at the point the record is created, so there is no outcome leakage, then re-ran the affected metrics on both bases to quantify the difference.
Outcome
A large share of records were duplicates, and they moved the two key quantities in opposite directions — so deduplication is not a uniform correction, it can change a conclusion outright. The filter is now the canonical basis for lead-level reporting.
Also built
  • Cohort segmentation of the lead base. Ten populations with very different win rates, now used to decide how each one gets contacted instead of treating them all the same.
  • Property recommendation engine. Candidate generation and ranking for agents, the chatbot and students, scored with nDCG@10 against a popularity baseline.
  • The reporting layer. Tableau, Metabase and Looker Studio dashboards used daily by product, supply and ops, plus 100+ hours a month of manual reporting moved onto scheduled pipelines.
How I work

Before anyone acts on a number I want to know it is real. Duplicate rows, attribution changes and automated traffic can each produce a confident and completely wrong answer, so I check the denominator before the insight.

The other habit is not stopping at the first metric that moves. A lift at one step of the funnel is a hypothesis. The question is whether it survives to bookings, and often it does not. Saying so is part of the job.

Stack
Methods
Funnel and root-cause analysis, A/B testing, causal inference (difference-in-differences), cohort analysis, segmentation, significance testing
Languages
SQL (Amazon Redshift, PostgreSQL), Python (pandas, NumPy, statsmodels), JavaScript, Google Apps Script
Data & BI
Google Analytics 4, BigQuery, Tableau, Metabase, Looker Studio, Amplitude, PostHog
Path
  • Product Analyst Jan 2026 — Present
  • MIS Analyst Jan 2025 — Jan 2026
  • Catalog Management Executive Jan 2023 — Jan 2025
  • B.Tech, Information Technology · Siliguri Institute of Technology 2019 — 2023