ChapDHIS2.orgCommunityGitHub
Chap Marketplace

Submit a model

Contributing a model means listing it in the Chap Marketplace, so that anyone running the Chap Modeling Platform can find it, install it and use it from the DHIS2 Modeling App. Your name and organization are shown on the model's page. The model stays yours: its code lives in your own repository, and you keep developing and maintaining it there.

What you need

  • A model packaged as a chapkit service, with its image published. If your model is not packaged yet, the chapkit guide explains how.
  • A short description of the model: what it does, which disease and setting it was developed for, and what data it needs.

What happens when you submit

  1. 1

    You submit

    You describe your model in a single YAML file and open a pull request in the Chap Marketplace repository on GitHub. The example file and checklist below show what to include.

  2. 2

    We review and verify it

    The Chap team checks that the model works with Chap: that it is a chapkit service whose published image matches the listed code, that it registers with Chap and can train and predict, and that the file is valid. This is what we call verification. Read Model verification for what it covers and what it does not.

  3. 3

    Your model is listed

    Once the review is approved, the model appears in the marketplace under your name. If you opt in, by setting benchmarking: true in the model file, it is also run in our benchmarks.

To publish a new version later, open a pull request that adds it to your file. Each version is verified separately.

Verification checks that a model runs in Chap. It does not judge how good its forecasts are. Describe honestly in your file what the model was developed and tested for, so users can judge whether it fits their needs.

Example file

Full format in models/README.md.

models/my_model.yaml
1schema_version: 2
2
3id: my_model
4service_id: my-model # MLServiceInfo.id — kebab-case of id
5display_name: My Model
6kind: model # model | starter
7benchmarking: true # opt in to the benchmarks (default false)
8assessed_status: red # YOUR OWN chapkit AssessedStatus
9
10summary: >-
11 What the model is and when to use it.
12
13developed_for: >- # the disease and setting you tested it on
14 Monthly dengue cases in Country X at district level.
15
16source:
17 repository: https://github.com/org/my_model
18 image: ghcr.io/org/my_model # published, no tag
19 runtime_image: ghcr.io/dhis2-chap/chapkit-py # the chapkit base
20
21attribution:
22 author: Your Name
23 organization: Your Institute
24 original_source: https://... # upstream model, if you adapted one
25
26compatibility:
27 period_types: [monthly]
28 min_prediction_periods: 1
29 max_prediction_periods: 12
30 requires_geo: false
31
32covariates:
33 required: [population] # supplied automatically by chap
34 defaults: [rainfall] # your service's own defaults
35 allow_free_additional: true
36
37channels:
38 stable: 1.0.0 # must point at a verified version
39 latest: 1.0.0
40
41versions:
42 - version: 1.0.0 # your MLServiceInfo.version
43 commit: 1111111111111111111111111111111111111111
44 image_tag: sha-1111111 # the tag built from that commit
45 image_digest: sha256:… # what that tag resolves to
46 chapkit: ">=2.0.0,<3"
47 status: verified # set by maintainers on approval
48 verified_by: [] # the reviewers
49 changelog: First submission.
50
51configurations:
52 monthly:
53 description: When to use this configuration.
54 config:
55 prediction_periods: 3
56 some_option: 12
57 additional_continuous_covariates: [rainfall]