Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/mukybaby/Simple-Shop-Sim/llms.txt

Use this file to discover all available pages before exploring further.

Every session of Simple Shop Sim is structured around a day-by-day loop. Days are short, but the stakes climb steadily: rent grows with every passing day, more customers flood through the door, and the gap between a well-stocked shop and an empty one widens fast. Understanding how time advances is key to building a lasting business.

Starting and ending a day

Each day follows a strict open → trade → close sequence driven entirely by your menu choices:
1

Open the shop (option 2, when closed)

Choosing option 2 while the shop is closed calls open_for_day(). The shop’s open flag is set to True and a fresh customer queue is generated for the day.
2

Serve all customers (option 2, repeated)

Each press of option 2 while the shop is open pops one customer from the queue. Continue until the game reports “There are no more customers for the day.”
3

Close the shop (option 3, when open)

Choosing option 3 while the shop is open calls end_day(shop.day * 10). This deducts rent, sets shop.open = False, and increments shop.day by 1.
The shop starts the following “day” in a closed state, ready for restocking before you open again.

Rent calculation

Rent is charged once per day when you close the shop. The formula is straightforward:
def end_day(self, rent: int):
    self.open = False
    self.cash -= rent
    self.day += 1
Rent passed in is always shop.day × 10, calculated at close time:
DayRent
1$10
2$20
3$30
5$50
10$100
By Day 10, rent alone equals your entire starting cash. You must be generating meaningful revenue well before that point or the game becomes unwinnable.

Customer scaling

The number of customers generated each day scales linearly with day × 3:
def make_customers(day: int, shop: Shop, customers_name: list[str]) -> list[Customer]:
    total_customers = day * 3
    ...
DayCustomers
13
26
39
515
1030
More customers means more potential revenue — but also more stock consumed per day. A shop that starts Day 5 with only 5 units of each item will sell out quickly, leaving 10+ customers unable to buy anything.

Long-term survival tips

Staying profitable over many days requires planning beyond just “buy low, sell high”:
  • Prioritise Potions ($25). Potions have the highest per-unit revenue. Even a single Potion sale covers two and a half days of early rent.
  • Don’t over-restock cheap items early. Apples and Bread attract customers with lower budgets, but the 55–10 margin per sale barely moves the needle compared to rent growth. Stock them enough to avoid empty shelves, but not so heavily that you drain cash before opening.
  • Scale your restock with day count. On Day 1 you need to serve 3 customers; on Day 5 you need to serve 15. Work backwards from the expected queue size when deciding how many units to buy before opening.
  • Keep a rent reserve. Before opening each day, verify your cash balance covers at minimum day × $10. If a bad run of customers leaves you below that threshold, you will close the day in the red.
  • Restock mid-day when needed. Option 1 (Restock) is available even while the shop is open. If a popular item sells out faster than expected, you can top it up between customer interactions.
You can quit at any time without completing the day. Choose option 4 (“Quit”) when the shop is open, or option 3 (“Quit”) when the shop is closed. Simple Shop Sim has no save system — all progress resets when you exit, so each run starts fresh from Day 1.

Build docs developers (and LLMs) love