Worked case · Failure and stress · 12 figures

Point-in-time feature join

Make time-aware features reproducible

Figure 01 / 12

The evaluated population

The evaluated population — Point-in-time feature join. Count; one closed observation cohort. Exact values are in the figure data below.
Count; one closed observation cohort

The cohort contains 18,200 decision snapshots, of which 491 have the defined synthetic outcome: Mature transaction loss. The outcome is known by construction here. In production, label uncertainty and selection must be recorded separately.

Figure data and text version
OutcomeCount
Mature transaction loss491
Other labeled outcomes17,709

A feature must contain only information available at the decision time. A late dispute cannot become an earlier transaction feature merely because its transaction date is old.

A training join uses the latest customer state and leaks future outcomes.

All amounts, rates, capacity limits, and outcomes in this case are synthetic. The three conditions are separate assumptions for comparison. A better result in the response condition is not measured proof that the proposed control causes that improvement. The figures expose the calculation and its limits; a real deployment needs its own evidence.

Read the result

The rule flags 1,210 of 18,200 decision snapshots. Of those flags, 236 meet the synthetic target, giving 19.5% precision. It misses 255 target events. Under the stated cost assumptions, residual loss and operating friction total $63,260. The important result is the connection between the population, action, capacity, and outcome—not one isolated score.

Model inputs and calculated values

Inputs below are the case-specific values. Each figure states the condition-specific assumptions and units used in its calculation. Calculated values are rounded for display.

InputValue
population18,200
prevalence0.027
severity210
Calculated valueResult
population18,200
positive491
negative17,709
tp236
fp974
fn255
tn16,735
loss53,550
severity210
precision19.5
recall48.07
Figure 02 / 12

Four outcomes of the rule

Four outcomes of the rule — Point-in-time feature join. Counts; rows are actual labels, columns are actions. Exact values are in the figure data below.
Counts; rows are actual labels, columns are actions

The rule flags 236 synthetic positives and 974 negatives. It misses 255 positives. A flagged item is a decision to intervene; it is not proof of fraud, a legal prohibition, or any other real-world conclusion.

Figure data and text version
Known outcomeFlaggedNot flagged
Mature transaction loss236255
Other outcome97416,735
Figure 03 / 12

Three rates with different denominators

Three rates with different denominators — Point-in-time feature join. Rates within this cohort. Exact values are in the figure data below.
Rates within this cohort

Precision is 19.5%, recall is 48.07%, and the false-positive rate is 5.5%. Changing the denominator changes the meaning. This record keeps each numerator attached to the population from which it came.

Figure data and text version
MetricNumeratorDenominatorResult
Precision2361,21019.5%
Recall23649148.07%
False-positive rate97417,7095.5%
Figure 04 / 12

Precision changes with prevalence

Precision changes with prevalence — Point-in-time feature join. Percent; fixed conditional detection rates. Exact values are in the figure data below.
Percent; fixed conditional detection rates

This sensitivity plot holds recall at 48% and false-positive rate at 5.5%, then changes prevalence. It is an algebraic comparison, not a forecast. Even unchanged detection quality can produce a very different review queue when the base rate changes. Horizontal positions are the labeled observations or scenarios; equal spacing does not imply equal numerical increments.

Figure data and text version
Assumed prevalencePrecision %
0.1%0.87
0.5%4.2
1%8.1
2%15.12
5%31.48
10%49.23
Figure 05 / 12

The threshold trade-off

The threshold trade-off — Point-in-time feature join. Count in the same cohort. Exact values are in the figure data below.
Count in the same cohort

Six illustrative score bands use a stated pair of detection rates. Lower sensitivity can reduce false alarms but miss more target events. These points do not come from a trained model and do not establish the best operating threshold. Horizontal positions are the labeled observations or scenarios; equal spacing does not imply equal numerical increments.

Figure data and text version
Score bandTrue positivesFalse positives
Band 14812,656
Band 24621,417
Band 3422620
Band 4354213
Band 524671
Band 612318
Figure 06 / 12

A transparent loss-and-friction calculation

A transparent loss-and-friction calculation — Point-in-time feature join. Illustrative USD; expected cost under stated intervention assumptions. Exact values are in the figure data below.
Illustrative USD; expected cost under stated intervention assumptions

At $210 severity per missed synthetic positive, residual loss is $53,550. Review costs $4,840; lost contribution on false alarms is $4,870. The calculation assumes intervention prevents all flagged-positive loss and each false alarm loses the stated contribution. Relax those assumptions before applying it to a real policy.

