import argparse
import json
from pathlib import Path
def parse_args():
parser = argparse.ArgumentParser()
parser.add_argument("--input", required=True, help="Path to weekly KPI JSON file")
return parser.parse_args()
def load_data(path: Path):
with path.open("r", encoding="utf-8") as handle:
return json.load(handle)
def fmt_change(value):
sign = "+" if value >= 0 else ""
return f"{sign}{value:.1f}%"
def main():
args = parse_args()
path = Path(args.input)
if not path.exists():
raise SystemExit(f"Input file not found: {path}")
data = load_data(path)
revenue = float(data.get("revenue", 0))
revenue_change = float(data.get("revenue_change_pct", 0))
active_customers = int(data.get("active_customers", 0))
customer_change = float(data.get("customer_change_pct", 0))
churn_risk = data.get("churn_risk", "unknown")
key_note = data.get("key_note", "No additional note provided.")
print("Weekly Leadership Report")
print("========================")
print(f"Revenue: ${revenue:,.2f} ({fmt_change(revenue_change)} week-over-week)")
print(f"Active customers: {active_customers} ({fmt_change(customer_change)} week-over-week)")
print(f"Churn risk: {churn_risk}")
print()
print("Executive note:")
print(key_note)
if __name__ == "__main__":
main()