paco-dev #2
3
.gitignore
vendored
3
.gitignore
vendored
|
|
@ -1,3 +1,4 @@
|
||||||
data/
|
data/
|
||||||
data_exploration/
|
data_exploration/
|
||||||
notebooks/
|
notebooks/
|
||||||
|
*.csv
|
||||||
|
|
|
||||||
4529
carmignac_diagnostics.html
Normal file
4529
carmignac_diagnostics.html
Normal file
File diff suppressed because one or more lines are too long
|
|
@ -2,7 +2,7 @@
|
||||||
"cells": [
|
"cells": [
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": null,
|
"execution_count": 1,
|
||||||
"id": "5c8fc6c5",
|
"id": "5c8fc6c5",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
|
|
@ -24,19 +24,34 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": null,
|
"execution_count": 2,
|
||||||
"id": "d43b725e",
|
"id": "d43b725e",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
"source": [
|
"source": [
|
||||||
"push_file('AUM_repaired.csv', 'projet-bdc-carmignac-g3//paco/AUM_repaired.csv')\n",
|
"push_file('carmignac_broken_months.csv', 'projet-bdc-carmignac-g3//paco/carmignac_broken_months.csv')\n",
|
||||||
"push_file('AUM_paths.csv', 'projet-bdc-carmignac-g3//paco/AUM_paths.csv')"
|
"push_file('carmignac_error_account_agg.csv', 'projet-bdc-carmignac-g3//paco/carmignac_error_account_agg.csv')\n",
|
||||||
|
"push_file('carmignac_error_account.csv', 'projet-bdc-carmignac-g3//paco/carmignac_error_account.csv')"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"metadata": {
|
"metadata": {
|
||||||
|
"kernelspec": {
|
||||||
|
"display_name": "Python 3",
|
||||||
|
"language": "python",
|
||||||
|
"name": "python3"
|
||||||
|
},
|
||||||
"language_info": {
|
"language_info": {
|
||||||
"name": "python"
|
"codemirror_mode": {
|
||||||
|
"name": "ipython",
|
||||||
|
"version": 3
|
||||||
|
},
|
||||||
|
"file_extension": ".py",
|
||||||
|
"mimetype": "text/x-python",
|
||||||
|
"name": "python",
|
||||||
|
"nbconvert_exporter": "python",
|
||||||
|
"pygments_lexer": "ipython3",
|
||||||
|
"version": "3.13.12"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nbformat": 4,
|
"nbformat": 4,
|
||||||
|
|
@ -65,7 +65,7 @@ def load_broken_months(broken_months_path):
|
||||||
try:
|
try:
|
||||||
df = pd.read_csv(broken_months_path, parse_dates=["date"])
|
df = pd.read_csv(broken_months_path, parse_dates=["date"])
|
||||||
broken = set(zip(pd.to_datetime(df["date"]), df["isin"].astype(str)))
|
broken = set(zip(pd.to_datetime(df["date"]), df["isin"].astype(str)))
|
||||||
lags = set(zip(pd.to_datetime(df.loc[df["is_lag"], "date"]),
|
lags = set(zip(pd.to_datetime(df.loc[df["is_lag"], "date"]),
|
||||||
df.loc[df["is_lag"], "isin"].astype(str)))
|
df.loc[df["is_lag"], "isin"].astype(str)))
|
||||||
print(f"[Broken months] Loaded {len(broken)} flagged (isin, month) pairs "
|
print(f"[Broken months] Loaded {len(broken)} flagged (isin, month) pairs "
|
||||||
f"({len(lags)} likely lags)")
|
f"({len(lags)} likely lags)")
|
||||||
|
|
@ -801,7 +801,7 @@ def export_results(scores_history, mapping_history, surgery_log, all_months, out
|
||||||
# ─────────────────────────────────────────────
|
# ─────────────────────────────────────────────
|
||||||
# 8. PIPELINE PRINCIPAL
|
# 8. PIPELINE PRINCIPAL
|
||||||
# ─────────────────────────────────────────────
|
# ─────────────────────────────────────────────
|
||||||
def run_pipeline(aum_path, flows_path, broken_months_path=None):
|
def run_pipeline(aum_path, flows_path, broken_months_path="carmignac_broken_months.csv"):
|
||||||
print("=" * 60)
|
print("=" * 60)
|
||||||
print("CARMIGNAC — Pipeline de réparation des Registrar IDs")
|
print("CARMIGNAC — Pipeline de réparation des Registrar IDs")
|
||||||
print("=" * 60)
|
print("=" * 60)
|
||||||
|
|
|
||||||
36
repair_challenge/diagnosis_logs.txt
Normal file
36
repair_challenge/diagnosis_logs.txt
Normal file
|
|
@ -0,0 +1,36 @@
|
||||||
|
============================================================
|
||||||
|
CARMIGNAC — Broken Months Diagnostics
|
||||||
|
============================================================
|
||||||
|
(isin, month) pairs examined : 39874
|
||||||
|
Broken (missing_pct > 5%) : 7545 (18.9%)
|
||||||
|
Of which likely lag : 491
|
||||||
|
Of which genuine gap : 7054
|
||||||
|
|
||||||
|
Top 10 by missing_pct:
|
||||||
|
date isin missing_flow missing_pct is_lag
|
||||||
|
2021-10-31 LU1299301876 400.000 2.000000 False
|
||||||
|
2019-07-31 LU0992625086 3940.000 1.995856 False
|
||||||
|
2021-02-28 LU0992626563 -681.559 1.995325 False
|
||||||
|
2019-01-31 FR0010148999 4595.753 1.994832 False
|
||||||
|
2020-08-31 LU0992631217 14928.331 1.991141 False
|
||||||
|
2020-11-30 LU1744630424 -35632.925 1.987345 False
|
||||||
|
2020-02-29 LU0992626480 25812.484 1.985526 False
|
||||||
|
2020-03-31 LU1299302098 930.648 1.982950 False
|
||||||
|
2020-07-31 LU1966631001 240.957 1.980076 False
|
||||||
|
2020-11-30 LU0807689822 -6181.993 1.972331 False
|
||||||
|
|
||||||
|
Most affected months:
|
||||||
|
n_broken total_missing
|
||||||
|
date
|
||||||
|
2019-12-31 123 2052282.985
|
||||||
|
2021-09-30 113 1892096.272
|
||||||
|
2020-12-31 107 652351.530
|
||||||
|
2020-11-30 105 833084.202
|
||||||
|
2021-01-31 104 784362.333
|
||||||
|
|
||||||
|
Aggregate broken months : 85 (of which lags: 2)
|
||||||
|
Max aggregate error stock : 3,057,936.2 shares (0.749% of total AUM)
|
||||||
|
[Export] Broken months CSV → carmignac_broken_months.csv
|
||||||
|
[Export] Error account (ISIN) → carmignac_error_account.csv
|
||||||
|
[Export] Error account (agg) → carmignac_error_account_agg.csv
|
||||||
|
[Export] HTML report → carmignac_diagnostics.html
|
||||||
Loading…
Reference in New Issue
Block a user