Skip to content

JonbarIstanbul (UTC+3)

[ 01 ] Decision rehearsal

Rehearse your price change before customers see it.

Run 3-5 versions of your next decision side by side in the same synthetic market. See which one wins, why, and how far to trust it.

Run · Wireless headphones, Q4

Sample scenario · synthetic data
Winner · B+5.4% vs. A
Gross profit · 80% range
WorldValue80% range
A2,087,395baseline
B (Winner)2,200,9182,133,428 – 2,256,772
C2,071,0712,019,176 – 2,125,434
Weekly · 12 weeksGross profit · Weekly · 12 weeks
Engine SIM-CORE v0Seed 42Not yet backtested
  • 013-5 versions per decision
  • 02v0: classical demand models, no RL
  • 03Pilot: 2 weeks · one campaign
  • Price elasticity
  • Promo lift
  • Pack framing
  • Pull-forward
  • Stockpiling
  • Post-promo dip
  • Cannibalization
  • Competitor price matching
  • Per-channel baselines

[ 03 ] The problem

You picked one price. You'll never see the other worlds.

Every price change, every campaign mechanic: you ship one version and the rest stays unknown. Jonbar runs the versions you didn't ship.

And the decision isn't made in a vacuum. Shoppers see your offer next to competitors, in a list a platform has ranked; what reaches you is what's left after commission and shipping.

US CPG data · not marketplace sellers

[ 04 ] The synthetic market

We don't ask anyone what they'd buy. We rebuild your market from what they did buy.

A synthetic market is a copy of your market, built from your own sales history, that reacts to a decision the way your real market has reacted before. Every version of your decision is played out in it, side by side, before a single real customer sees it.

How the synthetic market is built

  1. 01 · Read

    Your sales history.

    Product × day sales, prices, campaigns and unit cost. No personal customer data: what people bought is enough, who they are is not needed.

  2. 02 · Calibrate

    How your market reacts.

    Price elasticity, promo lift, pull-forward, the dip after a campaign, sales your other products lose. Learned from your history; where it is thin, blended with published ranges and labelled so.

  3. 03 · Multiply

    200 plausible markets.

    Each version is run 200 times. In every run, sales fluctuate the way real weeks do; where your data can't pin an effect down, each run also tries a different plausible value for it.

  4. 04 · Play

    Same markets, every version.

    Every version meets the same 200 markets, so the gap between versions comes from the decision, not from luck. You get a range, not a single number.

Why not ask an AI to play your customers?

Asking a language model to play your customers is fast, but research keeps finding it a weak stand-in for real behaviour. Sales history is the behaviour itself.

  • 40.8/100

    the best language models' score at simulating human behaviour across 20 datasets.

    Source: SimBench, ICLR 2026

  • r = 0.20

    average correlation between people and their AI twins, even when each twin was built from 500+ of that person's own answers.

    Source: Peng et al., 19 pre-registered studies, 2025

  • 200

    runs per version in Jonbar's synthetic market, each calibrated to your own sales, with no language model in the loop.

    Source: Jonbar engine v0

We test the engine on markets whose answer we know.

Before any real decision, we generate synthetic sales histories with a price response we set ourselves, and check that the engine finds it again. Only then do we move on to the harder test: blind runs on real past decisions.

[ 05 ] Built for

Teams that set prices where shoppers compare.

  • [ 01 ]Now

    Marketplace and DTC sellers

    Who
    Sellers on Trendyol, Hepsiburada and Amazon EU, and DTC brands.
    Decisions
    Price, campaign, bundle.
    Why now
    No budget for live tests and a campaign calendar that never stops.
    Read more : Marketplace and DTC sellers
  • [ 02 ]Next

    Brands

    Who
    Consumer brands with a launch calendar.
    Decisions
    Launch, bundle, campaign.
    Why now
    Dozens of launches a year, and every test is slow and expensive.
    Read more : Brands
  • [ 03 ]Now

    Restaurant chains

    Who
    Chains with 40+ branches that sell on food delivery platforms and set prices centrally.
    Decisions
    Menu price, platform campaign, branch-by-branch differences.
    Why now
    Inflation forces frequent price rises, and what's left after commission is hard to see.
    Read more : Restaurant chains
  • [ 04 ]Later

    Marketplaces and platforms

    Who
    Marketplaces and food delivery platforms.
    Decisions
    Campaign design, a campaign preview for their sellers.
    Why now
    A tool that helps their sellers decide before a campaign goes live.

[ 06 ] How it works

Six steps from your sales history to a decision you can defend.

Every panel below is real engine output from one sample run: ground coffee sold on two channels, decision on one of them.

