Module 1 · 3 hours · Free access
Business questions and analytical thinking
- Decisions, users, and analytical scope
- Metrics, dimensions, and grain
- Analysis plans and reproducibility
Academy of Corporate Finance
Professional training
Turn business questions into reliable data, reproducible analysis, and clear decisions.
Modules 1–3 free · Modules 4–8 paid
Start free lessonsExplore the program
Module 1 · 3 hours · Free access
Module 2 · 4 hours · Free access
Module 3 · 5 hours · Free access
Module 4 · 4 hours · Paid module
Module 5 · 4 hours · Paid module
Module 6 · 4 hours · Paid module
Module 7 · 4 hours · Paid module
Module 8 · 4 hours · Paid module
| Access | Includes | Price / status |
|---|---|---|
| Free foundation | Modules 1–3, practice, and browser self-checks | $0 · Available now; no account required |
| Full program | Modules 4–8 plus final applied assessment and eligibility for a course completion certificate | Paid enrollment · Tuition to be announced |
Spring 2027 enrollment opens November 1, 2026. Registration and tuition details will be available when enrollment opens. This mirrors the current Credit Analyst Training Program access and enrollment structure. Payment and purchaser access are not yet enabled. A sample certificate illustrates the design; an actual certificate requires verified completion of the assessment standard.
For new business intelligence and data analysts, and business professionals moving into analytical roles. Basic spreadsheet use and percentages are recommended. SQL is introduced from first principles; concepts apply across tools and industries.
Read each topic and worked example, answer both practice questions, and review the explanations before moving on. Each module contains an applied workshop and a separate ten-question assessment. Use the formula reference and calculator; eight correct answers out of ten meets the 80% knowledge threshold. The full program totals 36 suggested hours, including a four-hour final case.
Formal completion requires at least 80% in every module and at least 80/100 on the final applied case, with all critical checks passed. A score is evidence against this course standard; it does not alone establish independent professional competence, grant regulated authority, or confer a vendor certification. All companies, numerical thresholds, and cases are fictional teaching examples. Apply current institutional and jurisdiction-specific requirements in live work.
Browser scoring is a self-check. Scores remain only in this session and clear on reload; export them before closing. Formal results require controlled assessment and an assessor’s record. Repeating disclosed questions does not establish unseen mastery.
Module 1 · 3 hours
Learning objective: Translate a broad request into an answerable decision question.
Business intelligence turns data into repeatable information for decisions; analysis investigates a question and interprets evidence. Start with the decision owner, action, deadline, and consequence of being wrong. A request to build a dashboard is incomplete until you know what someone will do differently after seeing it.
Define the population, period, unit of analysis, comparison, and success measure. Distinguish descriptive questions about what happened from diagnostic, predictive, and causal questions. A description of past sales cannot by itself prove why sales changed. Agree the scope and exclusions with the stakeholder, identify available evidence, and document what would change the decision. A small, well-defined question is often more useful than a large report without an action.
Replace “analyze churn” with “Which customer segments had the largest increase in 90-day cancellation rate last quarter, and where should the retention team investigate first?”
Choose your answer before opening the explanation.
1.1.1. What should be established before choosing a chart?
D. The analytical purpose determines the appropriate data and presentation.
1.1.2. A sales report shows a decline. Does it alone explain the cause?
C. Describing a movement is different from establishing why it occurred.
Progress check: explain both correct answers and correct any misconception before moving to the next topic.
Learning objective: Define what each row and each reported number represents.
A metric is a defined quantity, such as net sales or conversion rate. A dimension describes how to group or filter it, such as region, product, or date. Grain states what one row represents: an order, an order line, a daily account balance, or an event. Without a consistent grain, joins and totals can silently count the same activity more than once.
Write a metric definition with numerator, denominator where relevant, filters, time basis, units, and treatment of refunds, cancellations, and missing values. Distinguish a flow over a period from a balance at a point in time. Some measures are additive across products but not dates; adding daily bank balances does not produce a month-end balance. Obtain an owner’s agreement before distributing a KPI.
An order with three line items appears on three rows in an order-line table. SUM(line_amount) can calculate sales, but COUNT(*) counts lines, not distinct orders.
Choose your answer before opening the explanation.
1.2.1. What does grain describe?
C. Grain determines the valid interpretation of rows and aggregation.
1.2.2. Three lines belong to one order. COUNT(*) on those rows measures:
D. Counting rows follows the table’s grain.
Progress check: explain both correct answers and correct any misconception before moving to the next topic.
Learning objective: Create a traceable path from source to conclusion.
An analysis plan records the question, sources, required fields, cleaning rules, calculations, comparisons, and review steps. Keep a source snapshot or version reference where policy allows, record extraction time, and preserve raw data separately from cleaned working data. Another analyst should be able to reproduce the material result.
Separate facts, assumptions, and interpretations. Record changes to definitions and transformations instead of silently overwriting prior work. Validate key totals against an independent source or a documented control total. Plan for missing data and known biases before choosing a convenient treatment. Reproducibility does not prove that a question or method is valid, but it makes errors easier to detect and challenges easier to resolve.
A report states “net sales exclude cancelled orders, deduct recorded returns, and use the order date in UTC.” The SQL, source extract date, and reconciled total are saved with the analysis.
Choose your answer before opening the explanation.
1.3.1. Which practice most supports reproducibility?
D. A reviewer needs the path from evidence to result.
1.3.2. A reproducible calculation can still be wrong because:
A. Traceability is necessary but not sufficient for a valid conclusion.
Progress check: explain both correct answers and correct any misconception before moving to the next topic.
Workshop: A sales director asks why the dashboard shows more orders than the billing system. Define the decision question, candidate grain mismatch, three evidence requests, and a reproducible investigation plan. Specify what would count as a resolved discrepancy.
10 questions · 30 minutes · 10 points each · Pass at 80%
One best answer per question. Use the formula reference and a calculator. Formal results require controlled instructor administration.
Learner __________ Date ______ Correct ___/10 Score ___% Assessor __________
Module 2 · 4 hours
Learning objective: Assess data meaning and quality before transformation.
Identify where data originate, why they were collected, and whether they represent the target population. A spreadsheet export, transaction database, survey, and event stream can have different completeness and timing. Record field names, types, units, formats, and business definitions in a data dictionary.
Profile row counts, distinct keys, missingness, value ranges, categories, date coverage, and outliers. IDs that look numeric may need text storage to preserve leading zeros. Currency symbols and mixed units can disguise scale errors. Separate observed anomalies from confirmed errors: a large transaction may be legitimate. Compare the profile with expected behavior and involve source owners before changing values that affect the conclusion.
Customer code 00127 becomes 127 when imported as a number. If another system uses the original text ID, a join may fail despite referring to the same customer.
Choose your answer before opening the explanation.
2.1.1. How should a leading-zero identifier often be stored?
D. An identifier’s meaning, not its appearance, determines its type.
2.1.2. A very large sale is found during profiling. First action?
B. An outlier is not automatically an error.
Progress check: explain both correct answers and correct any misconception before moving to the next topic.
Learning objective: Apply documented cleaning decisions without manufacturing evidence.
A missing value may mean unknown, not applicable, not yet recorded, or zero; those meanings are not interchangeable. Quantify missingness by important segments and investigate whether it is related to the outcome. Choose exclusion, imputation, or a separate category only with a documented rationale and sensitivity analysis where needed.
Define duplicates at the business grain. Two identical-looking rows may be repeated ingestion, while two purchases by the same customer are legitimate separate events. Preserve raw records and use a deterministic rule for corrections, such as keeping the latest valid version by event ID and timestamp. Log exclusions and changes. Cleaning should improve fidelity to the business event, not force data to support a preferred result.
A daily file repeats yesterday’s event ID with a later update timestamp. Keep the latest valid state for that event if the source contract defines updates that way; do not count both versions as new sales.
Choose your answer before opening the explanation.
2.2.1. A missing revenue value should automatically become:
A. Missingness has meaning that must be established.
2.2.2. Two purchases by one customer are:
C. Deduplication depends on event identity and grain.
Progress check: explain both correct answers and correct any misconception before moving to the next topic.
Learning objective: Join and append data without duplicating or losing records unintentionally.
Appending stacks records with compatible columns; joining combines attributes using keys. Before either operation, align types, units, date conventions, and schema. Verify key cardinality: one-to-one, one-to-many, or many-to-many. A many-to-many join can multiply rows and amounts even when the query runs successfully.
Use explicit matching rules and examine unmatched records. An inner join keeps only matches; a left join preserves all rows from the left table but can still multiply them if the right key is not unique. Compare row counts and financial totals before and after each operation. Investigate changes, document intentional exclusions, and add validation checks that will identify future source changes rather than only today’s convenient sample.
Two order rows join to three duplicate customer records on the same key, producing six rows. Sales appear tripled unless the customer dimension is resolved to one valid row per key.
Choose your answer before opening the explanation.
2.3.1. Which operation stacks two monthly extracts?
C. Appending extends a dataset with records of the same structure.
2.3.2. Does a left join guarantee the original row count?
C. Preserving left rows does not prevent multiplication.
Progress check: explain both correct answers and correct any misconception before moving to the next topic.
Workshop: Orders has 120 rows and $24k sales. Joining a customer file yields 150 rows and $30k sales. Ten orders have unmatched customer IDs. Identify likely issues, specify checks, and explain why neither the $30k total nor a blind inner join is acceptable without investigation.
10 questions · 30 minutes · 10 points each · Pass at 80%
One best answer per question. Use the formula reference and a calculator. Formal results require controlled instructor administration.
Learner __________ Date ______ Correct ___/10 Score ___% Assessor __________
Module 3 · 5 hours
Learning objective: Write basic read-only queries with correct filter semantics.
SQL SELECT retrieves columns or expressions from a table. WHERE filters rows before aggregation, and ORDER BY controls result order; without it, a particular order is not guaranteed. Use explicit columns in durable reports so source schema changes do not silently change the output.
NULL represents an unknown or absent value, not ordinary zero or an empty string. Use IS NULL or IS NOT NULL to test it; equality to NULL does not behave like equality to a known value. Parenthesize mixed AND/OR conditions to express the intended business rule. For dates with timestamps, a half-open interval is often safer than an inclusive end date: start inclusive, next-period boundary exclusive. The course examples use portable SQL concepts, with date syntax documented for SQLite practice files.
SELECT order_id, net_sales FROM orders WHERE status = 'completed' AND order_date >= '2026-01-01' AND order_date < '2026-02-01' ORDER BY order_id; This selects completed January orders on the stated date basis.
Choose your answer before opening the explanation.
3.1.1. Which condition tests an absent value?
D. IS NULL is the explicit SQL null test.
3.1.2. What guarantees a specified result order?
B. Relational query results need explicit ordering when order matters.
Progress check: explain both correct answers and correct any misconception before moving to the next topic.
Learning objective: Aggregate at the correct grain and verify join cardinality.
GROUP BY forms groups for aggregate calculations. SUM adds non-null values, COUNT(*) counts rows, and COUNT(column) counts non-null values in that column. COUNT(DISTINCT key) counts distinct non-null keys. HAVING filters groups after aggregation; use WHERE for the underlying row restrictions.
Join with explicit keys and confirm uniqueness where the model expects it. Aggregate each fact table to the needed grain before combining independent many-side tables. Otherwise order lines joined to payments can multiply both sales and payment amounts. A query that returns a plausible total may still be wrong. Reconcile a small hand-calculated sample and a complete control total, and retain unmatched-key diagnostics alongside the final report.
SELECT region, SUM(net_sales) AS sales FROM orders WHERE status = 'completed' GROUP BY region HAVING SUM(net_sales) > 10000; This retains regions with more than $10,000 of completed-order net sales.
Choose your answer before opening the explanation.
3.2.1. COUNT(amount) excludes which rows from its count?
A. COUNT(column) counts non-null values, including zero and negative numbers.
3.2.2. Which clause filters an aggregated group?
C. HAVING applies conditions to grouped results.
Progress check: explain both correct answers and correct any misconception before moving to the next topic.
Learning objective: Use partitions and deterministic ordering while preserving row detail.
Window functions calculate across related rows without collapsing them into one grouped row. ROW_NUMBER assigns an ordered position within a partition; SUM(...) OVER can calculate a running or partition total. State partition keys, ordering, and the frame when the calculation depends on them. Ties need a stable tie-breaker if exactly one latest record must be selected.
A common table expression (WITH) names an intermediate query, making staged logic easier to read and review. It does not automatically persist results or make incorrect logic correct. Compare window output with a small example, inspect duplicate dates and nulls, and verify that ordering matches business meaning. Keep production analysis read-only unless an authorized task specifically requires data changes.
WITH ranked AS (SELECT event_id, amount, ROW_NUMBER() OVER (PARTITION BY event_id ORDER BY updated_at DESC, version_id DESC) AS rn FROM events) SELECT event_id, amount FROM ranked WHERE rn = 1; This selects the latest version under the stated ordering rule.
Choose your answer before opening the explanation.
3.3.1. Unlike GROUP BY, a window calculation can:
B. Window functions preserve row detail.
3.3.2. Two versions share the same timestamp. To choose exactly one latest record reliably:
C. A deterministic rule requires a complete ordering.
Progress check: explain both correct answers and correct any misconception before moving to the next topic.
Workshop: Use the supplied SQL practice dataset. Select completed January orders, calculate net sales by region, compare COUNT(*) with COUNT(DISTINCT order_id), and rank orders by net sales within each region using order_id as a tie-breaker. Explain how an order-line join could inflate totals.
10 questions · 30 minutes · 10 points each · Pass at 80%
One best answer per question. Use the formula reference and a calculator. Formal results require controlled instructor administration.
Learner __________ Date ______ Correct ___/10 Score ___% Assessor __________
Download the free SQL practice dataset and exercises. Use the README to load the fictional tables into SQLite. Worked solutions are included for practice; do not use them during a formal assessment.
| Measure | Definition |
|---|---|
| Net sales | Completed-order gross sales − recorded returns, under the agreed period and status basis |
| Contribution | Net sales − stated variable costs |
| Weighted rate | Sum of numerators / sum of denominators; not an unweighted mean of subgroup rates |
| Percentage change | (New − old) / old; undefined on a zero baseline without a chosen alternative |
State units, population, date basis, and assumptions. Compare thresholds before rounding; show percentages to two decimal places when needed. SQL examples use explicit keys and filters. A mathematically correct calculation can still answer the wrong business question.
Keep formal scores separately with the learner, assessment version, date, and assessor.
Official supplementary references checked September 2026. The lessons, cases, questions, and scoring standard are original instructional material, not requirements established by these sources.
PostgreSQL: SQL tutorial
Reference for relational queries, aggregates, joins, and windows.
Microsoft: star schema guidance
Supplementary modeling guidance; the course is not a Microsoft certification.
NIST: exploratory data analysis handbook
Background on exploring distributions and variation.
W3C: Understanding Use of Color
Reference for presenting meaning through more than color alone.