Skip to main content

The RAMS ToolKit (RAMSTK) is a suite of tools for performing and documenting reliability, availability, maintainability, and safety (RAMS) analyses

Project description


A ToolKit for Reliability, Availability, Maintainability, and Safety (RAMS) analyses.

Documentation Documentation Status
Tests GitHub Workflow Status Coverage Status
Quality CodeFactor Deep Code Quality Gate
Packages GitHub release (latest SemVer including pre-releases) PyPI

🚩 Table of Contents

🎨 Features

RAMSTK is built on the concept of modules where a module is a collection of related information and/or analyses pertinent to system development. The modules currently included in RAMSTK are:

  • Function Module
    • Functional decomposition
    • Hazards analysis
  • Requirements Module
    • Stakeholder input prioritization
    • Requirement development
    • Analysis of requirement for clarity, completeness, consistency, and verifiability
  • Hardware Module
    • Reliability allocation
      • Equal apportionment
      • AGREE apportionment
      • ARINC apportionment
      • Feasibility of Objectives
    • Hardware reliability predictions using various methods
      • Similar items analysis
      • MIL-HDBK-217F parts count
      • MIL-HDBK-217F parts stress
      • RPN
      • MIL-STD-1629A, Task 102 Criticality Analysis
    • Physics of failure analysis
  • Validation Module
    • Task description
    • Task acceptance value(s)
    • Task time
    • Task cost
    • Overall validation plan time/cost estimates

💾 Installing

These instructions will get RAMSTK up and running on your local machine . Note that the Makefile contains all the commands needed to install or work with RAMSTK. You should consult the help output for more information.


I use pip-tools to manage the dependencies for RAMSTK while I'm developing so the requirements.txt file is formated for use with the pip-sync command. However, it will also work with pip.

$ make requirements
$ pip install -r requirements.txt

should get all the needed runtime requirements installed if they're not already. The first command is needed to ensure the requirements.txt file is updated for your Python version; some dependency versions differ with Python version.

If you're planning to do some development work on RAMSTK, the following would be the better approach:

$ pip install pyenv
$ make mkvenv
$ make usevenv ramstk-venv
$ pip install pip-tools
$ make requirements
$ make depends

This will install pyenv, create a virtual environment with the default name of ramstk-venv, activate that virtual environment, install pip-tools, and then install all the RAMSTK dependencies needed for testing, development, and runtime.

RAMSTK uses postgresql for it's database engine. You'll need to have a user with read/write access to a postgresql server to use RAMSTK.


Install any missing RAMSTK dependencies using pip, your package manager, and/or build from source. Then download the <version> of RAMSTK source from GitHub Releases you wish to install.

$ wget<version>.tar.gz
$ tar -xf v<version>.tar.gz
$ cd ramstk-<version>
$ make install

The install target recognizes PREFIX=<non-default install path> so you can install RAMSTK in your $HOME or a virtual environment. Since RAMSTK is still a version 0 product, it's highly recommended that you install in a virtual environment.

$ wget<version>.tar.gz
$ tar -xf v<version>.tar.gz
$ cd ramstk-<version>
$ make PREFIX=$VIRTUAL_ENV install

RAMSTK is also available from PyPi so you can use pip to install as well.

$ pip install

Running the Tests

To run the entire test suite for RAMSTK after installing, simply execute:

$ make test

To run the test suite with coverage, execute:

$ make coverage

To run specific tests or groups of tests, use pytest:

$ pytest -m integration tests/modules/
$ pytest -m calculation tests/analyses/prediction

🔨 Usage

After installing RAMSTK, it can be launched from a terminal emulator:

$ ramstk

This is a good option if you need to file an issue as the output should be included in your report.

RAMSTK installs a *.desktop file and can be found where ever applications in the category Math or Science are listed.


Documentation for RAMSTK can be found at Read the Docs You should check it out!

💬 Contributing

Please read for details on our code of conduct, and the process for submitting pull requests to us.

Also read for instructions on setting up a development environment to work on and test RAMSTK.

🍞 Authors

  • Doyle 'weibullguy' Rowland - Initial work - weibullguy

📜 License

This project is licensed under the BSD-3-Clause License - see the LICENSE file for details.

RAMSTK is also registered with the United States Copyright Office under registration number TXu 1-896-035.

Similar Products

The following are commercially available products that perform RAMS analyses . We are not endorsing any of them; they are all fine products and may be a better fit for you or your organization depending on your needs and budget . Obviously, we would prefer you use RAMSTK.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for RAMSTK, version 0.14.0
Filename, size File type Python version Upload date Hashes
Filename, size RAMSTK-0.14.0-py3-none-any.whl (769.4 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size RAMSTK-0.14.0.tar.gz (638.2 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page