-
-
SimSquare: Rapid data-driven testing for SMBs
-
SimSquare generates varied personas depending on the transaction history
-
The personas generated affect the simulation result - the persona that hates pumpkin spice latte gives low rating for pumpkin spice latte
-
SimSquare simulates item quality: the stinky tofu (left) is not as suitable as the veggie scramble (right). It receives worse ratings.
-
SimSquare simulates the effect of pricing: for the same item, higher price (left, $19) receives worse ratings than lower price (right, $6).
-
This is the form for user input, which allows store owners fine-grained control over the potential items they add to the menu.
-
Store info page (past transactions are fetched from Square orders API). This data is used to generate the personas.
Inspiration
By talking to small and medium-sized business (mostly cafes and restaurants) owners, we observed that many of them faced challenges in making customer-facing decisions with confidence. What seasonal menu item should I choose to grab the attention of people passing by the store? What should I write on the blackboard hanging on the shop window? In today’s world where trends quickly evolve, it is difficult to know how customers will react to a store's change, like adding a new menu item. Moreover, it is difficult for small businesses to engage in consumer research because
- Unlike large firms with sufficient resources for market research, small businesses do not have the time and money.
- In the real world, A/B testing is expensive and risky as it takes much longer to gather data and poor results could lead to lost customers.
Inspired by these problems, we asked ourselves what if we can simulate the real world based on data and help SMB owners test their new ideas efficiently and at scale?
What it does
SimSquare is a LLM-based (powered by Google AI, PaLM API) simulator where users can receive simulated reviews from various personas for a new menu item. In the application, we have created a mock cafe with typical cafe menus and a history of mock orders (fetched from Square API). The user can start a simulation for a new menu item after providing the menu item name, description, and price. The simulation takes recent order history and information about the store into account and generates various personas of customers. Then, each persona leaves a rating and short review about the new menu item. Based on these output, the user can feel the general feelings towards the new menu as well as how different personas feel about it.
In the images posted in the project page, we have shown comparisons of simulation results (5th and 6th item in carousel). The fifth image shows that bad menu item (left, stinky tofu) has lower rating of 2.6 than good menu item (right, veggie scramble) which received 3.6. The sixth image shows that for the same item, one with higher price (left, $19) receives lower rating of 2.4 than the one with lower price (right, $6) which has received rating of 2.8.
The fourth item in carousel shows the effect of generated persona on the simulation result. The persona (Mariah) does not like coffee, especially pumpkin spice latte. She gives lower rating of 2 than the average rating as the result of simulation.
How we built it
Web application
We used Next.js for the web application and Firestore real-time updates to update simulation state in real time.
Backend Service
Backend service was built with Golang deployed to AWS. We used Firestore as the database.
Simulator
The Simulator was written in Python. It polls Firebase to look for any simulation that is queued, and if there is one that is queued, it starts the simulation. The simulation leverages a large language model (LLM) powered by Google AI's PaLM API. The simulation runs in following steps:
- Simulator pulls store information and Square orders data from the Square API.
- Simulator calls PaLM API to generate personas based on data from step 1.
- Simulator uses the personas from step 2 along with the new menu item to simulate customer interactions where LLM behaves as an agent of the persona. Each persona reviews the new menu item and provides a rating.
What's next for SimSquare
In terms of product, the next steps are:
- Support simulation of more scenarios, such as new promotional strategies or A/B testing two new menu items
- Improve visualization of the simulation results to make it easier to extract insights.
In terms of core technology, the next steps are:
- Include more metadata (weather, location, statistics about the city it is in, information about nearby stores) about the store for the simulation
- Processing Square transaction data before using it for simulation (as opposed to using raw transaction data from Square’s orders API)


Log in or sign up for Devpost to join the conversation.