Merged in feature/median-cost-analysis (pull request #912)

Add median

* Add median


Approved-by: Siddhant Medar
This commit is contained in:
Katon Minhas
2026-03-16 18:05:52 +00:00
parent c9cd7ddb43
commit 59441c209b
+16 -6
View File
@@ -24,25 +24,28 @@ def _build_summary_row(df: pd.DataFrame, usage_key: str, file_count: int) -> dic
caching_cost = usage_df.loc[is_cache, "total_cost"].sum()
non_cache_df = usage_df.loc[~is_cache].copy()
median_cost_per_contract = 0.0
if non_cache_df.empty:
adjusted_total_cost = 0.0
else:
by_file = non_cache_df.groupby("file_name", dropna=False)["total_cost"].sum()
outlier_file = by_file.idxmax()
adjusted_total_cost = non_cache_df.loc[
non_cache_df["file_name"] != outlier_file, "total_cost"
].sum()
filtered_by_file = by_file.drop(index=outlier_file)
adjusted_total_cost = float(filtered_by_file.sum())
if not filtered_by_file.empty:
median_cost_per_contract = float(filtered_by_file.median())
return {
"Batch": os.path.basename(usage_key),
"caching_cost": round(float(caching_cost), 6),
"total_cost": round(float(adjusted_total_cost), 6),
"file_count": int(file_count),
"cost_per_contract": (
"mean_cost_per_contract": (
round(float(adjusted_total_cost) / float(file_count), 6)
if file_count
else 0.0
),
"median_cost_per_contract": round(float(median_cost_per_contract), 6),
}
@@ -119,12 +122,19 @@ def run_historical_cost_analysis(
"caching_cost",
"total_cost",
"file_count",
"cost_per_contract",
"mean_cost_per_contract",
"median_cost_per_contract",
],
)
if summary_df.empty:
summary_df = pd.DataFrame(
columns=["caching_cost", "total_cost", "file_count", "cost_per_contract"]
columns=[
"caching_cost",
"total_cost",
"file_count",
"mean_cost_per_contract",
"median_cost_per_contract",
]
)
summary_df.index.name = "Batch"
else: