Code WorkbenchRevenue Discrepancy Investigation
Explorer
srcreconcile.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class="text-zinc-class="text-amber-300">500 italic"># Reconcile Finance vs Analytics revenue for the past class="text-amber-300">7 days.
import pandas as pd
from datetime import date, timedelta
 
def reconcile(finance_df, analytics_df):
class="text-emerald-class="text-amber-300">400">""class="text-emerald-class="text-amber-300">400">"Return a per-day variance frame for the last class="text-amber-300">7 days."class="text-emerald-class="text-amber-300">400">""
end = date.today()
start = end - timedelta(days=class="text-amber-300">7)
f = finance_df.query(class="text-emerald-class="text-amber-300">400">"date >= @start and date < @end")
a = analytics_df.query(class="text-emerald-class="text-amber-300">400">"date >= @start and date < @end")
merged = f.merge(a, on=class="text-emerald-class="text-amber-300">400">"date", suffixes=(class="text-emerald-class="text-amber-300">400">"_fin", class="text-emerald-class="text-amber-300">400">"_an"))
merged[class="text-emerald-class="text-amber-300">400">"variance"] = merged[class="text-emerald-class="text-amber-300">400">"revenue_an"] - merged[class="text-emerald-class="text-amber-300">400">"revenue_fin"]
return merged.sort_values(class="text-emerald-class="text-amber-300">400">"date")
 
if __name__ == class="text-emerald-class="text-amber-300">400">"__main__":
print(class="text-emerald-class="text-amber-300">400">"Running reconciliation...")
 
$ python src/reconcile.py
Running reconciliation...
✔ Compared 7 days · variance reduced to $4,820
$
main 0 errors · 1 warning
Ln 1, Col 1Spaces: 2UTF-8py