Theme
Finance was chosen because the target role asks for data science in a financial environment, not only generic modelling.
A compact portfolio project that simulates how a data scientist can turn financial data into risk prioritisation, business insights and a simple predictive model.
This is the type of output a business user would need first: what requires attention, where the exposure is concentrated and why the alert exists.
The topic was selected because it connects technical PySpark work with a realistic financial-services decision: prioritising entities for review based on risk and exposure. Each step mirrors a common workflow in analytics teams.
Finance was chosen because the target role asks for data science in a financial environment, not only generic modelling.
Real teams monitor evolution over time: margin compression, rising leverage and worsening coverage matter more than one isolated number.
Risk only becomes business-relevant when combined with financial impact: where is the money at risk?
The score translates several financial signals into a simple 0-100 view that a non-technical stakeholder can prioritise.
The workflow mirrors production analytics: scalable transformations first, business cuts and summaries with SQL afterwards.
The predictive layer adds prioritisation while the rule-based drivers keep the analysis understandable and auditable.
Spark SQL aggregates the latest quarter by sector so risk is not viewed entity by entity only, but also as business exposure concentration.
The watchlist combines exposure, an explainable financial stress score, model probability and plain-language risk drivers.
| Entity | Exposure | Stress score | ML probability | Tier | Main drivers |
|---|---|---|---|---|---|
| Meridian Bank 10Banking · 2025Q4 · rating B | €86.9m | 72.7/100 | 65.2% | High | High leverage, Weak interest coverage, Low liquidity, Margin deterioration |
| Horizon AM 08Asset Management · 2025Q4 · rating B | €24.5m | 70.7/100 | 46.0% | High | High leverage, Low liquidity, Negative revenue growth, Margin deterioration |
| EuroMerchant 12Payments · 2025Q4 · rating B | €98.5m | 64.9/100 | 67.0% | High | High leverage, Low liquidity, Negative revenue growth, Margin deterioration |
| CapitalFlex 09Lending · 2025Q4 · rating B | €181.6m | 61.8/100 | 41.7% | High | High leverage, Low liquidity, Negative revenue growth |
| Atlas Payments 16Payments · 2025Q4 · rating BBB | €388.7m | 55.9/100 | 41.5% | High | High leverage, Low liquidity, Negative revenue growth |
| SME Advance 10Lending · 2025Q4 · rating B | €305.4m | 55.7/100 | 37.4% | High | High leverage, Low liquidity, Negative revenue growth, Margin deterioration |
| Horizon Factoring 17Lending · 2025Q4 · rating BBB | €292.8m | 47.2/100 | 22.3% | Medium | High leverage, Weak interest coverage, Negative revenue growth |
| EuroMerchant 02Payments · 2025Q4 · rating BB | €267.4m | 46.6/100 | 24.7% | Medium | Low liquidity, Negative revenue growth |
| Atlas Payments 06Payments · 2025Q4 · rating A | €396.6m | 45.4/100 | 25.3% | Medium | Weak interest coverage, Negative revenue growth |
| InstantPay 15Payments · 2025Q4 · rating A | €68.2m | 42.8/100 | 2.48% | Medium | Stable financial profile |
| Horizon AM 03Asset Management · 2025Q4 · rating B | €408.5m | 41.6/100 | 49.8% | Medium | Low liquidity, Negative revenue growth, Margin deterioration |
| SME Advance 20Lending · 2025Q4 · rating BBB | €29.1m | 38.7/100 | 43.4% | Medium | Negative revenue growth, Margin deterioration |
| InstantPay 05Payments · 2025Q4 · rating B | €49.9m | 38.4/100 | 51.6% | Medium | High leverage, Weak interest coverage, Negative revenue growth, Margin deterioration |
| Atlas Payments 01Payments · 2025Q4 · rating A | €71.0m | 37.9/100 | 35.6% | Medium | Low liquidity, Negative revenue growth |
| Digital Wallet Iberia 13Payments · 2025Q4 · rating BB | €415.7m | 33.0/100 | 34.4% | Medium | High leverage, Negative revenue growth, Margin deterioration |
| IberCredit 04Banking · 2025Q4 · rating BBB | €271.3m | 33.0/100 | 0.95% | Medium | Stable financial profile |
| Castilla Insurance 07Insurance · 2025Q4 · rating A | €363.5m | 32.0/100 | 0.81% | Medium | Stable financial profile |
| Castilla Bank 18Banking · 2025Q4 · rating BB | €27.1m | 31.0/100 | 40.3% | Medium | Negative revenue growth, Margin deterioration |
| NovaBank 07Banking · 2025Q4 · rating BB | €93.2m | 30.2/100 | 21.5% | Medium | Negative revenue growth |
| Legacy Brokerage 02Asset Management · 2025Q4 · rating BBB | €159.2m | 30.0/100 | 1.40% | Medium | Stable financial profile |
| Banco Norte 16Banking · 2025Q4 · rating B | €353.2m | 29.4/100 | 16.6% | Medium | Negative revenue growth |
| PayGrid 09Payments · 2025Q4 · rating AA | €288.2m | 28.2/100 | 0.40% | Medium | Stable financial profile |
| IberCredit 09Banking · 2025Q4 · rating BBB | €356.6m | 25.0/100 | 0.81% | Medium | Stable financial profile |
| Atlas Lending 03Lending · 2025Q4 · rating AA | €303.9m | 24.4/100 | 1.57% | Low | Stable financial profile |
| Horizon AM 13Asset Management · 2025Q4 · rating B | €339.6m | 23.8/100 | 0.30% | Low | Stable financial profile |
This adds another business lens: whether lower ratings also concentrate higher exposure and model-estimated distress probability.
| Rating | Entities | Exposure | Avg. stress score | Avg. ML probability |
|---|---|---|---|---|
| B | 13 | €2,478.6m | 39.7/100 | 33.3% |
| A | 19 | €3,917.8m | 16.7/100 | 4.00% |
| BB | 22 | €4,839.4m | 14.2/100 | 7.40% |
| BBB | 36 | €8,835.4m | 14.1/100 | 3.70% |
| AA | 9 | €2,011.4m | 13.7/100 | 0.70% |
| AAA | 1 | €125.9m | 13.1/100 | 1.20% |
The project keeps the stack simple, but the flow is realistic: clean data, create financial features, detect trend deterioration, aggregate impact, explain alerts and validate a predictive baseline.
Columnar PySpark transformations prepare scalable features.
Ratios link the data to leverage, liquidity and debt-service capacity.
Exposure at risk helps prioritise what matters economically.
Drivers explain why an entity appears in the watchlist.
Train/test metrics avoid presenting the model as a black box.