Sample scenario · synthetic data · sim-core v0

One loop: see, rehearse, choose, learn.

  1. See
    • 01 Connect
  2. Rehearse
    • 02 Fork
    • 03 Simulate
    • 04 Compare
  3. Choose
    • 05 Explain
  4. Learn
    • 06 Ship and measure
  • SeeIn pilot
  • RehearseIn pilot
  • ChooseIn pilot
  • LearnBuilding
  1. Upload a CSV: date, SKU, units, price, unit cost, campaign flag. At least 12 weeks. No customer data.

  2. Define 3-5 versions of the decision. Here: keep as is, a price change, a 10% campaign in weeks 3-4.

  3. Each world runs on the same market: price elasticity from your history plus a prior, promo lift, after-window dip, cannibalization.

  4. Totals per world, with a range under the model's own assumptions.

  5. Where the result comes from: units in the campaign window, the dip after it, cannibalized units, discount cost.

  6. A winner per metric, or "no clear winner" when the ranges overlap. Not yet backtested, and labelled so.

sales_history.csv · 58 rows · synthetic
dateproduct_idunitsnet_priceunit_costcampaignchannel
2026-09-07CF-250392250.0140—mkt_a
2026-09-14CF-250747200.0140discountmkt_a
2026-09-21CF-250388250.0140—mkt_a
2026-09-28CF-250404250.0140—mkt_a
2026-09-07CF-250119250.0140—own_site
2026-09-14CF-250120250.0140—own_site
2026-09-21CF-250118250.0140—own_site
2026-09-28CF-250135225.0140—own_site

Whole file: 58 rows · 2 channels · 2 campaign rows · 2026-03-16 → 2026-09-28

own history: CF-250 after-window effect and extra lift read from its past campaigns (mixed with the prior); other campaign dynamics are prior-based

  • Two channels · one decision
  • 8 weeks
  • 3 worlds
  • seed 42
  • 80% range
  • Not yet backtested
  1. 01 Connect

    Upload a CSV: date, SKU, units, price, unit cost, campaign flag. At least 12 weeks. No customer data.

    sales_history.csv · 58 rows · synthetic
    dateproduct_idunitsnet_priceunit_costcampaignchannel
    2026-09-07CF-250392250.0140—mkt_a
    2026-09-14CF-250747200.0140discountmkt_a
    2026-09-21CF-250388250.0140—mkt_a
    2026-09-28CF-250404250.0140—mkt_a
    2026-09-07CF-250119250.0140—own_site
    2026-09-14CF-250120250.0140—own_site
    2026-09-21CF-250118250.0140—own_site
    2026-09-28CF-250135225.0140—own_site

    Whole file: 58 rows · 2 channels · 2 campaign rows · 2026-03-16 → 2026-09-28

    own history: CF-250 after-window effect and extra lift read from its past campaigns (mixed with the prior); other campaign dynamics are prior-based

    • Two channels · one decision
    • 8 weeks
    • 3 worlds
    • seed 42
    • 80% range
    • Not yet backtested
  2. 02 Fork

    Define 3-5 versions of the decision. Here: keep as is, a price change, a 10% campaign in weeks 3-4.

    ABC
    • A Keep as is
    • B CF-250 price 250 → 265
    • C CF-250 −10% · wk 3–4
    • Two channels · one decision
    • 8 weeks
    • 3 worlds
    • seed 42
    • 80% range
    • Not yet backtested
  3. 03 Simulate

    Each world runs on the same market: price elasticity from your history plus a prior, promo lift, after-window dip, cannibalization.

    Sample scenario: weekly units for worlds A, B and C over 8 weeks, with 80% ranges
    • Two channels · one decision
    • 8 weeks
    • 3 worlds
    • seed 42
    • 80% range
    • Not yet backtested
  4. 04 Compare

    Totals per world, with a range under the model's own assumptions.

    Units by world · 8 weeks
    WorldValue80% range
    A3,823baseline
    B3,4633,293 – 3,632
    C (Winner)4,2424,051 – 4,396
    Three metrics: total, difference vs. A, range
    WorldTotalvs. ARange
    Gross profit
    A420,516——
    B432,809+12,293−6,120 … +29,272
    C432,053+11,537−1,236 … +26,749
    Volume
    A3,823——
    B3,463−360−530 … −191
    C4,242+419+228 … +573
    Revenue
    A955,719——
    B917,556−38,163−74,676 … +4,500
    C1,025,896+70,177+28,087 … +116,661
    • Two channels · one decision
    • 8 weeks
    • 3 worlds
    • seed 42
    • 80% range
    • Not yet backtested
  5. 05 Explain

    Where the result comes from: units in the campaign window, the dip after it, cannibalized units, discount cost.

    World C · where the result comes from
    Units in campaign window
    Dip after the window
    Cannibalized units
    Discount cost
    Gross profit vs. A

    own history: CF-250 after-window effect and extra lift read from its past campaigns (mixed with the prior); other campaign dynamics are prior-based

    • Two channels · one decision
    • 8 weeks
    • 3 worlds
    • seed 42
    • 80% range
    • Not yet backtested
  6. 06 Ship

    A winner per metric, or "no clear winner" when the ranges overlap. Not yet backtested, and labelled so.

    Decision · winner by metric
    • Gross profitNo clear winnerB +12,293 · range −6,120 … +29,272 · crosses zero
    • VolumeCWinner
    • RevenueCWinner
    • Two channels · one decision
    • 8 weeks
    • 3 worlds
    • seed 42
    • 80% range
    • Not yet backtested

