The aim of this repository is to centralize the work performed by the authors to write the paper: "Trends in Industry Support for Pricing-Driven DevOps in SaaS" for IEEE Transactions on Services Computing about the current status of SaaS pricings.
The SaaS of the following table are the ones that have been used in the paper. The following symbols are used to indicate the status of the SaaS for the indicated year:
- ✅: The SaaS is modeled for the indicated year.
- ✖️: There is a snapshot, but a clear feature list cannot be extracted.
- ❌: There isn't a snapshot for the SaaS in the indicated year.
SaaS | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 |
---|---|---|---|---|---|---|---|
Box | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Buffer | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Canva | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
CircleCI | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
ClickUp | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Clockify | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Crowdcast | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Databox | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Deskera | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
Dropbox | ✖️ | ✖️ | ✅ | ✅ | ✅ | ✅ | ✅ |
Evernote | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Figma | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
GitHub | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Hypercontext | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ |
Jira | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
MailChimp | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Microsoft 365 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Notion | ✖️ | ✖️ | ✅ | ✅ | ✅ | ✅ | ✅ |
Okta | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
OpenPhone | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Overleaf | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Planable | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Postman | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Pumble | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
Quip | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Salesforce | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Shopify | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Slack | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ |
Tableau | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Trello | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Trustmary | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
UserGuiding | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Webflow | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Wrike | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Zenhub | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Zoom | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Zapier | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ |
TOTAL: 240 pricings - 37 SaaS
The repository contains three main folders:
data
figures
src
In addition to these, there are some files:
.gitignore
: Contains the files that are ignored by git.analysis_and_figures.ipynb
: It is the notebook that contains all the data analysis performed for the paper and generates the figures included in it.Dockerfile
: Since having installed MiniZinc is mandatory to run some part of the experiment, a Dockerfile is provided to create a Docker image with MiniZinc installed.LICENSE
: Contains the license of the repository.package.json
andpackage-lock.json
: Contain the dependencies needed to run some scripts that are called from the notebook.README.md
: Contains the information of the repository.requirements.txt
: Contains the dependencies needed to theanalysis_and_figures.ipynb
notebook.tsconfig.json
: Contains the configuration of the TypeScript compiler for development tasks.
The data
folder initially contains a single subfolder: pricings
. This subfolder stores the dataset of pricing models used in the study, along with metadata and analytics about them (the latter is generated by the notebook analysis_and_figures
.ipynb).
During the execution of the labpack, a few additional folders may be created:
CSVs
: Contains CSV files summarizing the relevant variables from both the 2019–2024 and 2019–2025 datasets, as used throughout the study.pricings/dzn
: Includes the MiniZinc data models generated from each pricing. Although not used directly in the experiments, they are stored here for transparency, in case users wish to explore them further.pricings/json
: Stores the JSON files summarizing all analytics extracted from each pricing using the Pricing4TS package.
This folder contains the figures generated by the notebook analysis_and_figures.ipynb
.
The src
folder contains the scripts used to extract the analytics from the pricings dataset. Such scripts are written in TypeScript and leverage the Pricing4TS package to extract the analytics.
Dependencies can be installed using the following command:
pip install -r requirements.txt
Warning
If you don't want to install MiniZinc in your machine, you can use the Docker image provided in the repository. To build the image, run the following command:
docker build -t minizinc .
Warning
The notebook is designed to be run with Python 3.9 or higher.
The scripts can be run by following the notebook analysis_and_figures.ipynb
.
This work is licensed under a Creative Commons Attribution 4.0 International License.