Figure data and text version
Cost componentUSD
Missed-positive loss53,550
Review cost4,840
False-alarm contribution4,870
Figure 07 / 12

Observed outcomes mature over time

Observed outcomes mature over time — Point-in-time feature join. Count; final outcome fixed. Exact values are in the figure data below.
Count; final outcome fixed

The final synthetic positive count is 491. Earlier observations reveal only a stated fraction. Comparing a day-1 cohort with a day-30 cohort would confuse label age with control quality. This curve models observation delay only; it does not change the final outcome. Horizontal positions are the labeled observations or scenarios; equal spacing does not imply equal numerical increments.

Figure data and text version
Days after eventObserved positives
188
3172
7295
14403
30491
Figure 08 / 12

Review demand and available capacity

Review demand and available capacity — Point-in-time feature join. Items in the cohort window. Exact values are in the figure data below.
Items in the cohort window

The flag count is 1,210. The comparison capacity is an illustrative 728 reviews per cohort window. A mathematical rule can be coherent while its resulting workload exceeds the operating team’s capacity. Capacity is not permission to ignore an applicable mandatory control.

Figure data and text version
Queue measureItems
Flagged for review1,210
Available capacity728
Excess demand482
Figure 09 / 12

A feature is an observation with provenance

A feature is an observation with provenance — Point-in-time feature join. Illustrative data contract. Exact values are in the figure data below.
Illustrative data contract

This evidence contract supports make time-aware features reproducible. A value needs its event time, arrival time, scope, and source. Keeping unavailable evidence distinct from a measured zero prevents an outage from becoming a falsely reassuring feature.

Figure data and text version
FieldExampleMeaning
entity_refPoint-in-time feature joinSubject of this case
event_time2026-09-18T09:00:00ZWhen the event occurred
received_time2026-09-18T09:00:02ZWhen the system learned it
signal_statuslateEvidence quality, not an outcome
label_definitionMature transaction lossThe target used in these calculations
Figure 10 / 12

Missing evidence changes the observed population

Missing evidence changes the observed population — Point-in-time feature join. Count; each row is the same cohort. Exact values are in the figure data below.
Count; each row is the same cohort

The cells show an explicitly constructed completeness profile for three signal groups. The stress condition removes more history and device evidence. Missingness does not prove the target outcome; it changes what the decision process knows.

Figure data and text version
Signal groupAvailableMissing
Identity evidence16,0162,184
Activity history13,1045,096
Context signal10,9207,280
Figure 11 / 12

Evidence, score, and action remain separate

Evidence, score, and action remain separate — Point-in-time feature join. Decision lifecycle. Exact values are in the figure data below.
Decision lifecycle

The policy can use make time-aware features reproducible only within its approved scope. The action record must retain which evidence was available, which model or rule ran, and which action was actually applied. The final action can differ from the score recommendation when a separate constraint applies.

Figure data and text version
StageRecord
ObservePoint-in-time feature join: evidence as of the decision time
EvaluateRule flags 1,210 of 18,200 decision snapshots
ApplyRecord action, reason, owner, and expiry
ReconcileJoin the action to later outcomes without overwriting history
Figure 12 / 12

What the result cannot establish

What the result cannot establish — Point-in-time feature join. Interpretation boundary. Exact values are in the figure data below.
Interpretation boundary

Observed classifications do not reveal every counterfactual. The synthetic labels make arithmetic possible, but production decline data is selected by prior policy. Keep measured outcomes, assumed prevention, and unknown alternatives separate when reporting impact.

Figure data and text version
ClaimEvidence in this caseLimit
Detected target236 known synthetic positives flaggedProduction labels may be delayed or wrong
Prevented lossAssumed 49,560 USDRequires an intervention-effect assumption
Customer impact974 synthetic negatives flaggedNot every flag causes abandonment
Unobserved alternativeOutcome without the actionNeeds a valid evaluation design

Connect the result to the system

Join by both event time and availability time, then preserve the feature snapshot.

Check the population, evidence, permitted action, and actual effect together. A balanced calculation can still use the wrong population; a successful response can still leave an unknown financial outcome. The case’s numerical result applies only to its stated assumptions.

Sources and further reading

The chapter sources support the concepts and scope. They do not prescribe the synthetic model rates.

  1. PostgreSQL: transaction isolation
  2. scikit-learn: model evaluation metrics