diff --git a/docs/source/business_capstone_nso_close_clean_explain_forecast_decide.rst b/docs/source/business_capstone_nso_close_clean_explain_forecast_decide.rst new file mode 100644 index 0000000..b9b621b --- /dev/null +++ b/docs/source/business_capstone_nso_close_clean_explain_forecast_decide.rst @@ -0,0 +1,155 @@ +Capstone — North Shore Outfitters: Close → Clean → Explain → Forecast → Decide +============================================================================== + +This capstone pulls together Track D into one realistic deliverable set. +You will **close**, **clean**, **explain**, **forecast**, and **recommend actions** for +North Shore Outfitters (NSO). + +The capstone is designed to feel like a real analyst/accountant engagement: + +* You start with messy-but-usable operational and accounting exports. +* You build a documented, analysis-ready dataset. +* You explain what happened (with uncertainty and guardrails). +* You produce forecasts that tie across **P&L + Balance Sheet + Cash**. +* You end with a short decision memo that a CFO could act on. + +You do **not** need to invent complex accounting mechanics. +Track D is built so your work can be grounded in the NSO tables already produced by the +simulator and the chapter scripts. + +How to get the NSO case dataset +------------------------------- + +Track D uses a synthetic NSO dataset generated by the repo's simulator. +From the repo root: + +.. code-block:: bash + + make business-nso-sim + +This writes the NSO v1 dataset under: + +* ``data/synthetic/nso_v1/`` (monthly tables, 24 months) + +Optional (recommended) validation step: + +.. code-block:: bash + + make business-validate + +Submission format +----------------- + +Submit a single folder (zip is fine) that contains your deliverables. +Use filenames that make review easy, for example: + +* ``01_close_controls/`` +* ``02_analysis_ready_data/`` +* ``03_performance_analysis/`` +* ``04_forecast_pack/`` +* ``05_decision_memo/`` + +Deliverables +------------ + +1) Close & Controls Pack +^^^^^^^^^^^^^^^^^^^^^^^^ + +Minimum contents: + +* Bank reconciliation summary (reconciling items categorized) +* AR tie-out (AR aging or AR rollforward, with exceptions) +* AP tie-out (AP aging or AP rollforward, with exceptions) +* Exception report (duplicates, timing outliers, one-offs, negative balances) +* Corrections log (what you changed, why, and impact) + +High-value additions: + +* A short narrative: "What could go wrong next month if controls stay weak?" +* A control owner list: who signs off on each check + +2) Analysis-ready Dataset +^^^^^^^^^^^^^^^^^^^^^^^^^ + +Minimum contents: + +* A tidy GL table (one row per posting/transaction line) +* Supporting tables you relied on (chart of accounts, customers/vendors, etc.) +* A data dictionary (table name, key fields, units, definitions) +* An assumptions log (what you inferred or standardized) + +High-value additions: + +* A reproducible build note: the steps to go from raw tables to tidy tables +* A data quality checklist with pass/fail and comments + +3) Performance Analysis +^^^^^^^^^^^^^^^^^^^^^^^ + +Minimum contents: + +* Trend and variance analysis (month-over-month, year-over-year) +* A driver narrative grounded in Track D methods (not vibes) +* A short "uncertainty" section (what you can't conclude) + +Acceptable analysis styles: + +* Structured variance bridges (volume, price, mix, one-offs) +* Regression-style driver models (with diagnostics and practical interpretation) + +Guardrails: + +* Avoid causal overclaiming ("associated with" is safer than "caused") +* Use accountant-friendly interpretation (rates, baselines, ranges) + +4) Forecast Pack +^^^^^^^^^^^^^^^^ + +Minimum contents: + +* 12-month rolling forecast (P&L + Balance Sheet + Cash tie-out) +* 13-week cash forecast (direct method) +* Three scenarios (base, downside, upside) with explicit assumption changes +* A simple backtest summary and error metrics (at least one forecast horizon) + +Forecast hygiene expectations: + +* Forecasts reconcile across statements (cash tie-out is explicit) +* Assumptions are written down, versioned, and owned + +5) Decision Memo +^^^^^^^^^^^^^^^^ + +Minimum contents (1–2 pages): + +* Recommended actions (specific, time-bounded) +* Expected impact ranges (not point estimates only) +* Risks and trade-offs +* Monitoring plan: KPIs + thresholds + owners + +Suggested build order +--------------------- + +A practical sequence that stays close to the book: + +1. Generate dataset: ``make business-nso-sim`` +2. Validate and clean: Ch06–Ch07 patterns +3. Explain performance: Ch08, Ch16–Ch17, Ch22 +4. Forecast: + + * Cash: Ch19 + * Integrated three statements: Ch20 + * Scenario + stress: Ch21 + +5. Communicate: Ch23 templates + dashboards + governance + +Templates and rubric +-------------------- + +Use the provided templates to keep your deliverables structured: + +* :doc:`business_capstone_templates` + +Your work is graded using the rubric: + +* :doc:`business_capstone_rubric` diff --git a/docs/source/business_capstone_rubric.rst b/docs/source/business_capstone_rubric.rst new file mode 100644 index 0000000..8d3bc8b --- /dev/null +++ b/docs/source/business_capstone_rubric.rst @@ -0,0 +1,55 @@ +Capstone rubric (100 points) +============================ + +This rubric is meant to be transparent and practical. +It rewards (1) correct reconciliations and (2) clear, decision-ready communication. + +1) Controls & reconciliation quality (25 pts) +--------------------------------------------- + +* **25–22**: Reconciliations complete, reconciling items correctly categorized, clear + corrections log, strong exception checks, and a clean audit trail. +* **21–16**: Mostly correct; minor gaps, light documentation, or a few unclear tie-outs. +* **15–0**: Material errors, missing tie-outs, weak audit trail, or unclear corrections. + +2) Data preparation & documentation (20 pts) +-------------------------------------------- + +* **20–18**: Clean, tidy dataset; clear data dictionary; assumptions log; reproducible steps. +* **17–12**: Dataset usable but inconsistent naming/definitions or weak documentation. +* **11–0**: Messy data; unclear sources/definitions; not reproducible. + +3) Statistical analysis & interpretation (20 pts) +------------------------------------------------- + +* **20–18**: Correct methods; practical interpretation; avoids causal overreach; + highlights uncertainty and diagnostics. +* **17–12**: Reasonable analysis but some interpretation issues, missing diagnostics, + or limited linkage to business meaning. +* **11–0**: Incorrect/irrelevant methods; misleading claims; no uncertainty handling. + +4) Forecast quality & forecast hygiene (25 pts) +----------------------------------------------- + +* **25–22**: Forecast ties across statements; includes backtesting; error metrics; + scenario logic; governed assumptions; clear cash tie-out. +* **21–16**: Forecast mostly sound; limited backtesting or weak scenario discipline. +* **15–0**: Forecast does not reconcile; no evaluation; unjustified assumptions. + +5) Decision memo & communication (10 pts) +----------------------------------------- + +* **10–9**: Clear actions, quantified impact ranges, risks, monitoring KPIs, + and accountable owners. +* **8–6**: Good narrative but vague actions or limited quantification. +* **5–0**: Unclear, non-actionable, or not decision-focused. + +Optional appendices (high value) +-------------------------------- + +These are optional, but they often improve clarity and reproducibility: + +* **A: Excel templates** (bank rec, KPI dictionary, forecast assumptions log, 13-week cash) +* **B: QuickBooks export guide** (what to pull, how to structure) +* **C: Python quick labs** (pandas cleaning, time series baselines, regression driver model) +* **D: Common accounting-data pitfalls checklist** (timing, misclass, duplicates, reversals, one-offs) diff --git a/docs/source/business_capstone_templates.rst b/docs/source/business_capstone_templates.rst new file mode 100644 index 0000000..407cb81 --- /dev/null +++ b/docs/source/business_capstone_templates.rst @@ -0,0 +1,250 @@ +Capstone templates +================== + +Use these templates to keep your capstone deliverables consistent and easy to review. +They are intentionally "accountant-friendly": short, structured, and focused on audit trail. + +If you used the Track D scripts, you can attach their artifacts from +``outputs/track_d`` as supporting evidence. + +1) Close & Controls Pack templates +---------------------------------- + +Bank reconciliation (summary) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. code-block:: text + + Bank reconciliation — [Bank name] — [Period end] + + Ending bank statement balance: $__________ + Add: deposits in transit: $__________ + Less: outstanding cheques: ($_________) + Less: bank fees/interest not posted ($_________) + Adjusted bank balance: $__________ + + Ending book cash balance: $__________ + Add/Less: corrections posted: $__________ + Adjusted book balance: $__________ + + Difference (should be 0): $__________ + +AR tie-out checklist +^^^^^^^^^^^^^^^^^^^^ + +.. code-block:: text + + AR tie-out checklist + [ ] AR subledger total equals AR control account + [ ] Aging report dated as-of period end + [ ] Credit memos and returns reviewed + [ ] Cutoff: last week invoices vs shipments checked + [ ] Top 10 balances confirmed or reviewed + +AP tie-out checklist +^^^^^^^^^^^^^^^^^^^^ + +.. code-block:: text + + AP tie-out checklist + [ ] AP subledger total equals AP control account + [ ] Vendor statements reviewed (top vendors) + [ ] Cutoff: receiving reports vs invoices checked + [ ] Duplicate payments scan performed + [ ] Accruals documented (payroll, taxes, utilities) + +Corrections log (minimum) +^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. code-block:: text + + timestamp,issue_type,source_table,record_id,proposed_fix,posted_fix,reviewer,notes + 2026-12-31,duplicate,gl_txns,1234,"remove duplicate row","removed",TA,"duplicate import" + +Exception report (minimum) +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. code-block:: text + + check_name,status,records_flagged,threshold,who_reviewed,notes + duplicate_txn_scan,ok,0,>0,TA, + negative_inventory,flag,3,>0,TA,"investigate stocking + COGS timing" + unusual_margin_swing,flag,1,>10pp,TA,"promo month likely" + +2) Analysis-ready Dataset templates +----------------------------------- + +Tidy GL table (recommended schema) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. code-block:: text + + Columns (tidy): + * txn_id + * txn_date (YYYY-MM-DD) + * account_name + * account_type (Asset/Liability/Equity/Revenue/Expense) + * department (optional) + * memo (optional) + * debit + * credit + * amount (signed; optional) + * source (bank/qbo/manual) + +Data dictionary (minimum) +^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. code-block:: text + + table_name,column_name,type,definition,allowed_values,source + gl_txns,txn_date,date,Transaction date,,qbo export + gl_txns,account_name,string,Chart of accounts name,,qbo export + gl_txns,debit,float,Debit amount,>=0,qbo export + +Assumptions log +^^^^^^^^^^^^^^^ + +.. code-block:: text + + assumption_id,description,value,units,why_it_matters,owner,created_at,expires_at,notes + A001,"AR collection lag",28,days,"drives cash receipts timing",Analyst,2026-01-01,2026-06-30,"based on last 6 months" + +3) Performance analysis templates +--------------------------------- + +Variance drivers worksheet +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. code-block:: text + + metric,period_a,period_b,delta,primary_driver,evidence,next_check + gross_margin,0.41,0.36,-0.05,"discounting",promo calendar + unit prices,review pricing strategy + +Regression / driver model write-up (short) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. code-block:: text + + Model purpose: + - What decision or forecast input is this model supporting? + + Variables: + - Outcome: __________________________ + - Predictors: ________________________ + + Interpretation (no causal over-claiming): + - "Holding other predictors constant, a 1-unit change in X is associated with..." + + Diagnostics: + - [ ] residual pattern checked + - [ ] outliers / one-offs reviewed + - [ ] stability across time checked + +4) Forecast Pack templates +-------------------------- + +12-month rolling forecast (structure) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. code-block:: text + + Forecast pack should include: + * A baseline forecast (simple, explainable) + * At least 3 scenarios (base / downside / upside) + * A backtest summary (recent months) + * Assumptions log (what changed, why) + * Reconciliation check: P&L, BS, and cash tie-out consistent + +13-week cash forecast (direct method) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. code-block:: text + + scenario,week_start,begin_cash,cash_in,cash_out,net_change,end_cash,buffer_breach,notes + base,2026-01-06,25000,18000,21000,-3000,22000,False, + +Backtest summary (minimum) +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. code-block:: text + + metric,window,mae,mape,notes + revenue,6_months,12000,0.08,"baseline seasonal naive" + +Scenario summary (one page) +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. code-block:: text + + Scenarios + - Base: key assumptions... + - Downside: what changes (volume, margin, collections, costs)... + - Upside: what changes... + + Stress tests (binary events) + - Supplier delay (inventory + sales impact) + - Collections slowdown (AR days) + - Payroll shock (hiring or overtime) + +5) Decision memo template +------------------------- + +CFO-style recommendation memo (1–2 pages) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. code-block:: text + + Title: North Shore Outfitters — Recommendation for [Period] + + Executive summary (5–7 sentences) + - What is happening? + - What do we recommend? + - What impact range do we expect? + + Situation snapshot (bullets) + - Revenue: ________ (trend + key driver) + - Margin: ________ (what moved) + - Cash: ________ (13-week outlook + buffer risk) + + Recommendation (actions) + 1) Action: ____________________ + Expected impact: ____________ (range) + Risks: ______________________ + Owner: ______________________ + First check-in: ______________ + + Monitoring plan (KPIs) + - KPI 1: ________ (thresholds + cadence) + - KPI 2: ________ + + Assumptions and limitations + - Top 3 assumptions that could change the conclusion + +KPI dictionary (minimum) +^^^^^^^^^^^^^^^^^^^^^^^^ + +.. code-block:: text + + kpi_name,definition,formula,source_table,source_columns,owner_role,update_cadence,threshold_green,threshold_yellow,threshold_red,notes + Gross margin,"(Revenue-COGS)/Revenue","(rev-cogs)/rev",statements_is_monthly,"Sales Revenue;Cost of Goods Sold",FP&A,Monthly,>0.40,0.35-0.40,<0.35,"promo months expected" + +Dashboard spec (minimum) +^^^^^^^^^^^^^^^^^^^^^^^^ + +.. code-block:: text + + view_name,kpi_name,chart_type,grain,filters,owner_role,refresh_cadence,notes + exec_summary,Gross margin,line,monthly,"scenario",FP&A,Monthly, + +Red-team checklist +^^^^^^^^^^^^^^^^^^ + +.. code-block:: text + + Red-team checklist + [ ] Numbers tie out: P&L, BS, and cash are consistent + [ ] One-offs identified and labeled + [ ] No causal claims without a design + [ ] Units and signs checked (cash in vs cash out) + [ ] Assumptions log updated and owned + [ ] Risk monitoring plan has thresholds + owners diff --git a/docs/source/index.rst b/docs/source/index.rst index b3868a2..ba76362 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -173,5 +173,8 @@ See :doc:`getting_started` and :doc:`contributing` for the contributor workflow. business_ch21_scenario_planning_sensitivity_stress business_ch22_financial_statement_analysis_toolkit business_ch23_communicating_results_governance + business_capstone_nso_close_clean_explain_forecast_decide + business_capstone_templates + business_capstone_rubric business_appendix_pdf_refresher business_appendix_authoring_rules \ No newline at end of file