Working note · a model taken apart
Model 3 of the Relmi pricing report turned Sinai's purchase history into a transition matrix, walked it forward twelve steps, swapped the prices, deleted one column, and drew a curve over a number it did not have. Every figure below is computed on this page from the same matrix, so you can move the parameter and watch what it does.
Here is one real Sinai payer's first two weeks. On the day they first paid they bought a $2.99 pack. Two days later, another $2.99. On day 5 a $12.99. Then nothing for the rest of the fortnight.
The model throws away almost all of this. It does not keep the dates, the gaps, the country, or the amount actually paid. It keeps only the order of packs, and it gives each pack a number: 1 for $2.99, 2 for $12.99, 3 for $39.99, 4 for $109.99. So this payer becomes the sequence 1, 1, 2 and then a stop, meaning the sequence ended. If someone buys two $2.99 packs on the same day, that day still counts once, as a single 1.
Do that for every payer who has had 14 days since their first purchase. That is 1,270 people, and 1,270 sequences. Here are eleven of them, in no particular order.
One summary of the pile is worth having before going on: how long the rows are. Count the coloured squares in each of the 1,270 rows, then count how many rows have one square, how many have two, and so on. That gives the chart below. It is not the eleven rows above rearranged; it is a count over all 1,270.
That pile of 1,270 sequences is the whole input. Everything from here on is arithmetic on it.
Now ask one question of the pile: each time someone had just bought a given pack, what did they buy next? To answer it, walk along every sequence and look at each pair of neighbours. Take five short sequences and do it by hand:
| sequence | pairs it contributes |
|---|---|
| 1 → stop | after a 1: stop |
| 1 → 1 → stop | after a 1: a 1 · after a 1: stop |
| 1 → 2 → stop | after a 1: a 2 · after a 2: stop |
| 2 → 2 → stop | after a 2: a 2 · after a 2: stop |
| 1 → 1 → 1 → stop | after a 1: a 1 · after a 1: a 1 · after a 1: stop |
Tally the "after a 1" lines: a 1 came next four times, a 2 once, stop four times. Nine events. So on these five payers, after a $2.99 pack the next thing was another $2.99 four times out of nine, a $12.99 once out of nine, and nothing four times out of nine. Write that as a row: 44% · 11% · 0% · 0% · 44%. Do the same for "after a 2", "after a 3", "after a 4", and you have a table with four rows, one per pack you might have just bought, and five columns, one per thing that might come next.
That table is the transition matrix. The name is the only hard part. Each row answers "I just bought this, what next?", and each row adds up to 100% because something always comes next, even if it is nothing. Here it is on all 1,270 payers:
Read the first row. Across all 2,016 times someone had just bought a $2.99 pack, another $2.99 followed 823 times, which is 40.8%. A $12.99 followed 128 times, 6.3%. Nothing followed 1,059 times, 52.5%. That is the sentence in the report, "two in five $2.99 buyers buy $2.99 again", and now you know exactly where the number comes from.
One more small table is needed: what people buy first. Of 1,270 first purchase-days, 85.4% were a $2.99, 13.2% a $12.99, 1.3% a $39.99, 0.1% a $109.99.
Now the model uses the table the other way round: as a rule for what a crowd does next. Imagine 1,000 new payers. Use the first-purchase shares to place them: 854 buy a $2.99, 132 a $12.99, 13 a $39.99, 1 a $109.99. Add up what they paid: 854 × 2.99 + 132 × 12.99 + 13 × 39.99 + 1 × 109.99 ≈ $4,894 (the table below uses the exact shares rather than these rounded head-counts). That is step 1.
Step 2. Look at the 854 who just bought a $2.99 and apply row 1 of the table to them: 40.8% of them, 349 people, buy another $2.99; 6.3%, 54 people, buy a $12.99; 52.5%, 449 people, leave. Do the same to the 132 who just bought a $12.99 using row 2: 25 step down to a $2.99, 55 buy another $12.99, 7 go up, 45 leave. Add everyone up by what they are now buying, multiply by the prices, and that is step 2's money. About half the crowd has left already.
Step 3 does it again to whoever is left, using the same table. And step 4, and so on. The table never changes, and it never asks how many steps a person has already taken. After twelve steps almost nobody is left, so the model stops. Total money divided by 1,000 is the model's revenue per payer; take off the 15% store cut and it is $11.97. The table below shows every step for whichever scenario you pick.
Notice what this is and is not. It is the average behaviour of 1,270 real people, replayed on 1,000 imaginary ones who all obey the same table. Every one of the 1,000 has the same 52.5% chance of leaving after a $2.99, on step 2 and on step 9 alike. The real 1,270 were nothing like that: 794 left after one day and a handful kept buying for two weeks. The table reproduces their average and forgets their variety. Hold that thought for section 7.
Scheme A sets the four ranks at $1.99, $8.99, $21.99, $89.99. The model keeps the matrix, keeps the start vector, keeps the walk, and multiplies the crowd by the new prices. Nothing about who buys, how often, or when they stop changes. Pick A, prices relabelled in section 3: the bars and the step table are identical to Sinai's, only the money column changes. It lands at $7.88 net, which is the report's A4 line, "the $1.99 entry left repeatable".
So "A4 nets a third less than Sinai" means only this: $1.99 is a third less than $2.99, $8.99 is 31% less than $12.99, and the same purchases at those prices sum to a third less. It is arithmetic on the price list, weighted by today's purchase mix. It is not a prediction that fewer or more people would buy.
"The small pack can be bought once" means no sequence may return to rank 1 after its first purchase. In the table that is the first column, "next: a $2.99": every number in it is set to zero. But those people have to go somewhere. In section 3's step 2, 349 of the 854 wanted another $2.99 and are now refused. The model has no data on what they do, so it invents a number m, the migration share: a fraction m of them buy the next pack up instead, and the rest, 1 − m, leave. The same edit applies to the 25 who would have stepped down from a $12.99: m of them stay on $12.99, the rest leave. Move the slider and watch the two rows.
Now the walk runs on the edited matrix. At m = 0 all 349 refused people leave: after step 2 only 129 of the 1,000 are still buying, against 503 under Sinai, and the walk nets $5.67. At m = 1 all 349 buy an $8.99 pack instead, and from then on the model treats them as people who just bought the second rung, so it applies row 2 to them: 60.2% buy the second rung again next step (the original 41.6% plus the 18.6% who used to step down and now cannot), and they keep doing that at the same rate. That is why the m = 1 walk nets $17.25, more than Sinai: it does not only convert one $2.99 into one $8.99, it turns a small-pack repeater into a $12.99-style buyer for the rest of the chain.
The two things m smuggles in
First, that a person refused a $2.99 pack buys an $8.99 one with some fixed probability, the same in India and in the US, the same for the payer on their second day and their tenth. Second, that having done so once, they behave like the people who chose $12.99 unprompted. Neither has been observed on any app, and the second is doing most of the work at high m.
Run the walk at m = 0, 0.05, 0.10, … 1.0 and plot net revenue per payer against m, one line per ladder. Sinai has no rank-1 refusal, so it is a flat line at $11.97. The "break-even migration" the report quoted is where a ladder's line crosses Sinai's: 65% for A, 45% for B. Ladders with five rungs (A2, A3) got the extra rung by splitting row 2 in half, so the inserted $4.99 or $9.99 rung inherits half of the $12.99 buyers' behaviour and half their inflow.
Read as a chart of evidence, the left edge is the only part with any data behind it, and what it says is plain: delete the small-pack repeat and the chain earns half. Everything to the right is the value of m, which the report chose to present as a curve rather than as an unknown.
Memorylessness. The chain gives every payer standing on rank 1 the same 52.5% chance of stopping, at every step. The sequences say otherwise: 794 of 1,270 payers stopped after a single day, while 60 bought on seven days or more. A pooled matrix reproduces the mean of that mixture and none of its shape. It cannot tell a payer who will buy ten times from one who will buy once, which is exactly the information a pricing decision would want.
Same people, new prices. Section 4 is only arithmetic because the matrix is fixed. Whether $1.99 brings in more first purchases than $2.99, or $8.99 fewer second purchases than $12.99, is not in the model; the crowd is assumed to walk the same paths whatever the tags say.
Transplanted rows. Section 5 moves a refused repeater onto row 2 and section 6 gives a $4.99 rung half of row 2. Row 2 was measured on the people who chose $12.99 on their own. Handing their behaviour to someone who was pushed there, or to a rung nobody has bought, is the step with no data under it at all.
The level was wrong before any of that. The chain collapses a day's purchases to one, and prices each rank at its US list price. Counting the same 1,270 payers directly, without the chain, gives 3.4 purchases and $18.61 net in the first 14 days, against the chain's 2.1 and $11.97. So the "Sinai today" line, the one thing the model was supposed to have measured, was low by a third.
| first 14 days, 1,270 mature Sinai payers | the chain | counted directly |
|---|---|---|
| purchases per payer | 2.1 purchase-days | 3.4 purchases |
| net revenue per payer | $11.97 | $18.61 |
| of which small-pack repeats | not separable | $5.21, 28% |
What the method can honestly do here
Describe today's paths. The transition table is a fair summary of what happens after each pack at today's prices, and it is on the report as exactly that. The walk adds nothing the direct count does not give better, and the moment a price or a rule changes, the matrix is no longer about the people it was measured on. A Markov chain earns its keep when the rule really is memoryless and the transitions really are stable under the change you are studying. Neither holds for a price ladder.