Portfolio index — NikitaBoyarkin (47 authored repos)

Single resume/landing-ready index. Every number below is extracted from the repo's own README; nothing is inferred. Where a README states no quantified result, the cell says no quantified result.


1. Flagship — case studies (24)

Ordered by strength of evidence, strongest first.

repo showcase metric stack result evidence link
volta-banking +5.72pp KYC conversion, p<0.0001 Python · pandas · scipy · sklearn · shap €656K/yr at 44× ROI on €15K dev-cost; M1 +11.8pp, M3 +9.2pp, +€227K/yr strong https://github.com/NikitaBoyarkin/volta-banking
case-ab +5.72pp KYC conversion, Z=5.82, p<0.0001 (95% CI +3.78…+7.66) Python · pandas · scipy · sklearn Ship-gate passed (no SRM, lift ≥ MDE); +€656K/yr at 44× ROI strong https://github.com/NikitaBoyarkin/case-ab
case-causal-kyc DiD ATT M3 +9.09pp (95% CI +6.21…+11.96), p<0.001 Python · scipy · statsmodels N=84,000; pre-trends flat, placebo ≈ 0, max abs SMD 0.157; 3/3 CIs cover injected effect strong https://github.com/NikitaBoyarkin/case-causal-kyc
case-retention M1 +11.8pp, M3 +9.2pp step-change Python · pandas · scipy +€227K/yr incremental LTV; Premium LTV 4.3× Free (M6 60% vs 31%) strong https://github.com/NikitaBoyarkin/case-retention
case-dormant-winback human +5.34pp, light-touch +2.77pp (3-arm RCT) Python · scipy · statsmodels Light-touch ROI 2.54 (30–60d) and 1.26 (60–90d); human ROI 0.40 → kill as mass channel strong https://github.com/NikitaBoyarkin/case-dormant-winback
case-anchor-cac LTV/CAC 1.76× at SOM (225K) Python · pandas · scipy ≥3 gate holds only to ~70K; 17.0-month payback; marginal SOM user costs €80 strong https://github.com/NikitaBoyarkin/case-anchor-cac
case-assisted-cac 45+ blended LTV/CAC 0.66 (gate ≥3) Python · scipy · statsmodels Assisted CAC €120 → 50-month payback; Welch anchor−45+ = €43.99, p≈2e-13 strong https://github.com/NikitaBoyarkin/case-assisted-cac
case-premium-offers +3.33pp 45+, +4.16pp families, +3.79pp travelers (all Holm-significant) Python · scipy · statsmodels Segment offers lift gap segments; anchor barely moves (+0.86pp, ns) strong https://github.com/NikitaBoyarkin/case-premium-offers
case-kyc-45 35–44 +11.0pp (p<0.001); 45+ +1.4pp (ns) Python · scipy · statsmodels 45+ gap persists 53.2% vs 61.2% (chi² p<0.001); referral converts 45+ best (64.1%) strong https://github.com/NikitaBoyarkin/case-kyc-45
case-segmentation Power = 12% of users → 41% of revenue Python · pandas · sklearn K=4 chosen from data (elbow + silhouette); migration scenarios +€310K/yr strong https://github.com/NikitaBoyarkin/case-segmentation
case-referral anchor 29.6% vs 45+ 4.8% and families 8.6% Python · scipy · statsmodels chi² p<0.001, z=43.3; gap opens at accept (78% vs 26% vs 40%) strong https://github.com/NikitaBoyarkin/case-referral
case-premium-upsell Premium Status 41.2%, anchor 17.3%, 45+ 1.8% Python · scipy · sklearn z=34, p<0.001; gap persists within every cohort (Power 26% vs Dormant 2%) strong https://github.com/NikitaBoyarkin/case-premium-upsell
case-funnel KYC 56.6% step conversion (2,781 of 4,917) Python · pandas · scipy 10,000 installs → 1,269 first tx (12.7%); registration loses 2,682 (73.2%) strong https://github.com/NikitaBoyarkin/case-funnel
case-unit-economics −€0.45 net margin per €100 FX transaction Python · pandas · scipy Break-even needs FX cost 1.00% → 0.55%; loss grows with volume medium https://github.com/NikitaBoyarkin/case-unit-economics
case-fx-sourcing 0.55% gate reachable at €332M/mo (122× today) Python · scipy ~0.20pp discount per order of magnitude; best provider Interbank Prime 0.745% medium https://github.com/NikitaBoyarkin/case-fx-sourcing
case-attribution Shapley: referral €263.7K vs display €125.0K Python · pandas · scipy Referral leads all 4 models (€218–264K); heuristics overstate the last click medium https://github.com/NikitaBoyarkin/case-attribution
case-support-churn churn 37.1% (0 tickets) → 81.1% (3+) Python · pandas · scipy 3+ tickets churn 2.2× the base; CSAT bands barely discriminate (52–55%) medium https://github.com/NikitaBoyarkin/case-support-churn
case-clv Gamma-Gamma: Power €5,166 vs Dormant €27.7 Python · scipy · statsmodels Order Power > Growth > Casual > Dormant robust across 3 methods; predictive 2.9–5.9× historical medium https://github.com/NikitaBoyarkin/case-clv
case-jtbd Dormant 39.4% (45+) vs 15.1% (families), chi² p<0.001 Python · scipy JTBD segments ≠ behavioral cohorts; dormancy driven by UX, not "no job" medium https://github.com/NikitaBoyarkin/case-jtbd
case-anomalies Isolation Forest best F1 50.4% (401 detections) Python · sklearn · scipy Z-score precision 80.5% at recall 24.7%; all scored against ground truth weak https://github.com/NikitaBoyarkin/case-anomalies
case-churn Random Forest +0.03 ROC-AUC over logistic regression Python · sklearn · shap Top churn driver is device-error rate 23.7%, above balance and activity weak https://github.com/NikitaBoyarkin/case-churn
case-nps NPS near zero: peak +12.9, bottom −1.8 Python · pandas · scipy Drivers: app_quality +30.3, product +29.4; fees −59.4, onboarding −23.6 weak https://github.com/NikitaBoyarkin/case-nps
case-spend bills 25.8% + travel 20.2% ≈ half the turnover Python · pandas · scipy Groceries most frequent (18,238 tx, €45.8 avg); travel is thin-margin weak https://github.com/NikitaBoyarkin/case-spend
case-rfm Champions = 23.9% of the base Python · pandas · sklearn At Risk 11.5% + Lost 23.2% form a large reactivation reserve weak https://github.com/NikitaBoyarkin/case-rfm

