{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://howtomakemoneyonsnapchat.com/schemas/v1/calculate_growth_pace.input.schema.json",
  "title": "calculate_growth_pace input",
  "description": "CALCULATION tool. Required daily and weekly pace to close each numeric gap within target_days, with a linear scenario plus alternatives and labeled assumptions. A projection, never a prediction. Caller metrics are checked for plausibility. spotlight_view_time_hours_28d above view_time_hours_28d returns VALUE_INCONSISTENT. view_time_hours_28d above 28 days × 24 hours × followers × 0.5 is a warning that the figure is unusually high for your follower count, please check for a typo. The warning also says view time can come from non-followers. followers of 0 with hours above 0 is the same kind of warning, never an error.",
  "x-generated": "2026-10-30",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/howtomakemoneyonsnapchat-com-openapi.json#/components/schemas/calculate_growth_pace.input.schema",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "metrics",
    "target_days"
  ],
  "properties": {
    "program": {
      "$ref": "#/$defs/EvaluableProgram"
    },
    "metrics": {
      "$ref": "#/$defs/CreatorMetrics"
    },
    "already_enrolled": {
      "$ref": "#/$defs/AlreadyEnrolled"
    },
    "target_days": {
      "type": "integer",
      "minimum": 1,
      "maximum": 730
    },
    "observed_daily_change": {
      "description": "Optional recent average daily change per metric (caller-supplied, may be negative) for comparing required vs. current pace.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "followers": {
          "type": "number",
          "minimum": -1000000000,
          "maximum": 1000000000
        },
        "view_time_hours_28d": {
          "type": "number",
          "minimum": -1000000000,
          "maximum": 1000000000
        },
        "spotlight_view_time_hours_28d": {
          "type": "number",
          "minimum": -1000000000,
          "maximum": 1000000000
        },
        "posts_per_month": {
          "type": "number",
          "minimum": -1000000000,
          "maximum": 1000000000
        },
        "active_posting_days_28d": {
          "type": "number",
          "minimum": -1000000000,
          "maximum": 1000000000
        }
      }
    },
    "metrics_to_pace": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/NumericMetricName"
      },
      "uniqueItems": true,
      "maxItems": 5
    }
  },
  "$defs": {
    "AlreadyEnrolled": {
      "description": "Set true only if the creator is already enrolled in the Monetization Program. Default false: only entry (invitation) requirements are evaluated. When true, ongoing requirements for enrolled creators are reported in a separate section.",
      "type": "boolean",
      "default": false
    },
    "CreatorMetrics": {
      "description": "Metrics supplied by the caller (the creator or their agent). We never look metrics up ourselves; Snap offers no public analytics for arbitrary usernames. All fields optional; missing fields produce `unknowns`, never guesses. Data minimization: no age, birthdate, name, or username is accepted; creator age is never stored. Caller metrics are checked for plausibility. spotlight_view_time_hours_28d above view_time_hours_28d returns VALUE_INCONSISTENT. view_time_hours_28d above 28 days × 24 hours × followers × 0.5 is a warning that the figure is unusually high for your follower count, please check for a typo. The warning also says view time can come from non-followers. followers of 0 with hours above 0 is the same kind of warning, never an error.",
      "type": "object",
      "additionalProperties": false,
      "minProperties": 1,
      "properties": {
        "followers": {
          "type": "integer",
          "minimum": 0,
          "maximum": 10000000000
        },
        "view_time_hours_28d": {
          "description": "Total view time in hours over the last 28 days, as shown in Snapchat Insights.",
          "type": "number",
          "minimum": 0,
          "maximum": 1000000000
        },
        "spotlight_view_time_hours_28d": {
          "description": "Spotlight view time in hours over the last 28 days.",
          "type": "number",
          "minimum": 0,
          "maximum": 1000000000
        },
        "meets_age_requirement": {
          "description": "Whether the creator meets the age requirement (18 or the local age of majority). true/false as stated by the caller; null = unknown and returns requires_user_confirmation. Data minimization: we never ask for or store a creator's age or birthdate.",
          "type": [
            "boolean",
            "null"
          ]
        },
        "country": {
          "description": "Country of residence. ISO 3166-1 alpha-2 (US), alpha-3 (USA), or the English name on the reviewed country map (United States). Unlisted territories stay unknown.",
          "type": "string",
          "minLength": 2,
          "maxLength": 80
        },
        "is_snap_star": {
          "description": "Self-reported Snap Star status. Cannot be verified by us; treated as a user confirmation.",
          "type": "boolean"
        },
        "posts_per_month": {
          "type": "integer",
          "minimum": 0,
          "maximum": 100000
        },
        "active_posting_days_28d": {
          "type": "integer",
          "minimum": 0,
          "maximum": 28
        }
      }
    },
    "EvaluableProgram": {
      "description": "Programs the calculation tools evaluate in v1. Other in-scope programs (payouts, tax, snap_star, creator_monetization_policy, recommendation_eligibility, brand_partnerships) are served as FACTs by get_monetization_requirements; Snap Star status is evaluated as a prerequisite inside unified_monetization_program.",
      "type": "string",
      "enum": [
        "unified_monetization_program"
      ],
      "default": "unified_monetization_program"
    },
    "NumericMetricName": {
      "type": "string",
      "enum": [
        "followers",
        "view_time_hours_28d",
        "spotlight_view_time_hours_28d",
        "posts_per_month",
        "active_posting_days_28d"
      ]
    }
  }
}