Last updated: May 2026
Algorithmic pricing in fintech is the use of machine-learning models — most often gradient-boosted trees and contextual-bandit reinforcement learners — to set per-customer prices for loans, BNPL splits, FX spreads or insurance premia in milliseconds. It quietly powers Klarna, Upstart, Revolut, Mastercard interchange optimisation and most BNPL stacks in the EU. Under the EU AI Act (Regulation 2024/1689) loan and insurance pricing for retail clients is classified as high-risk AI from 2 August 2026, with documented obligations on data governance, explainability and human oversight (Annex III §5b). Three risks dominate: proxy discrimination (Bartlett et al. 2022 — 7.9 bps mortgage spread for Black/Latinx US borrowers even on algorithmic platforms), tacit algorithmic collusion (Calvano et al. AER 2020), and explainability gaps that fail GDPR Art. 22 post-Schufa (ECJ C-634/21).
What is algorithmic pricing in fintech?
Algorithmic pricing in fintech is the automated, model-driven setting of a price — APR on a loan, fee on a money transfer, spread on an FX trade, premium on an insurance policy — based on customer features, market state and (often) the firm’s expected reaction from the customer. Unlike algorithmic trading, which executes orders against a market, algorithmic pricing decides what price to quote a single customer in a single session.
Three architectures dominate production today:
| Approach | Typical use case | What it actually does |
|---|---|---|
| Supervised ML on historical data (XGBoost, LightGBM) | Loan APR, BNPL late-fee rate, mortgage spread | Predict expected loss / probability of default at every candidate price; pick the price that maximises risk-adjusted margin subject to a fairness constraint. |
| Contextual bandits (LinUCB, Thompson sampling) | Cross-sell offers, dynamic FX spread, insurance up-sell | Online learning — every quote is an arm pull; the model balances exploration (try price points) and exploitation (use the best known price for this context). |
| Deep RL with a market simulator | Market-maker spreads, high-frequency lending pools (DeFi) | Train an agent in a simulator that includes adverse-selection dynamics; transfer learned policy with safety constraints. |
The reason fintech tilted toward bandits and RL after ~2020 is structural: a credit scorecard estimates default risk, but pricing also depends on elasticity — how the customer’s accept probability responds to APR. Elasticity is unobservable until you quote a price and watch what happens, which is exactly what bandits are designed for. See our companion piece on price elasticity of demand for the underlying microeconomics.
What does a production pricing pipeline look like?
The architecture below is what you will find inside Klarna, Upstart, Revolut and most EU BNPL stacks in 2026 — five layers between a customer arriving at checkout and the price they see on screen. Each layer has a clear regulatory anchor under the EU AI Act and GDPR.
Two non-obvious points about this architecture. First, the risk model and the price selector are separate components in production, even though some textbooks treat them as one. The risk model is supervised on historical labelled defaults; the bandit is online and never sees defaults — only acceptances. Decoupling makes the supervised side auditable and the bandit safe to retrain weekly. Second, the fairness gate sits after the bandit, not before. A bandit can drift toward subgroups it has positive evidence for (selection bias) and a pre-bandit gate cannot catch that. Post-bandit demographic parity is the only check that actually binds the deployed policy.
How does a contextual bandit price a loan?
The textbook formulation: at time t a customer arrives with a context vector xt (income, debt-to-income, employment, behavioural features, channel, time of day). The platform picks an action at from a discrete grid of APRs (e.g. {7.9%, 8.9%, …, 22.9%}). It observes a binary reward rt ∈ {0, 1} — did the customer accept? It does not see counterfactuals: the rewards for the prices it didn’t quote remain unobserved.
LinUCB (Li, Chu, Langford & Schapire, WWW 2010) is the canonical baseline. For each price arm a, it maintains a Bayesian linear model of “expected reward given context” and quotes the price with the highest upper confidence bound. Minimal Python sketch:
import numpy as np
class LinUCBPricing:
"""
LinUCB for per-customer loan APR.
Each arm = candidate APR. Reward = 1 if accepted (and repaid net of expected loss),
0 otherwise. In production the reward is risk-adjusted margin, not raw acceptance.
"""
def __init__(self, prices, d, alpha=1.0, fairness_constraint=None):
# prices: list of candidate APRs (in percentage points)
# d: dimension of context vector x
# alpha: exploration parameter (sqrt of the desired confidence width)
# fairness_constraint: optional callable enforcing demographic parity, etc.
self.prices = prices
self.A = {p: np.eye(d) for p in prices} # Gram matrix per arm
self.b = {p: np.zeros(d) for p in prices} # response vector per arm
self.alpha = alpha
self.fc = fairness_constraint
def quote(self, x):
ucb = {}
for p in self.prices:
A_inv = np.linalg.inv(self.A[p])
theta = A_inv @ self.b[p]
ucb[p] = float(theta @ x + self.alpha * np.sqrt(x @ A_inv @ x))
if self.fc is not None:
ucb = self.fc(ucb, x) # zero-out arms violating policy
return max(ucb, key=ucb.get)
def update(self, x, price, reward):
# reward should already encode expected loss & funding cost
self.A[price] += np.outer(x, x)
self.b[price] += reward * x
Two production realities the textbook hides. First, the reward is never raw acceptance — it is risk-adjusted margin (price minus funding cost minus expected loss), so the bandit must be wired to the underwriting model. Second, fairness is not optional: the fairness_constraint hook is where you implement demographic parity, equalised odds, or whatever your DPIA committed to under EU AI Act Art. 10.
An XGBoost model trained on historical accept/reject data only sees prices the firm has previously quoted. If the firm always quoted 12% to thin-file applicants, the model never learns whether 9.9% would have been accepted at lower default risk. LinUCB explicitly explores — bounded by the confidence width — and recovers a more complete elasticity surface. Most production stacks use both: XGBoost for risk, bandit on top for price selection.
What does the EU AI Act require for fintech pricing?
Annex III §5b of Regulation (EU) 2024/1689 (the EU AI Act) classifies “AI systems intended to evaluate creditworthiness of natural persons or to establish their credit score” as high-risk. Article 6(2) extends the same classification to systems used for “risk assessment and pricing in life and health insurance.” Algorithmic loan pricing — where the model both scores risk and selects price — falls squarely inside both clauses.
Concretely, from 2 August 2026 a fintech operating an algorithmic pricing system for retail loans or in-scope insurance must:
- Maintain technical documentation (Art. 11). Model card, training-data statement, validation protocol, performance metrics by relevant subgroup. Auditors will look for this; “we use XGBoost” is not an answer.
- Pass data-governance tests (Art. 10). Training and test sets must be examined for “possible biases that are likely to affect health and safety of natural persons, have a negative impact on fundamental rights, or lead to discrimination prohibited under Union law.” Disparate-impact analysis becomes a regulatory artifact, not just a fairness paper.
- Implement human oversight (Art. 14). A natural person must be able to “fully understand the capacities and limitations of the high-risk AI system” and override its output. For pricing, this maps to a credit officer who can manually re-price — and a logging system that captures when they do.
- Provide transparency to users (Art. 13). The decision logic must be sufficiently transparent to enable “interpret a system’s output and use it appropriately.” In practice: SHAP reason codes per quote, retained for audit.
- Register the system (Art. 49) and run post-market monitoring (Art. 72). Drift, fairness regression, complaint trends — all on a periodic reporting cadence.
Fines under Art. 99 reach €15M or 3% of worldwide annual turnover for high-risk non-compliance, with €35M / 7% reserved for prohibited-practice violations.
What did the Schufa ruling change for AI pricing?
The ECJ judgment in OQ v Land Hessen (Case C-634/21, 7 December 2023) held that producing a credit score that “plays a determining role” in a lending decision is itself an automated individual decision under GDPR Article 22. The score producer, not just the lender, needs a legal basis, a meaningful explanation, and a human-review path.
For algorithmic pricing this is sharper than it looks. A bandit does not just score risk — it picks the price the customer sees. If the platform cannot describe, for a specific declined or expensive quote, which input features drove the price upward, it has not met the Art. 22 explanation test. SHAP attributions per quote, persisted with the model version and the bandit’s posterior, are the operating answer most EU fintechs adopted in 2024–2025. Klarna’s open IMY (Swedish DPA) investigation post-Schufa is the live test of whether real-time BNPL scoring meets that bar.
Where does proxy discrimination come from?
The empirical baseline: Bartlett, Morse, Stanton & Wallace (Journal of Financial Economics 2022) examined 7M US mortgage applications and found algorithmic lenders discriminate roughly 40% less than face-to-face lenders on acceptance, but Black and Latinx borrowers still pay 7.9 basis points more on equivalent loans through algorithmic channels. The cause is rarely an explicit race feature — it is a constellation of correlated features (ZIP code, device type, browser locale, merchant identity, social-graph proxies) that jointly recover protected-class information.
Hurlin, Pérignon & Saurin (HEC Paris 2022) demonstrate the formal version: “fairness through unawareness” fails because removing a protected feature from training does not remove the latent variable from the joint distribution. The model relearns it from proxies. The FinRegLab (2020) study of five US AI lenders found unexplained disparate impact in all five after removing protected features directly.
The practical implication for an algorithmic pricing system: a fairness audit must be run on outputs, not inputs. The DPIA committed to demographic parity at quote level, not training-time absence of features. This is also where the post-2024 EU framework diverges from the US ECOA-style rule book — see our breakdown in AI credit scoring.
Can pricing algorithms collude on their own?
Yes — and this is the most-discussed open problem in 2025–2026 competition policy. Calvano, Calzolari, Denicolò & Pastorello, “Artificial Intelligence, Algorithms, and Collusion” (American Economic Review, 2020), simulated independent Q-learning pricing agents and found they autonomously learn supra-competitive prices via tacit reward-punishment strategies, without any communication. The agents do not “agree” — they discover, through repeated interaction, that low-price strategies are punished by competitors and high-price equilibria are sustained.
The EU Commission’s 2024 policy paper on AI and competition flagged this as a category of harm not yet covered by Article 101 TFEU (which requires concerted practice). The FCA’s 2024 update to its competition strategy explicitly named “algorithmic tacit collusion” as a supervisory concern for retail FX, deposit pricing and consumer lending. In the US, the RealPage antitrust litigation (DoJ + multiple state AGs, ongoing 2024–2026) targets a different mechanism — a shared algorithm — but the regulatory direction of travel is the same: algorithmic pricing now sits inside competition supervision, not just consumer protection.
If your bandit converges to a high-price equilibrium that mirrors competitor pricing without an obvious cost-side explanation, that is now a discoverable artifact in a competition investigation. “Our model just learned that” is not a defence. Production teams in 2026 instrument exploration logs, competitor-price features and counterfactual price simulations precisely to be able to explain — to a regulator — why the model is at the price it is at.
How does this look in practice — Klarna, Upstart, Revolut, Allegro Pay?
- Klarna (Sweden, BNPL, ~150M users) — real-time scoring < 200ms per checkout. Public disclosures describe a transaction-graph feature pipeline; the IMY (Swedish DPA) opened a Schufa-driven Article 22 investigation in 2024 into whether Klarna’s risk-and-pricing engine meets the meaningful-explanation test. Case pending.
- Upstart (US, NASDAQ: UPST) — ~1,600 model features, AI-only underwriting at scale. The CFPB’s 2023 review found +27% approvals at equivalent default rate vs traditional models for thin-file applicants, and +43% for applicants under 25. Pricing is set off the same model with a margin overlay. CFPB has not yet found ECOA violations but maintains supervisory engagement.
- Revolut Bank (Lithuania EU licence) — Bank of Lithuania’s 2024 supervisory review required “enhanced explainability and human-in-the-loop controls” for ML credit decisioning, anticipating Art. 14. Public roadmap commits to SHAP reason codes per decision and a fairness-monitoring dashboard.
- Allegro Pay / PayPo / Twisto (Poland, BNPL) — analogues of Klarna with the same Article 22 / UODO exposure post-Schufa. UOKiK 2024 enforcement priorities flagged proxy-discrimination risk in short-term consumer loan pricing; first formal complaints under Art. 22 GDPR are being processed in 2024–2025.
What does a production fairness audit actually check?
Three layers, in order of regulator priority:
- Subgroup performance. AUC, calibration, expected-loss-by-quote split by protected subgroup (gender, age band, geography proxy). A 5+ pp gap in calibration across subgroups is an immediate blocker; it means the model assigns the same score to populations with different actual default rates.
- Pricing parity. Average APR delta across subgroups conditional on equivalent risk. Bartlett et al.’s 7.9 bps is a useful order-of-magnitude reference; production teams typically set internal alarm thresholds around 3–5 bps.
- Counterfactual stability. If you flip a single feature that should not matter (e.g. browser language from EN to PL with everything else fixed), how much does the quote move? A counterfactually-unstable model is a liability under EU AI Act Art. 13 transparency.
How do you A/B test a pricing model safely?
Standard A/B testing breaks for pricing for two reasons: (1) the treatment is the price itself, so a customer in cell B sees a different APR than a customer in cell A, which raises a fairness flag instantly; (2) the bandit is already exploring, so a naïve A/B test re-explores price points the bandit has converged away from. The 2026 production pattern is layered:
- Off-policy evaluation first. Before any live test, evaluate the candidate policy on historical bandit logs using inverse propensity scoring (IPS) or doubly-robust estimators. Dudík, Langford & Li (ICML 2011) is the standard reference; the practical implication is that the bandit must log its full action distribution per impression, not just the chosen arm. Without that, off-policy evaluation is impossible and you cannot promote a model without a live test.
- Interleaved deployment, not split traffic. Both policies score every customer; a coin flip per request decides which one acts. This keeps the marginal customer distribution identical across cells and isolates the policy effect from drift.
- Capped-risk shadow runs. The candidate policy runs in shadow (its quote is logged but the production policy’s quote is shown) for a defined horizon — typically 2–4 weeks — to confirm no fairness regression before any live exposure.
- Multi-armed-bandit on policies, not on prices. Once shadow is clean, the deployment itself becomes a meta-bandit: the production policy gets 90% of traffic, the candidate 10%, and traffic share grows or shrinks based on the cumulative reward gap. This is what Stripe’s Radar team described publicly in 2024 for non-pricing models, and it generalises directly to pricing.
What does a model card for an algorithmic pricing system contain?
Mitchell et al. (FAT* 2019) defined the model card; the EU AI Act Art. 11 made a structured equivalent mandatory for high-risk systems. For a fintech pricing model in 2026 the document is roughly 25–40 pages and covers, at minimum:
| Section | Required content | AI Act anchor |
|---|---|---|
| Intended use | Markets, products, customer segments, prohibited uses | Art. 11 §1(a) |
| Architecture | Risk model + bandit + fairness gate stack, training data lineage, feature list with sources | Art. 11 §1(b) |
| Performance | AUC, calibration, expected-loss MAE — sliced by all relevant subgroups (gender, age band, geography proxy) | Art. 15 — accuracy |
| Fairness | Demographic parity, equalised odds, counterfactual stability — measured at output (quote) level, not feature level | Art. 10 §2(f) |
| Explainability | SHAP example traces for accepted and declined quotes; interpretation guide for credit officers | Art. 13 — transparency |
| Human oversight | Override path, escalation criteria, audit-trail design | Art. 14 §1 |
| Risk assessment | Foreseeable misuse, drift detection, incident-response runbook | Art. 9 §2 |
| Post-market monitoring | KPIs, alarm thresholds, reporting cadence to the AI Office | Art. 72 |
The document is not a marketing artefact. EU notified bodies and national supervisors — KNF in Poland, BaFin in Germany, AMF in France — have indicated they will request the model card on supervisory inspection, and inconsistencies between the model card and live behaviour are a finding in their own right. Treat it as living documentation, regenerated on every model release.
How does dynamic FX pricing differ from loan pricing?
The mechanics are similar — a model setting a per-customer price in milliseconds — but the timescale and the regulatory exposure are different. A retail FX spread on Plus500 or Revolut FX is reset hundreds of times per second; a loan APR is set once per application. Three operational consequences follow:
- Adverse-selection dominates over elasticity. In FX, the marginal client placing a market order during an NFP print is more likely to be informed than the median client at 2 a.m. local. The pricing model must condition on time-of-day, calendar events and order-flow imbalance, not just the customer’s history.
- The fairness regime is different. EU AI Act Annex III does not list retail FX pricing as high-risk in the same way it lists credit scoring. The supervisory tooling for FX pricing is MiFID II best execution + ESMA market-conduct review, not the AI Act technical documentation regime. That gap is one of the live policy debates as the AI Act is reviewed in 2027.
- The collusion exposure is sharper. Multiple market makers can converge on similar spreads through independent learning of the same adverse-selection structure — exactly the Calvano et al. dynamic. The FCA’s 2024 strategy update flagged retail FX as a priority area for tacit-collusion supervision.
What datasets and features do production pricing teams actually use?
From public disclosures (Upstart 10-K, Klarna IPO prospectus 2024, Stripe Radar docs, Revolut Bank of Lithuania filings) and industry talks, a typical EU fintech pricing model trains on roughly 1,000–2,000 features grouped into seven families:
- Identity & KYC — verified attributes only; protected-class features are excluded by design but their proxies (ZIP, device locale) appear elsewhere and must be audited.
- Bureau / external scores — FICO/VantageScore (US), Schufa (DE), BIK (PL), Experian (UK). Post-Schufa these are inputs to a higher-level decision, not the decision itself.
- Transaction history — open-banking pulls (Plaid, TrueLayer, Tink) under PSD2/PSD3; cash-flow features show roughly +10% incremental approval lift in LendingClub’s 2024 disclosures.
- Behavioural / session — time-on-page, application speed, autofill ratio, mobile vs desktop. Predictive but contains protected-class proxy signal; teams routinely strip the most leak-prone features after fairness audit.
- Device & channel — fingerprint, IP geolocation, app version. High predictive value for fraud, low and risky for pricing.
- Graph features — counterparty graph (who has this customer transacted with?). Powerful but governance-heavy; raises GDPR concerns about third-party data processing.
- Macro context — EURIBOR, ECB deposit rate, FX spot. Sets the floor of the price grid in the bandit.
The non-obvious point: feature selection in pricing is now a regulatory exercise, not a pure modelling exercise. Every feature that survives into production must have a documented reason in the model card — “high SHAP importance” is not a sufficient reason if the feature is a ZIP-code-equivalent proxy.
Personal note — what an FX spread on Plus500 actually is
One concrete observation from two years of CFD trading: the bid/ask spread on gold on Plus500 is not a fixed cost — it widens visibly around US economic releases and ECB / Fed rate decisions. That is not magic; it is an algorithmic pricing system reacting to a sudden change in adverse-selection probability. When a CPI print is 5 minutes away, the marginal CFD client placing a market order is more likely to be informed than at 2 a.m. local time. The spread widens to compensate the market maker for that risk. It is the same machinery as a BNPL platform raising APR for a thin-file applicant whose accept-rate elasticity is high — the pricing is dynamic for the same reason: the firm’s expected loss conditional on accepting the trade is non-stationary. See also practical CFD trading for the trader-side picture.
Summary
Algorithmic pricing in fintech is now four things at once: a serious technical discipline (contextual bandits, RL with safety constraints), a high-risk AI system under EU law (Annex III §5b), a fairness-and-discrimination problem with a 7.9 bps empirical baseline (Bartlett et al. 2022), and an emerging competition issue (Calvano et al. 2020, RealPage litigation, FCA 2024). Teams shipping pricing in 2026 instrument all four — SHAP reason codes per quote, fairness audits at the output level, exploration logs for competition defence, and a credit officer who can override.
For wider context see AI credit scoring, ML fraud detection, price elasticity of demand and the EU AI Act explained.
Frequently asked questions
What is algorithmic pricing in fintech?
It is the use of machine-learning models — gradient-boosted trees, contextual bandits or deep reinforcement learners — to set per-customer prices for loans, BNPL splits, FX spreads and insurance premia in milliseconds. Unlike algorithmic trading, which executes orders against a market, algorithmic pricing decides what price to quote to a single customer in a single session.
Is algorithmic loan pricing high-risk under the EU AI Act?
Yes. Annex III §5b of Regulation (EU) 2024/1689 classifies AI systems for assessing creditworthiness or producing credit scores as high-risk; Art. 6(2) extends the same classification to life and health insurance pricing. From 2 August 2026 these systems must comply with Articles 9–15 (risk management, data governance, technical documentation, transparency, human oversight) and registration under Art. 49. Fines reach €15M or 3% of worldwide turnover.
Why are contextual bandits used instead of standard regression?
A regression model trained on historical accept/reject data only sees prices the firm has previously quoted. It cannot learn whether an unobserved price would have been accepted. Contextual bandits explicitly trade off exploration (try new prices) and exploitation (use the best known price for the context), recovering a more complete elasticity surface. Most production stacks layer a bandit on top of an XGBoost risk model.
Can AI pricing models collude without explicit agreement?
Yes — Calvano, Calzolari, Denicolò and Pastorello (American Economic Review 2020) showed that independent Q-learning pricing agents autonomously learn supra-competitive prices via tacit reward-punishment strategies, with no communication. The EU Commission, the UK FCA and the US DoJ (RealPage litigation) have all flagged algorithmic tacit collusion as a supervisory priority. Article 101 TFEU was drafted around concerted practice, so this is a live policy gap.
What did the Schufa ruling change for AI pricing?
ECJ Case C-634/21 (December 2023) held that producing a score that “plays a determining role” in a lending decision is itself an automated individual decision under GDPR Art. 22. The score producer — not just the lender — needs a legal basis, a meaningful explanation and a human-review path. For algorithmic pricing this means SHAP attributions per quote must be retained with the model version and bandit posterior, and a manual override must exist.
How big is the proxy discrimination problem in algorithmic lending?
Empirically substantial. Bartlett, Morse, Stanton and Wallace (Journal of Financial Economics 2022) found that algorithmic mortgage lenders discriminate ~40% less than face-to-face lenders on acceptance, but Black and Latinx borrowers still pay 7.9 basis points more on equivalent loans. FinRegLab’s 2020 study of five US AI lenders found unexplained disparate impact in all five even after directly removing protected features. Fairness must be audited at output level, not input level.
What does a production fairness audit check?
Three layers: (1) subgroup performance — AUC and calibration by protected subgroup, with a typical 3–5 bps internal alarm threshold; (2) pricing parity — average APR delta across subgroups conditional on equivalent risk; (3) counterfactual stability — how much the quote moves when a non-relevant feature (e.g. browser language) is flipped with all else fixed.
Are EU BNPL platforms exposed to algorithmic-pricing supervision?
Yes. Klarna’s open IMY (Swedish DPA) investigation post-Schufa is the live test of real-time BNPL scoring against GDPR Art. 22. In Poland UOKiK flagged proxy-discrimination risk in short-term consumer-loan pricing in 2024, and UODO is the competent authority for individual Art. 22 complaints against Allegro Pay, PayPo and Twisto. The EU Consumer Credit Directive 2023 brought BNPL fully inside the consumer-credit framework, completing the regulatory perimeter.
How do you A/B test a pricing model without a fairness violation?
Use interleaved deployment, not split traffic — both policies score every customer and a coin flip per request decides which one acts, keeping the marginal customer distribution identical across cells. Combine with off-policy evaluation on bandit logs (Dudík, Langford & Li, ICML 2011) and a 2–4 week shadow run before any live exposure. Promote via a meta-bandit on policies once the shadow window is clean.
What goes into a model card for a high-risk pricing system?
Under EU AI Act Art. 11, the model card is mandatory and typically 25–40 pages: intended use, architecture, performance (sliced by subgroup), fairness metrics at output level, SHAP explainability traces, human-oversight design, risk assessment with foreseeable misuse, and post-market monitoring KPIs. National supervisors (KNF, BaFin, AMF) will request it on inspection; inconsistencies with live behaviour are themselves a finding.
Bibliography & further reading (18 sources)
- Regulation (EU) 2024/1689 — EU AI Act. Annex III §5b (creditworthiness), Art. 6(2) (insurance pricing), Arts. 9–15, 49, 72, 99. eur-lex.europa.eu
- ECJ Case C-634/21 — OQ v Land Hessen (Schufa). 7 December 2023. curia.europa.eu
- GDPR Article 22 — Automated individual decision-making. Regulation (EU) 2016/679. gdpr-info.eu
- Bartlett, R., Morse, A., Stanton, R. & Wallace, N. (2022). Consumer-Lending Discrimination in the FinTech Era. Journal of Financial Economics, 143(1), 30–56.
- Calvano, E., Calzolari, G., Denicolò, V. & Pastorello, S. (2020). Artificial Intelligence, Algorithms, and Collusion. American Economic Review, 110(10), 3267–3297.
- Li, L., Chu, W., Langford, J. & Schapire, R. (2010). A Contextual-Bandit Approach to Personalized News Article Recommendation. WWW 2010. (LinUCB original paper.) arxiv.org/abs/1003.0146
- Dudík, M., Langford, J. & Li, L. (2011). Doubly Robust Policy Evaluation and Learning. ICML 2011. arxiv.org/abs/1103.4601
- Mitchell, M. et al. (2019). Model Cards for Model Reporting. FAT* 2019. arxiv.org/abs/1810.03993
- Hurlin, C., Pérignon, C. & Saurin, S. (2022). The Fairness of Credit Scoring Models. HEC Paris Research Paper.
- FinRegLab (2020). Machine Learning in Credit Underwriting: Empirical Findings from Five Lenders. finreglab.org
- Lundberg, S. M. & Lee, S.-I. (2017). A Unified Approach to Interpreting Model Predictions. NeurIPS 2017. (SHAP.) arxiv.org/abs/1705.07874
- European Commission (2024). Policy Paper on AI and Competition. DG COMP working document.
- UK FCA (2024). Competition Strategy Update — Algorithmic Tacit Collusion. fca.org.uk
- US DoJ Antitrust Division (2024). United States v. RealPage Inc. et al. — algorithmic price-fixing complaint. justice.gov
- CFPB (2023). Review of Upstart Holdings — Approval Rates and Default Rates by Subgroup. consumerfinance.gov
- EBA (2023). Guidelines on Loan Origination and Monitoring — ML Annex. eba.europa.eu
- Directive (EU) 2023/2225 — Consumer Credit Directive (BNPL inclusion). eur-lex.europa.eu
- Klarna Bank AB (2024). IPO Prospectus — Risk Section: Algorithmic Decisioning & Regulatory Exposure. SEC Form F-1.