[ 07 ] Try a rehearsal

Pick a decision. Pick what you care about.

Scenario
Optimise for

The versions

  • AKeep as is
  • BPrice +8%
  • C20% off as a pack, weeks 5-6
Sample scenario · synthetic dataSIM-CORE v0 · Not yet backtested

Gross profit by world · 12 weeks

2,200,918Winner · B

Gross profit by world · 12 weeks
WorldValue80% range
A2,087,395baseline
B (Winner)2,200,9182,133,428 – 2,256,772
C2,071,0712,019,176 – 2,125,434

Why

Gross profit: Winner B, 2,200,918.

On gross profit, world B leads world A by +5.4%. World C sells the most during the campaign window (1,288,900 revenue), but world B keeps the most gross profit over 12 weeks (2,200,918).

Engine notes (3)
  • ! user-set: HP-100 elasticity was entered, not estimated
  • ! user-set: HP-200 elasticity was entered, not estimated
  • ! prior-based, no own campaign history: HP-100

[ 08 ] Decision-time check

Before you join the campaign, see what's left.

The platform suggests 15% off. After the discount, commission, shipping and product cost, how much stays with you per order? And how many more orders would you need to come out even?

Without the campaign, TRY 175 stays with you per order. With it, TRY 52. To earn the same, this campaign needs 3.4× the orders.

We're building this check now. It will use the same economics layer as the rehearsal, so the check and the worlds will agree.

Building

Decision-time checkSample scenario · assumed commission and shipping

Platform campaign: 15% off · Wireless headphones

  1. List priceTRY 1,000
  2. Discount−TRY 150
  3. Commission (assumed 18%)−TRY 153
  4. Shipping (assumed)−TRY 60
  5. Product cost−TRY 585
  6. Left per orderContribution marginTRY 52

Without campaign: TRY 175

Extra orders needed+237%3.4× the orders

[ 09 ] Goal to decision

Write the goal. Get the three best plans.

Instead of drafting every version yourself, you state what you want and the limit you won't cross. Jonbar will search the levers it models and bring back the three plans that fit best, each with its range and the reason it ranks where it does.

See the product
Sample goalBuilding

Your goalRaise contribution margin by 8%, without losing more than 3% of volume.

585 candidate plans · 85 meet the goalSample scenario · seeded model, not engine output
  1. Plan 1Price +10% · 10% off for 1 wk
    Contribution
    +21.7%
    Volume
    -2%
  2. Plan 2Price +8% · 5% off for 1 wk
    Contribution
    +19.2%
    Volume
    -2.4%
  3. Plan 3Price +6% · 5% off for 1 wk
    Contribution
    +14.7%
    Volume
    -0.8%

[ 10 ] Use cases

