Repeat Order Prediction
I am developing a workflow to rank customers by repeat-order propensity. Each score must be traceable to the agreements and dated features used to produce it. Historical evaluation also needs to exclude information recorded after the prediction cutoff.
Overview
I am developing a workflow to rank customers by repeat-order propensity. Each score must be traceable to the agreements and dated features used to produce it. Historical evaluation also needs to exclude information recorded after the prediction cutoff.
Context
A customer may have several agreements, changing statuses, or incomplete identifiers. Campaign actions and data snapshots may also fall after the intended prediction date. I need to resolve those records consistently before comparing models.
My Role
- Designed agreement-first joins with controlled customer-level fallback.
- Preserved join provenance, ambiguity flags, and agreement-detail audits.
- Defined representative-agreement selection for customer-level features.
- Separated operational ranking from leakage-safe historical evaluation.
- Compared baseline and tree-based models and reviewed feature influence.
- Retained debtor-level rankings together with the underlying agreement detail.
Approach
For each historical target month, I use the latest eligible prior snapshot. I select one representative agreement for agreement-level features so fields from different contracts do not get mixed together. Campaign actions after the cutoff are excluded from the features.
Architecture
Dated agreement snapshots + campaign outcomes
-> agreement-first identity resolution
-> representative-agreement selection
-> customer-month feature table
-> temporal leakage audit
-> train / validation / out-of-time evaluation
-> propensity score and ranked output
-> agreement-level explanation detailValidation and Evidence
The project contains dummy datasets and output examples, join-coverage reports, feature-coverage checks, temporal audit outputs, and separate operational and historical workflows. The future public demo will regenerate all inputs independently.
Results
The current work provides a ranking design with agreement details, join paths, and dated features available for review. Model evaluation is still in development; this page does not claim a public predictive-performance result.
Limitations
- An operational snapshot created after a campaign cutoff cannot be treated as historical model evidence.
- Customer-level fallback must reject ambiguous identities.
- Propensity ranking supports prioritization; it does not prove incremental campaign impact.
Technology Stack
Python, pandas, Polars, scikit-learn, LightGBM, Parquet, Jupyter, Excel.
Publication Note
The public version will use synthetic customers, agreements, features, and outcomes. It will not reproduce the employer's population rules, feature definitions, data sources, rankings, or model artifacts.
Checks and current status
Model assessment
Historical data and identity checks are documented; model evaluation is in development.
The work separates operational rankings from historical evaluation. Public performance claims would need a dated holdout, baseline comparisons, and campaign-impact validation.
Temporal controls
DocumentedOperational ranking is separated from historical evaluation.Join evidence
AuditableCoverage, fallback path, and ambiguity outputs are retained.Public model metric
Not availableNo current operational snapshot is presented as historical evidence.Limitations: A useful ranking does not by itself prove incremental campaign impact or production readiness.