2. Tooling / infra (17)

repo showcase metric stack result evidence link
ab_test CUPED removes 17.7% of variance; delta-method CTR +0.51pp, p<0.0001 Python · statsmodels · scipy 18 calibration modules, each re-run as a test; SRM p=0.8376; BH-corrected, no segment differs strong https://github.com/NikitaBoyarkin/ab_test
serp-rank-lab revenue-optimum earns +38% per search (1,196.6 vs 868.9) Python · DuckDB · Streamlit · scipy IPW-weighted logs +19.3% revenue; position 1 = 47.3% of revenue; mSPRT FPR 0.25% vs 14.5% peeking strong https://github.com/NikitaBoyarkin/serp-rank-lab
sql-analytics-case-study funnel drops 54% at cart→checkout SQL · DuckDB · dbt D1→D30 retention 21%→5%; repeat rate 3.5%; real case (UCI, 1.07M lines) 72.4% repeat strong https://github.com/NikitaBoyarkin/sql-analytics-case-study
causal-uplift CUPED cuts standard error ~26% (×0.742) Python · LightGBM 10k → ~5.5k users/arm for same power; "new" respond ~8× vs "returning" (0.1108 vs 0.0132) medium https://github.com/NikitaBoyarkin/causal-uplift
churn-prediction lift@top-decile 5.44× (recall 0.544), AUC 0.916 Python · LightGBM · sklearn Leakage-free chronological split; at-risk subgroup lift 1.75×, AUC 0.901 medium https://github.com/NikitaBoyarkin/churn-prediction
crm-experiment-lab GCG cumulative uplift +0.9968 purchases/user by day 27 [+0.9433, +1.0502] Python · statsmodels · scipy Net +50.5 per 1,000 treated (uplift +212.8 − unsub 162.3); 0 daily-cap violations medium https://github.com/NikitaBoyarkin/crm-experiment-lab
rag-eval-harness recall@5 1.00, MRR 1.00, faithfulness 1.00 Python · scikit-learn · TF-IDF correctness 0.37, precision@5 0.20 on 20 labeled questions; runs with zero API keys medium https://github.com/NikitaBoyarkin/rag-eval-harness
rfm-analysis-of-bank-clients Gini 0.324; top 20% hold 38.2% of revenue Python · pandas · Streamlit 1,983 clients / 9,492 tx; Champions 6.4% of clients → 12.1% of revenue medium https://github.com/NikitaBoyarkin/rfm-analysis-of-bank-clients
NikitaBoyarkin (profile) +5.72pp KYC conversion, €656K/yr; A/B p=0.0034 on 8,000 users Markdown · SVG · CI Aggregates 22 projects / 4 tracks / 23 Volta case studies; every evidence link HTTP-checked in CI medium https://github.com/NikitaBoyarkin/NikitaBoyarkin
tableau_cohort_analysis no quantified result Python · pandas · Tableau Hyper API Enables cohort retention/LTV export (CSV + .hyper); 34 tests, 6-column contract weak https://github.com/NikitaBoyarkin/tableau_cohort_analysis
airflow no quantified result Airflow 3 · Postgres · Google Sheets · uv Enables idempotent Postgres→Sheets reports; 2 DAGs, 64 tests, DQ validation + alerts weak https://github.com/NikitaBoyarkin/airflow
python no quantified result Python · pandas · matplotlib Enables reusable load→clean→EDA→viz pipeline; 34 tests, ≥80% coverage weak https://github.com/NikitaBoyarkin/python
ml no quantified result Python · scikit-learn Enables leakage-free ColumnTransformer preprocessing; 21 tests weak https://github.com/NikitaBoyarkin/ml
browser-mini-games no quantified result Astro · SVG · PostHog · Playwright Enables 10 playable self-contained SVG games; 9 PostHog events, Playwright smoke tests weak https://github.com/NikitaBoyarkin/browser-mini-games
digital_garden no quantified result Quartz v4 · TypeScript Publishes an "EQ in IT" digital garden (wikilink graph, GitHub Pages) weak https://github.com/NikitaBoyarkin/digital_garden
scrolly-english-speaking no quantified result Astro 6 · MDX · D3 v7 Publishes a scrollytelling spoken-English guide (GitHub Pages) weak https://github.com/NikitaBoyarkin/scrolly-english-speaking
NikitaBoyarkin.github.io no quantified result Astro 7 · TypeScript Publishes a bilingual RU/EN portfolio: 17 case studies, 23 Volta sub-parts, 24 notes weak https://github.com/NikitaBoyarkin/NikitaBoyarkin.github.io

