{
  "slug": "funnel-conversion-analyzer",
  "name": "gizza-ai/funnel-conversion-analyzer",
  "version": "0.1.0",
  "title": "Funnel Conversion Analyzer — Step Conversion & Drop-off Rates — gizza.ai",
  "description": "Paste an event CSV and compute funnel conversion and drop-off rates per step. Unique users, conversion from top and previous step — in your browser, no upload.",
  "tags": [
    "funnel analysis",
    "conversion rate",
    "drop-off rate",
    "funnel analytics",
    "event csv",
    "user funnel",
    "conversion funnel"
  ],
  "category": "data",
  "urls": {
    "page": "https://gizza.ai/tools/funnel-conversion-analyzer/",
    "markdown": "https://gizza.ai/tools/funnel-conversion-analyzer/index.md",
    "descriptor": "https://gizza.ai/tools/funnel-conversion-analyzer/tool.json",
    "deep_link_example": "https://gizza.ai/tools/funnel-conversion-analyzer/?data=user%2Cevent%0Au1%2Cview%0Au1%2Csignup%0Au1%2Cpurchase%0Au2%2Cview%0Au2%2Csignup%0Au3%2Cview&steps=view%2Csignup%2Cpurchase&user=user&event=event&time=ts&ordered=true&header=true&delimiter=comma&format=table"
  },
  "cli": "gizza tool funnel-conversion-analyzer \"user,event\nu1,view\nu1,signup\nu1,purchase\nu2,view\nu2,signup\nu3,view\"",
  "tool": {
    "description": "Analyze a funnel from an event log (CSV/table text). Given a user-id column and an event-name column, count the unique users who reach each step, and report conversion from the top step, conversion from the previous step, and the users lost (drop-off) at each step. Supply `steps` as an ordered comma-separated list of event names, or leave it empty to auto-derive the steps from the distinct events in first-seen order. With ordered=true (default) a user must complete each earlier step to reach the next; set ordered=false to count every user who performed a step independently. Provide a `time` column to enforce chronological order between steps. Choose format='table' for a readable summary or 'json' for structured per-step stats.",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "data": {
          "description": "Event log as CSV/table text: one row per user event, with a user-id column and an event-name column. Rows may use comma, tab, semicolon, or pipe.",
          "type": "string"
        },
        "delimiter": {
          "default": "comma",
          "description": "Input delimiter: comma (default), tab, semicolon, or pipe.",
          "enum": [
            "comma",
            "tab",
            "semicolon",
            "pipe"
          ],
          "type": "string"
        },
        "event": {
          "description": "Event-name column: a header name or a 1-based column index. Defaults to the second column.",
          "type": "string"
        },
        "format": {
          "default": "table",
          "description": "Output format: table (human-readable funnel summary, default) or json (structured per-step stats).",
          "enum": [
            "table",
            "json"
          ],
          "type": "string"
        },
        "header": {
          "default": true,
          "description": "When true (default), the first row is treated as column names so `user`/`event`/`time` can reference them by name.",
          "type": "boolean"
        },
        "ordered": {
          "default": true,
          "description": "When true (default), a user reaches step N only after completing every earlier step (a strict funnel). When false, each step counts every user who performed it, independently.",
          "type": "boolean"
        },
        "steps": {
          "description": "Ordered funnel steps as a comma-separated list of event names (e.g. \"view,signup,purchase\"). Leave empty to auto-derive the steps from the distinct events in first-seen order.",
          "type": "string"
        },
        "time": {
          "description": "Optional timestamp column (header name or 1-based index). When set, ordered funnels require each step to happen after the previous one in time (numeric epochs or ISO-8601 strings).",
          "type": "string"
        },
        "user": {
          "description": "User-id column: a header name or a 1-based column index. Defaults to the first column.",
          "type": "string"
        }
      },
      "required": [
        "data"
      ],
      "type": "object"
    }
  }
}