Instruction file imported from marshackVB/discreet_choice_blog (
.cursor/rules/writing-conventions.mdc). Copyright stays with the author.
description: Voice, structure, and honesty rules for the blog posts globs: **/*.md alwaysApply: false
Writing conventions
Lead with the retail question, not the model. The model appears because the question demands it, never as a topic in its own right.
The post must stand alone without the notebook. Derivations live in the notebook; the post carries the narrative.
Serve both audiences in the main line rather than quarantining the math in an appendix nobody reads. Business readers need the decision and its consequence; technical readers need the mechanism.
Limitations are content, not caveats. IIA failing, the outside option being the least identified quantity in the model, and counterfactuals being extrapolation all belong in the body where they move the argument forward. A showcase that only shows wins reads like marketing and loses the technical audience.
State plainly and early when data is simulated, and show the generating process.
Do not claim results the data cannot support. Nothing estimated on the Jain yogurt data may claim category volume loss, because that data is purchase-conditional and has no outside option. For the same reason, never express the assortment decision in revenue or profit terms on that data: with every displaced unit reassigned to a survivor, the arithmetic rewards deleting popular cheap brands and reports that cutting the largest brand in the category raises revenue.
Distinguish a stockout from a delisting throughout, and do not let the words drift. A stockout asks what a shopper who came to buy the category does when one brand is missing, which is exactly what purchase-conditional data describes. A delisting also changes whether the trip happens at all, which it does not.