Campaigns and prices today. The rest, labelled as what it is.

  1. [ Use case 01 ] Promotions

    Know which campaign still pays after it ends.

    Rehearse the campaign you've planned against other mechanics, the same discount framed as a pack or a smaller discount, on your own sales history, and see the profit each leaves, including the weeks after the campaign.

    Whose problem
    Marketplace sellers and DTC brands planning a peak-season campaign. The campaign week looks great in revenue; nobody knows what the following weeks cost.
    Gross profit · 20% off vs. pack vs. 10% off · 12 weeksSample scenario · synthetic
    Gross profit · 20% off vs. pack vs. 10% off · 12 weeks
    WorldValue80% range
    A2,028,329baseline
    B2,070,6542,009,220 – 2,119,036
    C (Leading, not clear)2,084,9622,031,075 – 2,136,867
    A
    Planned: 20% off
    B
    20% off as a pack, weeks 5-6
    C
    10% off, weeks 5-6

    In this sample run, the pack sells the most, but on gross profit the three are too close to call.

    ! Prior-based: the pack effect comes from a published range, not from your history.

  2. [ Use case 02 ] Pricing

    Raise the price. See the volume you'd lose first.

    Compare keeping your price, a small increase and a larger one: units, revenue and gross profit per version, estimated from your own price history.

    Whose problem
    Sellers who must pass on cost increases and don't know how far they can go. On a marketplace you can't show two prices for the same product to test it live.
    Units · keep vs. +5% vs. +10% · 12 weeksSample scenario · synthetic
    Units · keep vs. +5% vs. +10% · 12 weeks
    WorldValue80% range
    A (Winner)5,028baseline
    B4,7934,665 – 4,921
    C4,5754,450 – 4,701
    A
    Keep as is
    B
    Price +5%
    C
    Price +10%
  3. [ Use case 03 ] Multi-channel

    A campaign on one marketplace shouldn't blur the other.

    Run the decision for the channel where it happens. Your other channel's history stays a clean baseline.

    Whose problem
    Sellers on two marketplaces plus their own site. If channels are summed, a campaign on one leaks into the other's baseline.
    Units by world, one channel · 8 weeksSample scenario · synthetic
    Units by world, one channel · 8 weeks
    WorldValue80% range
    A3,823baseline
    B3,4633,293 – 3,632
    C (Winner)4,2424,051 – 4,396
    A
    Keep as is
    B
    Price +6%
    C
    10% off, weeks 3-4
  4. [ Use case 04 ] BundlesPartly available

    "2 for x" or "x/2 each"? Same price, different week.

    v0 compares pack framing against a plain unit discount at the same unit price. Cross-product bundles are on the roadmap.

    Whose problem
    Sellers choosing how to present a multi-buy offer.
    Revenue · per-unit discount vs. same discount as a pack · 12 weeksSample scenario · synthetic
    Revenue · per-unit discount vs. same discount as a pack · 12 weeks
    WorldValue80% range
    A5,779,371baseline
    B (Winner)5,966,4205,799,073 – 6,125,827
    C5,740,6895,607,283 – 5,874,451
    A
    Planned: 20% off
    B
    20% off as a pack, weeks 5-6
    C
    10% off, weeks 5-6

    ! Prior-based: the pack effect comes from a published range, not from your history.

  5. [ Use case 05 ] LaunchesRoadmap

    Pick the launch price before the launch.

    For a new product with only a few weeks of sales, Jonbar runs price versions on published ranges today, and says clearly how little of yours it has to learn from.

    Whose problem
    Brands pricing a new product with only a few weeks of sales.
    Units by world · 8 weeksSample scenario · synthetic
    Units by world · 8 weeks
    WorldValue80% range
    A640baseline
    B523468 – 570
    C (Winner)741681 – 788
    A
    Planned price
    B
    Price +10%
    C
    15% off, weeks 3-4
    • ! low-data: BL-1 has 6 weeks of history
    • ! prior-based: BL-1 elasticity is a category prior
    • ! prior-based, no own campaign history: BL-1

[ 11 ] How we know

Until it's rehearsed, your campaign is a guess.

And a rehearsal is only worth something if it's been checked against reality.

Backtest first

We publish the backtest before the claim.

Before we tell you how accurate Jonbar is, we will test it blind on past pricing and campaign decisions whose outcomes are public, and publish the result next to what a simple rule scored on the same cases. We develop the model on 26 public past decisions. The blind test set is still being assembled; it is sealed before the model runs. Until it's published, every run says "not yet backtested".

Read the methodology
Miss per iterationIllustrative · not measured
Iteration 123456

Learn Building

Every forecast is locked, then checked.

When you choose a version, its forecast is locked before it goes live. Checking it against what really happened, and writing the miss onto your scorecard and into the model, is what we're building. In a chain, the decision will roll out branch by branch in waves, so there is always a group that hasn't changed yet to compare with.

Illustrative · not a customer rollout

Illustration: 40 branches split into three waves of 14, 13 and 13, a week apart; each wave switches one week after the previous one.

[ 12 ] The market model

The whole market, layer by layer.

A decision meets shoppers, a shelf of competitors, a platform's fees and its ranking. We're building them as separate layers, because each one is calibrated with different data, and we open a layer only when there is data that could prove it wrong.

  1. CalibrationBuilding

    Every forecast will be locked at decision time and compared with the real result, so the model can be corrected.

  2. Ranking algorithmRoadmap

    How the platform's ranking responds to price, campaigns and ratings. Not modelled today; it needs ranking history to calibrate.

  3. Platform economicsBuilding

    Commission, shipping or courier share, the discount the platform funds and product cost will come off each order. Output: contribution margin.

  4. ShelfBuilding

    The competing list at the moment you decide, taken as one snapshot: prices, ratings, campaigns. How competitors react will stay your assumption.

  5. Shoppers (demand)In pilot

    Demand fitted to your own sales: price response, promo lift, pull-forward, the dip after a campaign, cannibalization.

