funnelius


Namefunnelius JSON
Version 0.0.5 PyPI version JSON
download
home_pageNone
SummaryFunnelius is an open-source Python library designed to analyze and visualize complex, non-linear user funnels.
upload_time2025-09-01 17:15:44
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
licenseNone
keywords funnel journey path graph
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Funnelius

<kbd><img src="images/Screenshot.png" alt="My Image with Gray Border" style="border:2px solid #000;"></kbd>

**Funnelius** is an open-source Python library designed to analyze and visualize complex, non-linear user funnels. Built with Pandas, Graphviz, and Streamlit, it allows data scientists and analysts to easily track user journeys, calculate conversion rates, and identify bottlenecks.

## Prerequisites
Please ensure that you have **graphviz** and **streamlit** installed and these tools can be accessed in your Operation System's path.

## Features

- **Visualize Complex Funnels**: Analyze and visualize non-linear, conditional funnels where the next step depends on previous answers or actions.
- **Conversion Rate Calculation**: Automatically calculates conversion rates at each step of the funnel.
- **Bottleneck Detection**: Uses conditional formatting to highlight steps with low conversion rates or long durations.
- **Comparison**: Ability to compare two funnel data and see differences.
- **Answe Contribution**: Show answer contribution of every step and changes.
- **Filter and Clean Data**: Filters out noise and irrelevant data to focus on the most important routes.
- **Interactive UI**: Powered by Streamlit, providing a GUI to tweak parameters and see changes instantly.
- **PDF Export**: Generate funnel visualizations as PDF files.

## Installation

To install **Funnelius**, use pip:

```bash
pip install funnelius
```

## Usage

Here’s a quick example of how to use Funnelius to analyze a funnel:

1- Import the library:

```python
import funnelius as fa
```
2- Prepare your funnel data in a pandas DataFrame with these structure:

| user_id | action | action_start | answer |
|----------|----------|----------|----------|
| 1 | 1st question | 2025-04-10 12:04:15.00 | Yes | 
| 1 | 2nd question | 2025-04-10 12:05:17.00 | No |

Render the funnel analysis:

```python
fa.render(df)
```

Funnelius will process this data and generate a visual funnel with conversion rates, drop-off percentages, and more.

You can pass this optional parameters to fine tune funnel: 

- **df:** The input pandas DataFrame containing user journey data with user_id, action, and action_start columns.

- **title:** Filename (without extension) used for exporting the final funnel visualization as a PDF.

- **first_actions_filter:** Optional list of starting actions to include; filters out journeys that begin with other actions.

- **goals:** List of actions that define successful completion of the journey (used to calculate conversion).

- **max_path_num:** Maximum number of unique user paths to display in the graph; 0 means show all.

- **show_drop:** Boolean flag to include or exclude drop-off data from the funnel visualization.

- **show_answer:** Boolean flag to shw/hide answer  contribution in the funnel visualization.

- **comparison_df:** The DataFrame containing user journey data that you want to use to compare.

- **gradient:** A list with length 3 that contains gradient color data in RGB points. for example: gradient = [[255,205,205],[255,255,255],[205,255,205]] 

- **gradient_metric:** Metric that should be used for condtional formatting. Possible values are: **users**, **conversion-rate**, **percent-of-total** and **duration-median**

- **metrics:** A list of metrics to show in every step. Possible values are: **users**, **conversion-rate**, **percent-of-total** and **duration-median**

### Streamlit GUI

The library includes an interactive user interface powered by Streamlit, allowing you to visualize and tweak funnel parameters.

Run the app python:

```python
import funnelius as f
f.interactive()
```
screenshot:

<kbd><img src="images/Screenshot.png" alt="My Image with Gray Border" style="border:2px solid #000;"></kbd>

## Contributing

I welcome contributions! Feel free to open issues, or submit pull requests to help improve Funnelius.

## License

Funnelius is open-source software licensed under the Apache 2.0 License.


## Contact

For questions or feedback, please reach out via GitHub Issues.

