VSPJ CONSULTING

Explore the insights

Practical perspectives on programming and data science.

SAS tip: a clean log is a starting point

Automated log scanning helps, but silent analytical errors need separate checks.

From a Shiny prototype to a trusted review tool

A dashboard is only useful when users understand the data, the calculations and the decisions it supports.

Real-world data: define the cohort before the model

Index dates, eligibility and follow-up can change the answer before a statistical model is fitted.

What I would examine before an AI model goes live

A practical technical review looks beyond a headline accuracy score to the evidence supporting a particular use.

The quiet ways data leakage inflates model performance

Split by the unit that matters, and fit preprocessing only where it belongs.

Reproducible R is more than set.seed()

Capture the environment, inputs and execution order—not just the random-number seed.

SAS tip: make BY-group assumptions explicit

FIRST. and LAST. are useful only when your grouping and ordering reflect the intended derivation.

SAS tip: check row counts before trusting a join

Unexpected duplication is often a key-definition problem rather than a syntax problem.

SAS tip: keep partial dates and imputation separate

A technically valid date can still encode an undocumented assumption.

AI-assisted programming needs an evidence trail

The valuable question is not how quickly a model writes code. It is how confidently a team can review the result.

A CONVERSATION IS A GOOD START

What are you working on?

Tell me about the challenge. Let’s define a practical way forward.

Discuss your project