B.Tech, Data Science · Class of 2028

RohanDedhia.

I build data systems that answer hard questions: 734K Wall Street forecasts audited for bias, LLM spend forecast 14 days out, findings shipped as live dashboards.

Available for internships & contract workMumbai, India

Experience

03 roles
01Nov 2025 – Present

Tekkloom

AI Solutions Developer

Mumbai, India

  • Co-founded an AI automation startup and scaled it from 0 to 5 clients.
  • Delivered 3+ custom websites and data organization solutions for small businesses.
  • Built an automated lead analytics pipeline integrating CRM, spreadsheet and marketing data.
  • Scoped AI automation solutions across 5+ client engagements.
Clients
0→5
Sites delivered
3+
Engagements scoped
5+
02May – Oct 2025

BeProEx LLC

Full Stack Engineer Intern

Newport Beach, CA · Remote

  • Built 30+ reusable Next.js components, cutting development time by ~30%.
  • Integrated Sanity.io CMS, reducing manual content updates by 50%.
  • Shipped production features in collaboration with designers and stakeholders.
  • Supported backend work with PostgreSQL and SQL.
Components built
30+
Faster dev speed
30%
Fewer manual updates
50%
03Jun – Jul 2025

RAWW

Resqink Association for Wildlife Welfare

AI & Data Science Intern

Mumbai, India

  • Built a multilingual chatbot for wildlife rescue coordination.
  • Analyzed 300+ rescue records into a structured database.
  • Built an interactive GIS rescue map of 150+ cases across the MMR, with species filters and hotspot clustering.
Rescue records
300+
Cases mapped
150+

Selected work

01 / 03

Sell-Side Analyst Price Target Auditor

An audit of 734K sell-side analyst price targets across 23 firms and 24 years, testing whether Wall Street forecasts actually land.

734,000Forecast records ingestedEvaluable outcomes
Optimism bias
+33pp
Firms covered
23
Stack04
PythonPandasRefinitiv I/B/E/SStreamlit
Problem

Every bank publishes 12-month price targets. Almost nobody goes back to check whether they came true.

Sell-side analysts issue a target for each stock they cover, and those numbers get quoted, traded on and forgotten. The question was simple: graded against what the stock actually did a year later, how accurate are these forecasts, and which firms and analysts have earned credibility?

Approach

Grade every target against its realized 12-month return, then aggregate by firm, year, market regime and individual analyst.

Pulled the IBES Price Target Detail file through WRDS (2.2M raw records, 2001 to 2024) and filtered to USD, 12-month-horizon targets on US stocks. Downloaded adjusted closes from Yahoo Finance and aligned each target to the price on its announcement date and at T+365 with pandas merge_asof, with a 5-day tolerance so targets issued on weekends and holidays still match a trading day.

Each forecast gets three scores: implied upside, realized return and the gap between them. From those come bias (does the analyst systematically overshoot), mean absolute error (how far off, regardless of direction) and directional accuracy (did they at least call up or down). Bias and MAE are reported separately on purpose: an analyst can be perfectly calibrated on average and still wrong on every call.

Two decisions shaped the rankings: a mapping table that resolves IBES broker codes to 23 named firms, and minimum sample thresholds before an analyst can appear on a leaderboard, so the top of the table is not a handful of lucky calls.

Role

Solo project, end to end.

Data access and licensing, the cleaning pipeline, the grading methodology, the analysis and the deployed Streamlit dashboard. The interpretation of the results is mine as well.

Result

Analysts overshoot by 33 percentage points on average, and every one of the 23 firms is biased upward. But the bias has almost disappeared.

Across 734,331 graded targets, the average forecast implied a return 33.2pp higher than what happened; mean absolute error was 54.9pp, and analysts called the direction right 64.6% of the time. Not one firm was conservative on average.

The more useful finding is the trend. Bias fell from 118.5pp in 2001 to 1.1pp in 2024. 2007 was the worst year, with directional accuracy at 32.5%, below a coin flip, as analysts stayed unanimously bullish into the financial crisis. 2020 was the only year with negative bias: targets were cut hard just before the V-shaped recovery.

Independent research houses (Wolfe Research at 17.6pp, Evercore ISI at 19.5pp) were far less biased than the bulge-bracket banks (Goldman Sachs 28.3pp, Morgan Stanley 33.5pp). In practice: a published target is more useful as a signal of direction than as a number, and how much to trust it depends on who issued it and when.

Constraints

The graded universe is survivor-skewed, and the largest firm bucket is too coarse.