Happy funnel analyzing! 🚀

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "funnelius",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "funnel, journey, path, graph",
    "author": null,
    "author_email": "Yaseen Esmaeelpour <yaseenes@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/40/6c/2612e254f5c86661adab67bd79a5fa217a547ba8a0f75457cd7c2a4923c6/funnelius-0.0.5.tar.gz",
    "platform": null,
    "description": "# Funnelius\n\n<kbd><img src=\"images/Screenshot.png\" alt=\"My Image with Gray Border\" style=\"border:2px solid #000;\"></kbd>\n\n**Funnelius** is an open-source Python library designed to analyze and visualize complex, non-linear user funnels. Built with Pandas, Graphviz, and Streamlit, it allows data scientists and analysts to easily track user journeys, calculate conversion rates, and identify bottlenecks.\n\n## Prerequisites\nPlease ensure that you have **graphviz** and **streamlit** installed and these tools can be accessed in your Operation System's path.\n\n## Features\n\n- **Visualize Complex Funnels**: Analyze and visualize non-linear, conditional funnels where the next step depends on previous answers or actions.\n- **Conversion Rate Calculation**: Automatically calculates conversion rates at each step of the funnel.\n- **Bottleneck Detection**: Uses conditional formatting to highlight steps with low conversion rates or long durations.\n- **Comparison**: Ability to compare two funnel data and see differences.\n- **Answe Contribution**: Show answer contribution of every step and changes.\n- **Filter and Clean Data**: Filters out noise and irrelevant data to focus on the most important routes.\n- **Interactive UI**: Powered by Streamlit, providing a GUI to tweak parameters and see changes instantly.\n- **PDF Export**: Generate funnel visualizations as PDF files.\n\n## Installation\n\nTo install **Funnelius**, use pip:\n\n```bash\npip install funnelius\n```\n\n## Usage\n\nHere\u2019s a quick example of how to use Funnelius to analyze a funnel:\n\n1- Import the library:\n\n```python\nimport funnelius as fa\n```\n2- Prepare your funnel data in a pandas DataFrame with these structure:\n\n| user_id | action | action_start | answer |\n|----------|----------|----------|----------|\n| 1 | 1st question | 2025-04-10 12:04:15.00 | Yes | \n| 1 | 2nd question | 2025-04-10 12:05:17.00 | No |\n\nRender the funnel analysis:\n\n```python\nfa.render(df)\n```\n\nFunnelius will process this data and generate a visual funnel with conversion rates, drop-off percentages, and more.\n\nYou can pass this optional parameters to fine tune funnel: \n\n- **df:** The input pandas DataFrame containing user journey data with user_id, action, and action_start columns.\n\n- **title:** Filename (without extension) used for exporting the final funnel visualization as a PDF.\n\n- **first_actions_filter:** Optional list of starting actions to include; filters out journeys that begin with other actions.\n\n- **goals:** List of actions that define successful completion of the journey (used to calculate conversion).\n\n- **max_path_num:** Maximum number of unique user paths to display in the graph; 0 means show all.\n\n- **show_drop:** Boolean flag to include or exclude drop-off data from the funnel visualization.\n\n- **show_answer:** Boolean flag to shw/hide answer  contribution in the funnel visualization.\n\n- **comparison_df:** The DataFrame containing user journey data that you want to use to compare.\n\n- **gradient:** A list with length 3 that contains gradient color data in RGB points. for example: gradient = [[255,205,205],[255,255,255],[205,255,205]] \n\n- **gradient_metric:** Metric that should be used for condtional formatting. Possible values are: **users**, **conversion-rate**, **percent-of-total** and **duration-median**\n\n- **metrics:** A list of metrics to show in every step. Possible values are: **users**, **conversion-rate**, **percent-of-total** and **duration-median**\n\n### Streamlit GUI\n\nThe library includes an interactive user interface powered by Streamlit, allowing you to visualize and tweak funnel parameters.\n\nRun the app python:\n\n```python\nimport funnelius as f\nf.interactive()\n```\nscreenshot:\n\n<kbd><img src=\"images/Screenshot.png\" alt=\"My Image with Gray Border\" style=\"border:2px solid #000;\"></kbd>\n\n## Contributing\n\nI welcome contributions! Feel free to open issues, or submit pull requests to help improve Funnelius.\n\n## License\n\nFunnelius is open-source software licensed under the Apache 2.0 License.\n\n\n## Contact\n\nFor questions or feedback, please reach out via GitHub Issues.\n\nHappy funnel analyzing! \ud83d\ude80\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Funnelius is an open-source Python library designed to analyze and visualize complex, non-linear user funnels.",
    "version": "0.0.5",
    "project_urls": {
        "Homepage": "https://github.com/yaseenesmaeelpour/funnelius",
        "Issues": "https://github.com/yaseenesmaeelpour/funnelius/issues"
    },
    "split_keywords": [
        "funnel",
        " journey",
        " path",
        " graph"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5c425a65aec5d87e6d40b8f73891b839765db38e0a77bec022f0a63abbfc4bb3",
                "md5": "8b53c045eb9f84997a9613d85ae9d2bc",
                "sha256": "6bb2cf683cb2a923a9264aa7df7923e88c44fe70fdb14480de7f18ea2023bb5f"
            },
            "downloads": -1,
            "filename": "funnelius-0.0.5-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "8b53c045eb9f84997a9613d85ae9d2bc",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 20903,
            "upload_time": "2025-09-01T17:15:43",
            "upload_time_iso_8601": "2025-09-01T17:15:43.406623Z",
            "url": "https://files.pythonhosted.org/packages/5c/42/5a65aec5d87e6d40b8f73891b839765db38e0a77bec022f0a63abbfc4bb3/funnelius-0.0.5-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "406c2612e254f5c86661adab67bd79a5fa217a547ba8a0f75457cd7c2a4923c6",
                "md5": "eb0c37a036a28841114d8280e5adcaf6",
                "sha256": "0de662a11fe841243a9d906e9ad6d339989f2814edf47f86b3405f03f6002314"
            },
            "downloads": -1,
            "filename": "funnelius-0.0.5.tar.gz",
            "has_sig": false,
            "md5_digest": "eb0c37a036a28841114d8280e5adcaf6",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 19234,
            "upload_time": "2025-09-01T17:15:44",
            "upload_time_iso_8601": "2025-09-01T17:15:44.918508Z",
            "url": "https://files.pythonhosted.org/packages/40/6c/2612e254f5c86661adab67bd79a5fa217a547ba8a0f75457cd7c2a4923c6/funnelius-0.0.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-01 17:15:44",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "yaseenesmaeelpour",
    "github_project": "funnelius",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "funnelius"
}
        
Elapsed time: 1.46743s