POST/v1/profitability/calculate
Japan Profitability API

Developer documentation

Estimate the per-unit economics of importing an overseas product and selling it in Japan—without asking the user to assemble a duty, tax, FX, logistics, and marketplace spreadsheet.

The important answer comes first. Selling price, total cost, profit, margin, break-even price, minimum recommended price, confidence, and recommendation precede the detailed assumptions.

Quick Start

Calculate with four familiar facts

curl -X POST https://api.japanapistore.com/v1/profitability/calculate \
  -H "Authorization: Bearer ${JAPAN_API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{
    "product_name": "Wireless earbuds",
    "category": "Electronics",
    "origin_country": "CN",
    "cost": {"amount": 15, "currency": "USD"},
    "selling_price": {"amount": 5980, "currency": "JPY"},
    "channel": "amazon_jp"
  }'

Request

product_name and cost are the minimum standalone input. A full sellability_response can supply the product identity instead. Category, origin, HS code, selling price, freight, logistics, fees, and rates are optional accuracy upgrades.

View exact request schema
{
  "$id": "ProfitabilityRequest",
  "additionalProperties": false,
  "anyOf": [
    {
      "required": [
        "product_name"
      ]
    },
    {
      "required": [
        "sellability_response"
      ]
    }
  ],
  "type": "object",
  "required": [
    "cost"
  ],
  "properties": {
    "product_name": {
      "minLength": 1,
      "maxLength": 160,
      "type": "string"
    },
    "category": {
      "anyOf": [
        {
          "const": "Food",
          "type": "string"
        },
        {
          "const": "Beverage",
          "type": "string"
        },
        {
          "const": "Supplement",
          "type": "string"
        },
        {
          "const": "Cosmetics",
          "type": "string"
        },
        {
          "const": "Pharmaceutical",
          "type": "string"
        },
        {
          "const": "Quasi-drug",
          "type": "string"
        },
        {
          "const": "Medical Device",
          "type": "string"
        },
        {
          "const": "Electrical Appliance",
          "type": "string"
        },
        {
          "const": "Electronics",
          "type": "string"
        },
        {
          "const": "Battery",
          "type": "string"
        },
        {
          "const": "Toy",
          "type": "string"
        },
        {
          "const": "Baby Product",
          "type": "string"
        },
        {
          "const": "Clothing",
          "type": "string"
        },
        {
          "const": "Textile",
          "type": "string"
        },
        {
          "const": "Chemical",
          "type": "string"
        },
        {
          "const": "Detergent",
          "type": "string"
        },
        {
          "const": "Household Product",
          "type": "string"
        },
        {
          "const": "Furniture",
          "type": "string"
        },
        {
          "const": "Kitchenware",
          "type": "string"
        },
        {
          "const": "Container / Packaging",
          "type": "string"
        },
        {
          "const": "Agricultural Product",
          "type": "string"
        },
        {
          "const": "Plant",
          "type": "string"
        },
        {
          "const": "Animal Product",
          "type": "string"
        },
        {
          "const": "Pet Product",
          "type": "string"
        },
        {
          "const": "Pet Food",
          "type": "string"
        },
        {
          "const": "Alcohol",
          "type": "string"
        },
        {
          "const": "Tobacco / Nicotine",
          "type": "string"
        },
        {
          "const": "Vehicle / Parts",
          "type": "string"
        },
        {
          "const": "Machinery",
          "type": "string"
        },
        {
          "const": "Radio Equipment",
          "type": "string"
        },
        {
          "const": "Luxury Goods",
          "type": "string"
        },
        {
          "const": "Wildlife Product",
          "type": "string"
        },
        {
          "const": "General Goods",
          "type": "string"
        },
        {
          "const": "Unknown",
          "type": "string"
        }
      ]
    },
    "origin_country": {
      "minLength": 2,
      "maxLength": 80,
      "type": "string"
    },
    "hs_code": {
      "minLength": 4,
      "maxLength": 16,
      "pattern": "^[0-9. -]+$",
      "type": "string"
    },
    "target_market": {
      "const": "JP",
      "type": "string"
    },
    "cost": {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "amount",
        "currency"
      ],
      "properties": {
        "amount": {
          "minimum": 0,
          "maximum": 1000000000,
          "type": "number"
        },
        "currency": {
          "minLength": 3,
          "maxLength": 3,
          "pattern": "^[A-Za-z]{3}$",
          "type": "string"
        }
      }
    },
    "selling_price": {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "amount",
        "currency"
      ],
      "properties": {
        "amount": {
          "minimum": 0,
          "maximum": 1000000000,
          "type": "number"
        },
        "currency": {
          "minLength": 3,
          "maxLength": 3,
          "pattern": "^[A-Za-z]{3}$",
          "type": "string"
        }
      }
    },
    "channel": {
      "anyOf": [
        {
          "const": "amazon_jp",
          "type": "string"
        },
        {
          "const": "rakuten",
          "type": "string"
        },
        {
          "const": "yahoo_japan",
          "type": "string"
        },
        {
          "const": "own_ec",
          "type": "string"
        }
      ]
    },
    "international_shipping": {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "amount",
        "currency"
      ],
      "properties": {
        "amount": {
          "minimum": 0,
          "maximum": 1000000000,
          "type": "number"
        },
        "currency": {
          "minLength": 3,
          "maxLength": 3,
          "pattern": "^[A-Za-z]{3}$",
          "type": "string"
        },
        "source": {
          "anyOf": [
            {
              "const": "official",
              "type": "string"
            },
            {
              "const": "provided",
              "type": "string"
            },
            {
              "const": "estimated",
              "type": "string"
            },
            {
              "const": "default",
              "type": "string"
            }
          ]
        }
      }
    },
    "insurance": {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "amount",
        "currency"
      ],
      "properties": {
        "amount": {
          "minimum": 0,
          "maximum": 1000000000,
          "type": "number"
        },
        "currency": {
          "minLength": 3,
          "maxLength": 3,
          "pattern": "^[A-Za-z]{3}$",
          "type": "string"
        },
        "source": {
          "anyOf": [
            {
              "const": "official",
              "type": "string"
            },
            {
              "const": "provided",
              "type": "string"
            },
            {
              "const": "estimated",
              "type": "string"
            },
            {
              "const": "default",
              "type": "string"
            }
          ]
        }
      }
    },
    "customs_clearance": {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "amount",
        "currency"
      ],
      "properties": {
        "amount": {
          "minimum": 0,
          "maximum": 1000000000,
          "type": "number"
        },
        "currency": {
          "minLength": 3,
          "maxLength": 3,
          "pattern": "^[A-Za-z]{3}$",
          "type": "string"
        },
        "source": {
          "anyOf": [
            {
              "const": "official",
              "type": "string"
            },
            {
              "const": "provided",
              "type": "string"
            },
            {
              "const": "estimated",
              "type": "string"
            },
            {
              "const": "default",
              "type": "string"
            }
          ]
        }
      }
    },
    "domestic_logistics": {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "amount",
        "currency"
      ],
      "properties": {
        "amount": {
          "minimum": 0,
          "maximum": 1000000000,
          "type": "number"
        },
        "currency": {
          "minLength": 3,
          "maxLength": 3,
          "pattern": "^[A-Za-z]{3}$",
          "type": "string"
        },
        "source": {
          "anyOf": [
            {
              "const": "official",
              "type": "string"
            },
            {
              "const": "provided",
              "type": "string"
            },
            {
              "const": "estimated",
              "type": "string"
            },
            {
              "const": "default",
              "type": "string"
            }
          ]
        }
      }
    },
    "other_costs": {
      "maxItems": 20,
      "type": "array",
      "items": {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "name",
          "amount",
          "currency"
        ],
        "properties": {
          "name": {
            "minLength": 1,
            "maxLength": 80,
            "type": "string"
          },
          "amount": {
            "minimum": 0,
            "maximum": 1000000000,
            "type": "number"
          },
          "currency": {
            "minLength": 3,
            "maxLength": 3,
            "pattern": "^[A-Za-z]{3}$",
            "type": "string"
          },
          "source": {
            "anyOf": [
              {
                "const": "official",
                "type": "string"
              },
              {
                "const": "provided",
                "type": "string"
              },
              {
                "const": "estimated",
                "type": "string"
              },
              {
                "const": "default",
                "type": "string"
              }
            ]
          }
        }
      }
    },
    "exchange_rates": {
      "maxItems": 40,
      "type": "array",
      "items": {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "currency",
          "jpy_per_unit"
        ],
        "properties": {
          "currency": {
            "minLength": 3,
            "maxLength": 3,
            "pattern": "^[A-Za-z]{3}$",
            "type": "string"
          },
          "jpy_per_unit": {
            "exclusiveMinimum": 0,
            "maximum": 1000000,
            "type": "number"
          },
          "as_of": {
            "format": "date",
            "type": "string"
          },
          "source": {
            "anyOf": [
              {
                "const": "official",
                "type": "string"
              },
              {
                "const": "provided",
                "type": "string"
              },
              {
                "const": "estimated",
                "type": "string"
              },
              {
                "const": "default",
                "type": "string"
              }
            ]
          }
        }
      }
    },
    "customs": {
      "additionalProperties": false,
      "type": "object",
      "properties": {
        "duty_rate_percent": {
          "minimum": 0,
          "maximum": 1000,
          "type": "number"
        },
        "import_tax_rate_percent": {
          "anyOf": [
            {
              "const": 8,
              "type": "number"
            },
            {
              "const": 10,
              "type": "number"
            }
          ]
        },
        "preferential_origin_qualified": {
          "type": "boolean"
        }
      }
    },
    "fees": {
      "additionalProperties": false,
      "type": "object",
      "properties": {
        "platform_fee_percent": {
          "minimum": 0,
          "maximum": 100,
          "type": "number"
        },
        "payment_fee_percent": {
          "minimum": 0,
          "maximum": 100,
          "type": "number"
        },
        "fixed_fee_jpy": {
          "minimum": 0,
          "maximum": 1000000,
          "type": "number"
        }
      }
    },
    "assumptions": {
      "additionalProperties": false,
      "type": "object",
      "properties": {
        "monthly_orders": {
          "minimum": 1,
          "maximum": 10000000,
          "type": "integer"
        },
        "target_margin_percent": {
          "minimum": 0,
          "maximum": 80,
          "type": "number"
        },
        "calculation_date": {
          "format": "date",
          "type": "string"
        }
      }
    },
    "sellability_response": {
      "$id": "SellabilityResponse",
      "additionalProperties": false,
      "type": "object",
      "required": [
        "request_id",
        "success",
        "status",
        "reason",
        "guidance",
        "confidence",
        "normalized_product",
        "missing_information",
        "requirements",
        "restrictions",
        "rules_checked",
        "authorities_checked",
        "official_sources",
        "additional_checks",
        "data_freshness",
        "usage",
        "disclaimer"
      ],
      "properties": {
        "request_id": {
          "pattern": "^req_[a-f0-9]{32}$",
          "type": "string"
        },
        "success": {
          "const": true,
          "type": "boolean"
        },
        "status": {
          "anyOf": [
            {
              "const": "SELLABLE",
              "type": "string"
            },
            {
              "const": "SELLABLE_WITH_CONDITIONS",
              "type": "string"
            },
            {
              "const": "REVIEW_REQUIRED",
              "type": "string"
            },
            {
              "const": "NOT_SELLABLE",
              "type": "string"
            }
          ]
        },
        "decision": {
          "anyOf": [
            {
              "const": "SELLABLE",
              "type": "string"
            },
            {
              "const": "SELLABLE_WITH_CONDITIONS",
              "type": "string"
            },
            {
              "const": "REVIEW_REQUIRED",
              "type": "string"
            },
            {
              "const": "NOT_SELLABLE",
              "type": "string"
            }
          ]
        },
        "reason": {
          "type": "string"
        },
        "guidance": {
          "type": "string"
        },
        "confidence": {
          "anyOf": [
            {
              "const": "high",
              "type": "string"
            },
            {
              "const": "medium",
              "type": "string"
            },
            {
              "const": "low",
              "type": "string"
            }
          ]
        },
        "confidence_score": {
          "minimum": 0,
          "maximum": 100,
          "type": "integer"
        },
        "confidence_method": {
          "const": "deterministic_weighted_rules_v1",
          "type": "string"
        },
        "provisional": {
          "type": "boolean"
        },
        "summary": {
          "type": "string"
        },
        "normalized_product": {
          "additionalProperties": false,
          "type": "object",
          "required": [
            "product_name",
            "category",
            "intended_use",
            "origin_country",
            "destination_country"
          ],
          "properties": {
            "product_name": {
              "type": "string"
            },
            "category": {
              "anyOf": [
                {
                  "const": "Food",
                  "type": "string"
                },
                {
                  "const": "Beverage",
                  "type": "string"
                },
                {
                  "const": "Supplement",
                  "type": "string"
                },
                {
                  "const": "Cosmetics",
                  "type": "string"
                },
                {
                  "const": "Pharmaceutical",
                  "type": "string"
                },
                {
                  "const": "Quasi-drug",
                  "type": "string"
                },
                {
                  "const": "Medical Device",
                  "type": "string"
                },
                {
                  "const": "Electrical Appliance",
                  "type": "string"
                },
                {
                  "const": "Electronics",
                  "type": "string"
                },
                {
                  "const": "Battery",
                  "type": "string"
                },
                {
                  "const": "Toy",
                  "type": "string"
                },
                {
                  "const": "Baby Product",
                  "type": "string"
                },
                {
                  "const": "Clothing",
                  "type": "string"
                },
                {
                  "const": "Textile",
                  "type": "string"
                },
                {
                  "const": "Chemical",
                  "type": "string"
                },
                {
                  "const": "Detergent",
                  "type": "string"
                },
                {
                  "const": "Household Product",
                  "type": "string"
                },
                {
                  "const": "Furniture",
                  "type": "string"
                },
                {
                  "const": "Kitchenware",
                  "type": "string"
                },
                {
                  "const": "Container / Packaging",
                  "type": "string"
                },
                {
                  "const": "Agricultural Product",
                  "type": "string"
                },
                {
                  "const": "Plant",
                  "type": "string"
                },
                {
                  "const": "Animal Product",
                  "type": "string"
                },
                {
                  "const": "Pet Product",
                  "type": "string"
                },
                {
                  "const": "Pet Food",
                  "type": "string"
                },
                {
                  "const": "Alcohol",
                  "type": "string"
                },
                {
                  "const": "Tobacco / Nicotine",
                  "type": "string"
                },
                {
                  "const": "Vehicle / Parts",
                  "type": "string"
                },
                {
                  "const": "Machinery",
                  "type": "string"
                },
                {
                  "const": "Radio Equipment",
                  "type": "string"
                },
                {
                  "const": "Luxury Goods",
                  "type": "string"
                },
                {
                  "const": "Wildlife Product",
                  "type": "string"
                },
                {
                  "const": "General Goods",
                  "type": "string"
                },
                {
                  "const": "Unknown",
                  "type": "string"
                }
              ]
            },
            "intended_use": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "origin_country": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "hs_code": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "destination_country": {
              "const": "JP",
              "type": "string"
            }
          }
        },
        "missing_information": {
          "type": "array",
          "items": {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "field",
              "label",
              "question"
            ],
            "properties": {
              "field": {
                "type": "string"
              },
              "label": {
                "type": "string"
              },
              "question": {
                "type": "string"
              },
              "priority": {
                "anyOf": [
                  {
                    "const": "CRITICAL",
                    "type": "string"
                  },
                  {
                    "const": "HIGH",
                    "type": "string"
                  },
                  {
                    "const": "MEDIUM",
                    "type": "string"
                  },
                  {
                    "const": "LOW",
                    "type": "string"
                  }
                ]
              },
              "reason": {
                "type": "string"
              }
            }
          }
        },
        "requirements": {
          "type": "array",
          "items": {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "type",
              "name",
              "authority",
              "rule_id"
            ],
            "properties": {
              "type": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "authority": {
                "type": "string"
              },
              "rule_id": {
                "type": "string"
              }
            }
          }
        },
        "restrictions": {
          "type": "array",
          "items": {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "name",
              "authority",
              "rule_id"
            ],
            "properties": {
              "name": {
                "type": "string"
              },
              "authority": {
                "type": "string"
              },
              "rule_id": {
                "type": "string"
              }
            }
          }
        },
        "rules_checked": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "authorities_checked": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "official_sources": {
          "type": "array",
          "items": {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "source_id",
              "source_name",
              "organization",
              "official_url",
              "version",
              "last_checked_at",
              "retrieved_at",
              "effective_from",
              "update_frequency",
              "status",
              "fallback_used"
            ],
            "properties": {
              "source_id": {
                "type": "string"
              },
              "source_name": {
                "type": "string"
              },
              "organization": {
                "type": "string"
              },
              "official_url": {
                "format": "uri",
                "type": "string"
              },
              "version": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "last_checked_at": {
                "anyOf": [
                  {
                    "format": "date-time",
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "retrieved_at": {
                "anyOf": [
                  {
                    "format": "date-time",
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "effective_from": {
                "anyOf": [
                  {
                    "format": "date",
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "update_frequency": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "fallback_used": {
                "type": "boolean"
              }
            }
          }
        },
        "additional_checks": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "data_freshness": {
          "additionalProperties": false,
          "type": "object",
          "required": [
            "engine",
            "phase4_version",
            "regulatory_version",
            "customs_version",
            "assessed_at"
          ],
          "properties": {
            "engine": {
              "const": "phase4",
              "type": "string"
            },
            "phase4_version": {
              "type": "string"
            },
            "regulatory_version": {
              "type": "string"
            },
            "customs_version": {
              "type": "string"
            },
            "assessed_at": {
              "format": "date-time",
              "type": "string"
            }
          }
        },
        "usage": {
          "additionalProperties": false,
          "type": "object",
          "required": [
            "counted",
            "channel"
          ],
          "properties": {
            "counted": {
              "type": "boolean"
            },
            "channel": {
              "anyOf": [
                {
                  "const": "anonymous_demo",
                  "type": "string"
                },
                {
                  "const": "api_key",
                  "type": "string"
                }
              ]
            }
          }
        },
        "disclaimer": {
          "type": "string"
        }
      }
    }
  }
}

Response

The result is compact at the top and auditable below it. Every calculated input is recorded as official, provided, estimated, or default.

View exact response schema
{
  "$id": "ProfitabilityResponse",
  "additionalProperties": false,
  "type": "object",
  "required": [
    "request_id",
    "success",
    "status",
    "estimated_selling_price_jpy",
    "estimated_total_cost_jpy",
    "estimated_profit_jpy",
    "profit_margin_percent",
    "break_even_price_jpy",
    "recommended_min_price_jpy",
    "confidence",
    "recommendation",
    "summary",
    "cost_breakdown",
    "assumptions",
    "confidence_factors",
    "missing_fields",
    "warnings",
    "sellability",
    "data_freshness",
    "sources",
    "metadata",
    "disclaimer"
  ],
  "properties": {
    "request_id": {
      "pattern": "^req_[a-f0-9]{32}$",
      "type": "string"
    },
    "success": {
      "const": true,
      "type": "boolean"
    },
    "status": {
      "anyOf": [
        {
          "const": "HIGHLY_PROFITABLE",
          "type": "string"
        },
        {
          "const": "PROFITABLE",
          "type": "string"
        },
        {
          "const": "LOW_MARGIN",
          "type": "string"
        },
        {
          "const": "BREAK_EVEN",
          "type": "string"
        },
        {
          "const": "UNPROFITABLE",
          "type": "string"
        },
        {
          "const": "INSUFFICIENT_DATA",
          "type": "string"
        }
      ]
    },
    "estimated_selling_price_jpy": {
      "type": "number"
    },
    "estimated_total_cost_jpy": {
      "type": "number"
    },
    "estimated_profit_jpy": {
      "type": "number"
    },
    "profit_margin_percent": {
      "type": "number"
    },
    "break_even_price_jpy": {
      "type": "number"
    },
    "recommended_min_price_jpy": {
      "type": "number"
    },
    "confidence": {
      "minimum": 0,
      "maximum": 100,
      "type": "integer"
    },
    "recommendation": {
      "anyOf": [
        {
          "const": "ENTER_MARKET",
          "type": "string"
        },
        {
          "const": "CONSIDER_WITH_CONDITIONS",
          "type": "string"
        },
        {
          "const": "REVIEW_BEFORE_ENTRY",
          "type": "string"
        },
        {
          "const": "DO_NOT_ENTER",
          "type": "string"
        }
      ]
    },
    "summary": {
      "type": "string"
    },
    "cost_breakdown": {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "product_cost_jpy",
        "international_shipping_jpy",
        "insurance_jpy",
        "customs_duty_jpy",
        "import_tax_jpy",
        "customs_clearance_jpy",
        "domestic_logistics_jpy",
        "platform_fee_jpy",
        "payment_fee_jpy",
        "fixed_channel_fee_jpy",
        "other_costs_jpy"
      ],
      "properties": {
        "product_cost_jpy": {
          "type": "number"
        },
        "international_shipping_jpy": {
          "type": "number"
        },
        "insurance_jpy": {
          "type": "number"
        },
        "customs_duty_jpy": {
          "type": "number"
        },
        "import_tax_jpy": {
          "type": "number"
        },
        "customs_clearance_jpy": {
          "type": "number"
        },
        "domestic_logistics_jpy": {
          "type": "number"
        },
        "platform_fee_jpy": {
          "type": "number"
        },
        "payment_fee_jpy": {
          "type": "number"
        },
        "fixed_channel_fee_jpy": {
          "type": "number"
        },
        "other_costs_jpy": {
          "type": "number"
        }
      }
    },
    "assumptions": {
      "type": "array",
      "items": {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "field",
          "value",
          "provenance",
          "classification",
          "reason"
        ],
        "properties": {
          "field": {
            "type": "string"
          },
          "value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "number"
              },
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "provenance": {
            "anyOf": [
              {
                "const": "official",
                "type": "string"
              },
              {
                "const": "provided",
                "type": "string"
              },
              {
                "const": "estimated",
                "type": "string"
              },
              {
                "const": "default",
                "type": "string"
              }
            ]
          },
          "classification": {
            "anyOf": [
              {
                "const": "CONFIRMED",
                "type": "string"
              },
              {
                "const": "CONDITIONAL",
                "type": "string"
              },
              {
                "const": "USER_INPUT",
                "type": "string"
              },
              {
                "const": "ASSUMPTION",
                "type": "string"
              },
              {
                "const": "MISSING",
                "type": "string"
              }
            ]
          },
          "reason": {
            "type": "string"
          },
          "source_id": {
            "type": "string"
          }
        }
      }
    },
    "confidence_factors": {
      "type": "array",
      "items": {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "field",
          "weight",
          "classification",
          "awarded_points",
          "reason"
        ],
        "properties": {
          "field": {
            "type": "string"
          },
          "weight": {
            "minimum": 1,
            "maximum": 100,
            "type": "integer"
          },
          "classification": {
            "anyOf": [
              {
                "const": "CONFIRMED",
                "type": "string"
              },
              {
                "const": "CONDITIONAL",
                "type": "string"
              },
              {
                "const": "USER_INPUT",
                "type": "string"
              },
              {
                "const": "ASSUMPTION",
                "type": "string"
              },
              {
                "const": "MISSING",
                "type": "string"
              }
            ]
          },
          "awarded_points": {
            "minimum": 0,
            "maximum": 100,
            "type": "number"
          },
          "reason": {
            "type": "string"
          }
        }
      }
    },
    "missing_fields": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "warnings": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "sellability": {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "supplied",
        "status",
        "request_id",
        "reused_fields",
        "requirement_count",
        "restriction_count"
      ],
      "properties": {
        "supplied": {
          "type": "boolean"
        },
        "status": {
          "anyOf": [
            {
              "anyOf": [
                {
                  "const": "SELLABLE",
                  "type": "string"
                },
                {
                  "const": "SELLABLE_WITH_CONDITIONS",
                  "type": "string"
                },
                {
                  "const": "REVIEW_REQUIRED",
                  "type": "string"
                },
                {
                  "const": "NOT_SELLABLE",
                  "type": "string"
                }
              ]
            },
            {
              "type": "null"
            }
          ]
        },
        "request_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "reused_fields": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "requirement_count": {
          "minimum": 0,
          "type": "integer"
        },
        "restriction_count": {
          "minimum": 0,
          "type": "integer"
        }
      }
    },
    "data_freshness": {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "engine",
        "tariff_version",
        "fx_version",
        "fx_period_start",
        "fx_period_end",
        "fx_retrieved_at",
        "fx_source_url",
        "fx_status",
        "fee_version",
        "fee_checked_at",
        "calculated_at"
      ],
      "properties": {
        "engine": {
          "const": "profitability-v1",
          "type": "string"
        },
        "tariff_version": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "fx_version": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "fx_period_start": {
          "anyOf": [
            {
              "format": "date",
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "fx_period_end": {
          "anyOf": [
            {
              "format": "date",
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "fx_retrieved_at": {
          "anyOf": [
            {
              "format": "date-time",
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "fx_source_url": {
          "anyOf": [
            {
              "format": "uri",
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "fx_status": {
          "anyOf": [
            {
              "const": "CURRENT",
              "type": "string"
            },
            {
              "const": "STALE",
              "type": "string"
            },
            {
              "const": "MISSING",
              "type": "string"
            }
          ]
        },
        "fee_version": {
          "type": "string"
        },
        "fee_checked_at": {
          "format": "date",
          "type": "string"
        },
        "calculated_at": {
          "format": "date-time",
          "type": "string"
        }
      }
    },
    "sources": {
      "type": "array",
      "items": {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "source_id",
          "source_name",
          "organization",
          "official_url",
          "version",
          "effective_from",
          "checked_at"
        ],
        "properties": {
          "source_id": {
            "type": "string"
          },
          "source_name": {
            "type": "string"
          },
          "organization": {
            "type": "string"
          },
          "official_url": {
            "format": "uri",
            "type": "string"
          },
          "version": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "effective_from": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "checked_at": {
            "format": "date",
            "type": "string"
          }
        }
      }
    },
    "metadata": {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "target_market",
        "channel",
        "currency",
        "calculation_method"
      ],
      "properties": {
        "target_market": {
          "const": "JP",
          "type": "string"
        },
        "channel": {
          "anyOf": [
            {
              "const": "amazon_jp",
              "type": "string"
            },
            {
              "const": "rakuten",
              "type": "string"
            },
            {
              "const": "yahoo_japan",
              "type": "string"
            },
            {
              "const": "own_ec",
              "type": "string"
            }
          ]
        },
        "currency": {
          "const": "JPY",
          "type": "string"
        },
        "calculation_method": {
          "const": "deterministic_cost_model_v1",
          "type": "string"
        }
      }
    },
    "disclaimer": {
      "type": "string"
    }
  }
}

Deterministic calculation

customs_value = product_cost + international_shipping + insurance
customs_duty = customs_value × duty_rate
import_tax = (customs_value + customs_duty) × 8% or 10%
total_cost = landed_cost + domestic_logistics + channel_fees + other_costs
profit = selling_price - total_cost
margin = profit / selling_price

Break-even and recommended prices solve for variable channel fees instead of simply adding them after the fact.

Sellability compatibility

Pass the existing response unchanged as sellability_response. Profitability reuses its normalized product, HS code, origin, status, and request ID. NOT_SELLABLE produces a DO_NOT_ENTER recommendation even when the numeric margin is positive; the math remains visible.

Confidence

Confidence is deterministic. Official/current tariff and FX matches, provided selling price and freight, category, origin, and a supplied Sellability response add known weights. Defaults add fewer points. missing_fields tells the caller which additions improve the result.

Official sources

Limits and disclaimer

This is a planning estimate, not a customs filing, tax return, carrier quote, or platform invoice. Specific/compound tariff lines, origin qualification, alcohol/excise tax, FBA dimensional fees, advertising, returns, storage, and tax-credit treatment need explicit inputs or specialist confirmation.