Yahoo Finance returned usable price history for 771 of the 13,972 tickers in the raw file, which drops most delisted and acquired companies. The graded set therefore tilts toward stocks that survived, so true forecast error is probably higher than reported. With CRSP access I would re-run it on the full universe.

About half of all forecasts fall into a Boutique/Other bucket because the broker mapping covers only the 23 largest names; splitting that bucket is the next step. Raw WRDS data is licensed, so the repository ships aggregated outputs only, and the analysis is at one horizon (12 months) rather than three.

Also built

03 projects
02

LLM Cost & Quality Monitor

An observability platform for LLM workloads, tracking what they cost, how fast they respond and whether the output holds up.

Metrics tracked
12+
Spend forecast horizon
14d
Problem

Teams shipping on GPT and Claude APIs usually cannot answer four basic questions: what costs the most, when it spiked, whether quality is slipping, and what next month's bill will be.

Hosted tools like Langfuse and Helicone exist. I wanted to understand what such a system actually has to do by building one: instrumentation, storage, analytics and a dashboard, with nothing hidden behind a vendor.

Approach

One wrapper class around the API call, and everything downstream reads from the logs it writes.

LLMWrapper replaces the direct SDK call. Each request records model, endpoint, prompt and completion tokens, cost (from a per-model price table, where output tokens cost roughly five times input), latency, status and a prompt hash into SQLite. One line changes in the calling application.

On top of the logs: an Isolation Forest over cost, token volume and latency flags unusual calls without needing labelled examples (contamination set at 5%); Holt-Winters exponential smoothing with weekly seasonality projects daily spend 14 days ahead; and an LLM-as-judge step scores a 10% sample of responses from 1 to 10 with a cheap model, so quality is tracked at a small fraction of the cost of the traffic itself.

Decisions worth naming: P95 latency rather than the mean, because averages hide the slow tail users actually feel; SQLite rather than Postgres until there are concurrent writers; and a mock mode so the whole pipeline runs, and can be demoed, without API credits.

Role

Solo: design, instrumentation, analytics and the deployed dashboard.

Result

A working observability layer: 12+ metrics, anomaly alerts, a 14-day spend forecast and per-model cost against quality, live on Streamlit.

The dashboard answers the four questions from one table of logs: spend by model and endpoint, a P95 latency chart, an alert log of flagged calls, a quality trend and the forecast. The view with the most practical value is cost against quality by model: it makes visible when a cheaper model would do the same job.

Constraints

Validated on simulated traffic, not a production workload.

I had no API budget, so the logs are generated to mirror the real Anthropic response structure, and the quality scorer runs in mock mode with per-model score distributions; the real judge path is implemented but unmeasured at scale. Before trusting the forecast I would want a month of real traffic and a held-out error measurement.

SQLite is a deliberate ceiling: the first concurrent writer means moving to Postgres.

Stack05
PythonIsolation ForestHolt-WintersTime-Series ForecastingStreamlit
03

Detecting Alzheimer's Disease Using ML and Ensemble Methods

A hybrid CNN, LSTM and Random Forest framework predicting Alzheimer's from clinical data alone, with no imaging required.

Gain over baseline
~5%
Problem

Can Alzheimer's be flagged early from routine clinical data, without a brain scan?

Imaging is expensive and not always available at the point where early detection matters most. The question was how far cognitive scores, brain-volume measures and demographics from the OASIS dataset can go on their own.

Approach

A hybrid framework: a CNN, an LSTM and a Random Forest each learn the data differently, then vote.

Each model was trained on the same non-imaging features (MMSE scores, brain volumes, demographics) and combined through an ensemble voting scheme, so no single model's failure mode decides the prediction.

Result

About 5% better than the single-model baseline.

The voting design targets stability as much as accuracy: a diagnostic aid that gives different answers for similar patients is not usable, whatever its headline number.

Stack05
CNNLSTMRandom ForestEnsemble LearningOASIS Dataset

Skills

25 across 6 groups
Languages04
PythonSQLC++JavaScript
ML & Data07
PandasNumPyScikit-learnSciPyTime-Series ForecastingAnomaly DetectionEnsemble Learning
Visualization06
StreamlitPlotlyTableauPower BIMatplotlibSeaborn
Databases03
PostgreSQLMySQLSQLite
Frameworks02
React.jsNext.js
Tools03
GitJupyterVS Code

Education

SVKM's NMIMS

Mukesh Patel School of Technology Management & Engineering

B.Tech, Data Science

CGPA
3.8/4
Expected
May 2028
Coursework05
StatisticsProbabilityMachine LearningDBMSData Structures & Algorithms