Skip to content

Conversation

@ahouseholder
Copy link
Contributor

@ahouseholder ahouseholder commented Aug 28, 2025

This PR adds a collection of decision points that reflect probability and quantile bins, allowing SSVC users to incorporate probability-based and quantile-based data into their decision tables. This PR is just adding the decision points themselves. We'll need to followup with documentation and examples later once we've had some opportunity to see how folks use it.

Copilot Summary

This pull request introduces several new decision point definitions and supporting code for the basic namespace in the SSVC project, with a focus on probability scales and boundary proximity. The changes include the addition of JSON schema files for various probability and quantile scales, new Python modules to implement these decision points, and supporting base classes and documentation.

New Decision Point Definitions and Implementations

  • Added JSON schema files for new decision points:

    • boundary_proximity_1_0_0.json: Defines a boolean boundary proximity decision point.
    • cis_cti_words_of_estimative_probability_1_0_0.json: Defines a 7-level probability scale based on CIS-CTI words of estimative probability.
    • median_split_1_0_0.json, quartiles_1_0_0.json, quintiles_1_0_0.json: Define quantile-based decision points (median, quartiles, quintiles). [1] [2] [3]
    • probability_scale_in_2_equal_levels_ascending_1_0_0.json, probability_scale_in_5_equal_levels_ascending_1_0_0.json, probability_scale_in_5_weighted_levels_ascending_1_0_0.json: Define probability scales with different binning strategies. [1] [2] [3]
  • Added Python modules implementing these decision points:

    • near_boundary.py: Implements the boundary proximity decision point.
    • probability/cis_wep.py, probability/five_equal.py, probability/five_weighted.py: Implement various probability scale decision points. [1] [2] [3]
    • basic/base.py: Provides a base class for decision points in the basic namespace.
    • probability/__init__.py: Adds documentation and copyright.

Documentation and Licensing

  • Added or updated module-level docstrings and copyright/license statements in new and existing files for compliance and clarity. [1] [2] [3]

Minor Code Improvements

  • Reformatted a print statement for readability in base.py.

Key changes by theme:

Decision Point Definitions (JSON):

  • Added JSON schema files for boundary proximity, CIS-CTI probability scale, median split, quartiles, quintiles, and various probability scales. [1] [2] [3] [4] [5] [6] [7] [8]

Python Implementations:

  • Implemented new decision points in Python: boundary proximity (near_boundary.py), probability scales (cis_wep.py, five_equal.py, five_weighted.py), and added a base class for the basic namespace (basic/base.py). [1] [2] [3] [4] [5]
  • Added a new probability/__init__.py with documentation.

Documentation and Licensing:

  • Added or updated docstrings and copyright/license headers in new modules. [1] [2] [3]

Minor Code Style:

  • Improved readability of a print statement in base.py.

@ahouseholder ahouseholder added this to the 2025-09 milestone Aug 28, 2025
@ahouseholder ahouseholder self-assigned this Aug 28, 2025
@ahouseholder ahouseholder added tech/backend Back-end tools, code, infrastructure tech/data Data implementation (content of /data, data object instances, etc.) integration Related to integration of SSVC into another framework or system labels Aug 28, 2025
This can be used in situations where a quantized binned value might be close to a boundary condition, as part of a small decision table that could augment a decision based on that binning.
This can be used in situations where a quantized binned value might be close to a boundary condition, as part of a small decision table that could augment a decision based on that binning.
`black` got a little ambitious on me
Copy link
Contributor

@sei-vsarvepalli sei-vsarvepalli left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is very good idea. A generic probability tool.

@ahouseholder ahouseholder merged commit b3b53f2 into main Sep 2, 2025
4 checks passed
@ahouseholder ahouseholder deleted the probability branch September 2, 2025 14:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

integration Related to integration of SSVC into another framework or system tech/backend Back-end tools, code, infrastructure tech/data Data implementation (content of /data, data object instances, etc.)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add probability and quantile-based bins as basic decision points

3 participants