[ 13 ] Alternatives

Four ways to test a campaign.

Four ways to test a campaign.
Live A/B testSpreadsheet forecastLLM shopper surveyJonbar
CostReal discount spendYour timeLowPilot
TimeOne campaign periodHoursMinutes2-week pilot
Risk to customersReal shoppers see bothNoneNoneNone
Competitor reactionRealManual—Simple rule
How far to trust itMeasuredUnknownUnknownBlind backtest being built; published good or bad
On a marketplaceOften not possibleYesYesYes

Qualitative comparison, no named vendors.

[ 14 ] Pilot

One campaign. Two weeks.

We first run one of your past campaigns blind and show you how close we got. Then we rehearse your next one in 3-5 versions.

What we need

12+ weeks of product × day sales as a CSV. No integration, no seller-account access, no customer data.

  1. 01A blind test on your own past campaign
  2. 02A rehearsal of your next campaign in 3-5 versions
  3. 03The why: lift, pull-forward, dip, cannibalization
  4. 04A written decision memo and review call
  1. Days 1-2Kick-off, data check
  2. Days 3-6Blind run on a past campaign
  3. Days 7-11Rehearsal: 3-5 versions
  4. Days 12-14Memo + review call

[ 15 ] Security & data

Your sales data, and nothing else.

  • [ 01 ]We never ask for customer data. Product × day sales is enough.
  • [ 02 ]Deleted on request, kept no longer than 90 days.
  • [ 03 ]Each customer's data is isolated at the database level.
  • [ 04 ]Runs use no AI language model today, so your data is not sent to one.

Pilot runs are operated by the Jonbar team; there is no self-serve upload yet.

[ 16 ] FAQ

Questions sellers ask first.

01What data do I need?

Product × day (or week) sales for the last 12 weeks or more: units, net price, list price, campaign flag and unit cost. A CSV export is enough. We never need customer names, addresses or order numbers.

02How accurate is it?

We don't know yet, and we won't give you a number before we do. We are building a blind backtest on past decisions with public outcomes: the model is developed on 26 of them, and the test set is sealed before it runs. We will publish the result, good or bad, next to what a simple rule scored on the same cases. In a pilot, we first run one of your own past campaigns blind so you can see our miss before you trust a new run.

03What does "synthetic market" mean? Do you make up data?

No invented customers, no invented sales. The market is synthetic; its behaviour is yours. We fit how your market responds (price, promotions, the weeks after) to your own sales history, then generate 200 plausible versions of the coming weeks from that fit and play every version of your decision in the same 200. Where your history is too thin to pin an effect down, we use published ranges and say so on the run.

04Isn't this just asking an AI what shoppers think?

No. Jonbar is not a survey and doesn't ask an AI to play your shoppers. It estimates how your market responds from your own sales history (price response, promo lift, the dip after a campaign) and runs your versions through that model.

05How long does it take?

A pilot takes two weeks: the blind test on a past campaign first, then the rehearsal of your next one.

06Does it work for Trendyol and Hepsiburada sellers?

Yes, that's who we're building for first: sellers on Trendyol, Hepsiburada and Amazon EU, and DTC brands. We read marketplace-funded discounts as their own column and flag them, so you can see where the price moved without your decision. We have not validated accuracy on Turkish data yet; your pilot's blind test is where that happens.

07What does it cost?

The pilot has a fixed price; we share it when we invite you from the waitlist.

08What happens to my data?

It is used only for your runs, isolated from other customers at the database level, deleted on request and kept no longer than 90 days. Runs use no AI language model today, so your data is not sent to one.

09How much of this is AI?

Less than you'd think, on purpose. v0 uses classic demand models (price elasticity, promo lift, pull-forward, post-promo dip, cannibalization) plus a simple competitor rule. We'll add more only when the backtest shows it helps.

10Can't I just A/B test the campaign?

On a marketplace you usually can't show two prices or two campaign mechanics for the same product at once, and peak campaigns come once a year. Jonbar lets you compare versions before the one real run.

11What happens after the pilot?

You keep the decision memo and the blind-test result. If it was useful, we agree on an ongoing plan for your campaign calendar; if our miss was too big, you'll know that too.

[ 17 ] Start

Run it twice. Ship the better one.

Join the waitlist

Privacy