3. Learning / legacy (6)

repo showcase metric stack result evidence link
my_cv no quantified result — Single-page CV (roadmap.sh project), README + LICENSE only weak https://github.com/NikitaBoyarkin/my_cv
telegram_bot_public no quantified result — Public placeholder for telegram_bot; README only weak https://github.com/NikitaBoyarkin/telegram_bot_public
NLTK no quantified result Python · NLTK Legacy NLP learning scripts/notebooks, no test suite weak https://github.com/NikitaBoyarkin/NLTK
Python_algorithms no quantified result Python Legacy algorithm-practice repo, no tests weak https://github.com/NikitaBoyarkin/Python_algorithms
Python_data_structures no quantified result Python Legacy data-structures practice repo, no tests weak https://github.com/NikitaBoyarkin/Python_data_structures
TensorFlow-and-Keras no quantified result Jupyter Notebook · TF/Keras Legacy single-notebook repo, no tests weak https://github.com/NikitaBoyarkin/TensorFlow-and-Keras

4. How to present


5. Gaps in the evidence

14 of 47 repos state no quantified result. What single number would fix each:

repo gap the one number that would make it stronger
tableau_cohort_analysis methodology + test count only; no business metric LTV at a fixed horizon per cohort (e.g. "LTV@k=3 = €X; Premium cohort holds €Y of 12-month value")
airflow pipeline described, no measured outcome "Manual report 45 min → 0; 30-day success rate 9x.x%; p95 duration Z s" from dag_metrics
python coverage is not an outcome the analysis result from segmentation_report.md (e.g. "top quartile = X% of spend")
ml only split shape (8,5)/(2,5) and 21 tests a model metric on a named dataset (Customer_Churn accuracy / AUC, or Housing RMSE)
browser-mini-games game and event counts a real engagement figure (sessions played, play-through, or a Lighthouse performance score)
digital_garden content site, no metric reach: monthly visitors, or number of published notes/graph nodes
scrolly-english-speaking "live page" only a measured outcome: Lighthouse score, or learners/visits
NikitaBoyarkin.github.io 17/23/24 are counts, not results a site metric: Lighthouse score, monthly traffic, or PostHog visitors
NikitaBoyarkin (profile) numbers are inherited from the flagship add "N public repos / N case studies" and a traffic figure to make the roll-up self-standing
my_cv README + LICENSE only nothing worth adding — fold into the portfolio site and drop the repo
telegram_bot_public placeholder, README only ship the real bot and report users or commands/day, or drop
NLTK legacy scripts, no tests number of exercises/notebooks, or a small task accuracy — otherwise drop
Python_algorithms legacy practice number of solved problems + tests — otherwise drop
Python_data_structures legacy practice number of implemented structures + tests — otherwise drop
TensorFlow-and-Keras single notebook a training metric (accuracy/loss) on a named dataset — otherwise drop

Note on volta-banking vs its 23 case-* repos: the umbrella README and the sub-study READMEs state the same headline (+5.72pp, €656K/yr). On a resume this should be presented as one flagship with sub-studies, not as 24 separate results, to avoid the appearance of double-counting.

Note on synthetic data: every Volta / CRM / churn / SERP / RAG figure comes from a seeded synthetic generator (stated in each README). The only real-data result in the set is sql-analytics-case-study case 26 (UCI Online Retail II). Present synthetic results as reproducible methods demonstrations, and cite case 26 when a real-data proof point is needed.