{
  "$comment": "Inputs only. Every figure rendered anywhere on this site is derived from this file by lib/economics.ts at build time. Nothing here is a result. `given` is the operator's own specification; `assumed` is not yet validated against a real month of trading and must carry a basis note — tests/economics.test.ts fails the build if one is missing.",
  "$model": "This is a buying service, not a wholesaler. A customer picks something from the shortlist, we buy it at Korean retail on their behalf, consolidate it and ship it to them wherever they are. Revenue is the service fee plus what is charged for carriage; the goods themselves are a pass-through we never mark up.",
  "given": {
    "catalogSkus": {
      "value": 240,
      "unit": "SKU",
      "label": "Catalogue size",
      "basis": "Operator's brief. Small on purpose: every SKU has to carry its own video cost, so the catalogue is a cost base rather than an asset."
    },
    "catalogVideos": {
      "value": 1847,
      "unit": "video",
      "label": "Shorts in catalogue",
      "basis": "Operator's brief. Above the three-per-SKU minimum, which is what a video-first storefront needs to avoid showing the same clip twice."
    },
    "minVideosPerSku": {
      "value": 3,
      "unit": "video",
      "label": "Minimum shorts per SKU",
      "basis": "Operator's brief. Below three a product page repeats itself within one session, which is the point at which the format stops working."
    },
    "creatorNetwork": {
      "value": 120,
      "unit": "creator",
      "label": "Creators",
      "basis": "Operator's brief. Campaigns are run through SocialSeed.ing, so the roster is a standing asset rather than a per-campaign spend."
    },
    "paymentRate": {
      "value": 0.044,
      "unit": "ratio",
      "label": "Card rate, cross-border",
      "basis": "Standard online card pricing plus the cross-border and currency-conversion surcharges that apply when the buyer is not in the merchant's country — which, here, is every buyer."
    },
    "paymentFixed": {
      "value": 0.3,
      "unit": "USD",
      "label": "Card fixed fee",
      "basis": "Standard per-transaction fee."
    }
  },
  "assumed": {
    "itemPrice": {
      "value": 18,
      "unit": "USD",
      "label": "Average item, at Korean retail",
      "basis": "What one item costs on the shelf in Korea, converted. This is what the customer is charged for the goods — the buying service does not mark the goods up, it charges for the service."
    },
    "itemsPerOrder": {
      "value": 3.2,
      "unit": "item",
      "label": "Items per order",
      "basis": "Consolidation rewards larger baskets — one carriage charge covers the whole parcel — so buying-service orders run bigger than ordinary retail ones. Still a placeholder."
    },
    "serviceFeeRate": {
      "value": 0.15,
      "unit": "ratio",
      "label": "Service fee on goods",
      "basis": "What is charged for finding, buying, checking and consolidating. The visible price of the service and the number a customer will compare against a rival agent."
    },
    "shipCharged": {
      "value": 32,
      "unit": "USD",
      "label": "Carriage charged to the customer",
      "basis": "A single blended figure standing in for a table that really varies by destination and weight. Set above cost deliberately; the model below shows why it has to be."
    },
    "shipActual": {
      "value": 22,
      "unit": "USD",
      "label": "Carriage actually paid",
      "basis": "Blended international rate for a consolidated parcel of this size. Japan is far cheaper than Mexico; a single figure hides a spread that pricing will eventually have to face."
    },
    "domesticShip": {
      "value": 2.5,
      "unit": "USD",
      "label": "Korean domestic leg",
      "basis": "Getting each purchase from the Korean seller to the consolidation point. Charged per order rather than per item because most items in one order arrive together."
    },
    "handlingPerOrder": {
      "value": 3,
      "unit": "USD",
      "label": "Check, consolidate, pack",
      "basis": "Labour: opening, checking against the order, repacking into one parcel, photographing. The step a customer is actually paying the service fee for."
    },
    "lossRate": {
      "value": 0.03,
      "unit": "ratio",
      "label": "Parcels lost, damaged or refused",
      "basis": "Cross-border parcels go missing, get held, and occasionally get refused at the door. The service carries this, not the customer."
    },
    "seedingFeePerCreator": {
      "value": 60,
      "unit": "USD",
      "label": "Seeding fee per creator",
      "basis": "Flat fee paid per seeded creator at the micro tier, on top of the product they keep."
    },
    "seedUsableRate": {
      "value": 0.6,
      "unit": "ratio",
      "label": "Seeds that yield usable video",
      "basis": "Share of seeded creators who post something good enough to run as a product video. The number most likely to be optimistic."
    },
    "quarterlyRefreshRate": {
      "value": 0.25,
      "unit": "ratio",
      "label": "Catalogue refreshed per quarter",
      "basis": "Short-form creative decays. A quarter of the library replaced each quarter keeps a product's top video roughly a season old."
    },
    "fixedMonthly": {
      "value": 1400,
      "unit": "USD",
      "label": "Fixed monthly overhead",
      "basis": "Consolidation space, commerce platform, domain and tooling. Excludes any salary."
    },
    "universeSkus": {
      "value": 9000,
      "unit": "SKU",
      "label": "Rated Korean catalogue",
      "basis": "Order of magnitude for how many skincare products carry an ingredient rating at home. Used only to express the selection ratio; nothing else depends on it."
    }
  }
}