Data Science · Machine Learning Research

Vaibhav
Vennam

I build data systems, machine-learning models, and numerical methods, then open them up so people can see how they think.

Rare eventsNumerical methodsCausal analysisAdversarial AI

TOP SIGNALS

Michigan State University

GPA: 4.0

CAREER TRAJECTORY

Professional Experience

Three roles spanning systems engineering, decision science, and applied AI research.

PROJECTS

Selected Projects

Five investigations across rare events, numerical computing, optimization, language models, and climate intelligence.

01 / 05
Source code unavailable · confidential engagement

RILA Cap-Rate Modeling

A forecasting pipeline for understanding when annuity cap rates will change and how large the next change may be.

Instrument · Production modeling auditROC-AUC 0.91 · R² 0.95

Before the data

What is RILA?

A Registered Index-Linked Annuity is an insurance product whose return is tied to a market index, with limits that provide some protection against losses. Its cap rate helps determine how much of an index gain a customer can receive.

This project studied competitors' cap rates over time. The practical question was whether a rate would change next and, if it did, how large that change would be.

86,000observations
143features
1,530product segments

Data inspection

Inspecting the raw cap-rate history

Before changing anything, inspect several product segments side by side. Most contain plausible rates mixed with occasional placeholders. Segment 1464 shows the extreme case: every recorded rate is 9.99.

Segment (0 to 1530)
SEGMENTDATETERMADJ CAP RATE…140 MORE
412D+064.12…
412D+164.18…
412D+269.99…
412D+364.23…
412D+463.92…
412D+56-9.99…
412D+664.06…

Only the Rate column carries placeholders. This scene observes the issue without replacing any values.

86,000 rows, 143 columns, 1,530 pricing segments. Every segment is one product line tracked over time.

DATA PREPARATION

Preparing the cap-rate history

Step A: remove segments dominated by placeholders

Step A does not repair anything. It measures how much of each segment is placeholder, and removes the segments where that share is too high. The histogram shows why the threshold is set where it is.

0%50%100% placeholders

At 10% the cut is conservative: almost every segment already sits in the first bar, so the rule removes 104 clearly unreliable segments and keeps 93.2% of the data.

104segments deleted
93.2%rows remaining

Why 10% and not 50%? Because the data says so: the vast majority of segments are under 10% placeholder, so anything above that line is an outlier, not a normal series.

Feature engineering

Building features without letting the answer leak in

TARGET

Did the cap rate change today?

FEATURE

Days since last change

Counting days since the last change resets to zero on the very day a change happens, which gives the model information it should not have at prediction time. Shifting the counter back by one day removes that. On top of it, each segment and each category (carrier, state, product type, index, protection option, crediting type, term) gets a behavioral profile: how often it moves, how big its moves are, how wide its range is.

The repaired counter became the most important feature in the final model. Left open, it would have produced inflated scores with no real predictive value.

Modeling

Two models, because movement is rare

INPUT

1,143 segments, split 80/20 in time inside each segment

STAGE 1 · CATBOOST CLASSIFIER

Will the rate move tomorrow?

ROC-AUC 0.911 · PR-AUC 0.608 · recall 80% at a 0.20 threshold

NO · 98.1%

The rate is carried forward unchanged

YES · 1.9% → STAGE 2 REGRESSOR

By how much?

RMSE 0.039 against a do-nothing baseline of 0.124 · R² 0.68

Moves happen on roughly 1.9% of days, somewhere between one in fifteen and one in three hundred and sixty five depending on the product. The rare class is weighted about 51 times heavier so the classifier cannot win by always saying no.

Top signals for the classifier: days since the last change, how often that segment moves, and corporate bond yields and spreads. For the size of the move: yesterday's rate and the segment's largest historical move.

Historical validation

One-step accuracy without compounding drift

TEACHER FORCING · WHAT I USED

PREDICTION TIMELINEINPUT → MODELPredict t+1output: ŷ t+1independent errorSCORED HEREINPUT → MODELPredict t+2output: ŷ t+2independent errorSCORED HEREINPUT → MODELPredict t+3output: ŷ t+3independent errorSCORED HEREGROUND TRUTHactual t+1actual t+2

WHY TEACHER FORCING

In historical backtesting, the actual rate is known after each prediction. Feeding that confirmed value into the following step prevents one error from affecting the rest of the sequence.

In use, a predicted change can trigger a data check. The confirmed rate then becomes the input for the next day's prediction.

0.911ROC-AUC
80%Rare changes caught
0.95R²

SKILLS

Technical Skills

Methods, tools, and research areas across engineering, data science, and AI.

Demonstrated skills include the roles and projects where they were applied.

DemonstratedAdditional knowledge

Discipline 01

Programming & Engineering

7 skills

Demonstrated

Additional knowledge

Discipline 02

Machine Learning & Modeling

19 skills

Demonstrated

Additional knowledge

Discipline 03

Statistics & Causal Inference

7 skills

Demonstrated

Additional knowledge

Discipline 04

AI/GenAI

8 skills

Demonstrated

Additional knowledge

Discipline 05

Cloud & Data Infrastructure

10 skills

Demonstrated

Additional knowledge

Discipline 06

BI & Visualization

7 skills

Demonstrated

Additional knowledge

Discipline 07

Applied Math & Optimization

7 skills

Demonstrated

Discipline 08

Research & NLP

6 skills

Demonstrated

Discipline 09

Business & Analytical

4 skills

Demonstrated