Learn the work behind Data, AI & Forward Deployed Engineering
Practical explanations, career decisions and reproducible workflows. Read the reasoning, inspect the evidence and follow the next skill into a real programme.
DAX cohort measures: preserve the acquisition group
A retention cohort holds a defined starting group fixed and asks how many of its members are active in a later period. If the denominator shrinks to only customers active in the selected month, the result can misleadingl
DAX currency conversion at the correct transaction grain
Convert amounts at the grain required by the reporting policy, then aggregate values in the target currency. Multiplying a combined multi-currency total by one average rate generally does not preserve the original transa
DAX inactive relationships and order versus delivery dates
An order can be placed on one date and delivered on another. A report must identify which date role determines its period. An inactive relationship can support an alternate date measure without changing the default order
DAX moving averages with incomplete trading days
A moving average needs an explicit window and a completeness rule. Three observed rows are not necessarily three expected trading days, and an unknown day's value should not automatically become zero or disappear from th
DAX SUMX: why row-level multiplication needs an iterator
Total line value is the sum of each line's quantity multiplied by that line's unit price. Multiplying total quantity by the sum of unit prices creates cross-products that do not represent the original transactions.
DAX total rows: why summing percentages gives the wrong answer
A matrix total evaluates the measure under the total's filter context. It is not necessarily the arithmetic sum of the displayed row results. For ratios, recalculating from the total numerator and denominator is often ex
DAX year-to-date versus rolling twelve months
Year-to-date accumulates from the start of the relevant year to the selected endpoint. A rolling twelve-month measure looks backward over a moving twelve-month interval. They answer different questions and usually includ
DBSCAN: distinguish noise from a bad density setting
DBSCAN labels rows in low-density regions as -1. That label means “not density-connected under this eps and minsamples setting.” It does not mean fraud, bad data or a business exception.
Debug a DAX measure with a small validation table
When a measure looks wrong, reduce the problem to a small table with known records and explicit filters. Expose the numerator, denominator and relevant counts instead of editing a long expression repeatedly while watchin
Debug a Python KeyError in messy business data
A KeyError means a requested dictionary key was not present. In reporting code, investigate the actual schema and transformation history before replacing the access with get(). A default can hide the error while changing
Decide when rules are better than unsupervised learning
Clustering is useful for exploration when the structure is unknown. If the intended action already depends on clear thresholds, explicit rules can be easier to explain, test and govern. Complexity should solve a document
Decide when to stop an AI project
Stopping is a delivery outcome when evidence says the project cannot reach an acceptable result under its constraints. Continuing to justify previous spend converts a pilot into an uncontrolled commitment.
Not sure which programme fits?
Tell us your background and we will map it to the right entry point — including saying so when a cheaper programme is the better fit. A counsellor replies within one working day.