Customer simulation tells you how a population reacts. 60KBC runs the entire situation: every party with its own incentives, the conditions they are all operating under, the channels between them and the clock they are on. You see what the system does, not what one side feels.
Change any one and the rest respond. That is the whole point — a campaign is not a population reacting to a price, it is a system settling into a new state.
Depth, framing, channel, send hour, expiry and targeting — each variant as a real message with a real subject line.
Ten thousand agents in segments, each with a persona, price sensitivity, loyalty, fatigue and an attention window.
Promotional pressure that raises the bar your offer has to clear, and gets compared against before anyone accepts.
Consumer confidence, underlying demand, cost pressure and seasonality — plus live events you switch on.
Email against push, delivery, attention windows by hour, the message that lands while nobody is looking.
Expiry windows, the deadline on your inventory, and the next campaign this one has already made harder.
Twenty percent off clears the inventory and looks like a win. Buried inside that number are the customers who would have paid full price, the segment that just learned to wait for the next discount, and the people who left the list because a push landed at eleven at night.
None of it shows up until the quarter after.
How much of the revenue came from customers who were going to buy anyway — measured per segment and priced in real money.
How many people this campaign teaches to hold out for the next one. The cost that compounds across every campaign after it.
The hour your specific audience is actually reachable on each channel, and what moving the send is worth in reach.
A customer-twin platform models a population reacting to a decision: one party, one moment. Useful, and not the question an operator is actually asking. What they need to know is what the system does once every other party has responded — the competitor who matches your price, the segment that learns to wait, the channel that was never going to reach anyone at that hour.
Four ways in — a written brief, an industry template, a blank sheet, or a campaign you already ran. Each one ends with the same thing: a complete world where your offer, your customers, your competitors, the market and the channels between them all move at once.
Segments carrying a share of base, price sensitivity, loyalty, discount fatigue, age range, preferred channel and two attention peaks. Add, rename, delete and tune any of them. Nothing connects to your systems — synthetic customers are built from segment behaviour, never from records.
Consumer confidence, competitor promotion, cost pressure and underlying demand, plus live events you switch on: a competitor sale, a holiday week, weather disruption, a cost spike. Conditions change how deeply each segment has to be discounted before it moves at all.
Variants across discount depth, framing, channel, send hour, expiry window and targeting — each showing the subject line it would actually send. The point is never to evaluate one offer, it is to see which one survives contact with your customers.
Ten thousand journeys flow through delivery, attention and decision, then settle into five outcomes. You get a ranked verdict, a revenue bridge from gross to net, a send-time heatmap, a segment table and individual customers explaining themselves. Ranked by revenue net of dilution, not by units moved.
Paste the headline numbers from a campaign you already ran — recipients, opens, purchases, the discount, the channel, the hour. The platform models that exact campaign against an uncalibrated population, measures how far off it was, and solves for two correction factors that apply to every run afterwards.
Until that happens every screen reads Uncalibrated. After it, the badge carries the campaign's name.
Aggregates only. No customer records are uploaded, stored or required.
Distressed inventory on a deadline, with frequent flyers who must not be trained to wait.
Unsold room-nights, a corporate rate to protect, loyalty members watching the price.
Stock that must move before the next collection lands, without teaching full-price buyers to hold off.
Slow presale where core fans already paid full price and casual buyers are still undecided.
This is the actual interface, loaded with example briefs. Type your own situation, pick a template, build a population from scratch or calibrate against a past campaign — then run it.
Press Amaze me. It writes a brief in character, then reads it back and shows which phrase every extracted fact came from.
Switch on a competitor sale on the market screen and run it again. Watch the same offer stop working.
Move a variant's send hour to eleven at night. The unsubscribes show up in the readout.
Compare gross against net. The variant that moves the most inventory is usually not the one that makes the most money.
The demo runs on illustrative behaviour models. Production populations are calibrated against your own campaign history first, and the readout is relative: it ranks variants and finds the ones that destroy margin. It does not predict absolute revenue.
A business can see the first move — send the offer, clear the inventory. It cannot see the second: how its own customers adapt, what the discount quietly cost, what the next campaign now has to overcome. 60KBC exists to make that second move visible before the first one is taken.
We rank options and find the ones that destroy margin. Anyone promising an exact revenue number out of a simulation is selling you something else.
No run is credible until the population reproduces a campaign that already happened. The badge stays amber until it does.
Aggregates in, simulation out. No integration, no customer records, no IT project standing between you and the first answer.
Bring a campaign you are about to run and one you already ran. We calibrate the second and simulate the first.
Send us email for engagement