lesson 1 of 5 · feature pipeline contractslesson 1 of 5 · feature pipeline contractslesson 1 of 5 · feature pipeline contractslesson 1 of 5 · feature pipeline contractslesson 1 of 5 · feature pipeline contractslesson 1 of 5 · feature pipeline contractslesson 1 of 5 · feature pipeline contractslesson 1 of 5 · feature pipeline contractslesson 1 of 5 · feature pipeline contractslesson 1 of 5 · feature pipeline contractslesson 1 of 5 · feature pipeline contracts
Checkpoint
One last thing before we move on. pass this to mark the lesson done, or skip and keep moving. hop to the next when you're ready.
Version a feature like code. Implement logins_30d_v1 (counts all events) and logins_30d_v2 (excludes "bot" events), compute both on the raw row and print them (f"v1 (all events): {v1}" / f"v2 (bots excluded): {v2}"). The MODEL dict records it trained on v1; serving is about to compute v2. Print the model's expectation, then the refusal: f"REFUSE: serving computes {sv} but the model trained on {tv} - retrain or serve v1". Silently 'improving' a feature under a deployed model is self-inflicted skew.