36

/ 100

GradeF

The fundamentals need work — start with test coverage and CI.

Higher than 28% of 5,156 graded repos

Open-source statistical model (Elo + Dixon-Coles + Monte Carlo) for the 2026 FIFA World Cup — now running year-round on club football at https://theopenmodel.com

A low grade is a to-do list, not a judgment of your code

Most gaps here are documentation, tests, and setup, not the code itself. Closing your top 3 gaps alone would lift this repo to C (74).

See your top fixes
Now
F
41
Potential
C
74

Top fixes

Highest-impact changes first, ranked by point weight

15 to address
  1. 1
    Tests18pt

    Add automated tests. They prove the code works and give contributors confidence to make changes.

  2. 2
    CI/CD14pt

    If your CI lives elsewhere (a private repo that builds this one) or this project is itself a CI/CD tool, mark this check Not Applicable. Otherwise add a GitHub Actions workflow that runs tests on each push. It takes 15 minutes and reassures contributors their changes won't break things.

  3. 3
    README12pt

    Add CI/build status badges from shields.io or your CI provider to signal project health.

  4. 4
    Install and run instructions9pt

    Add a .env.example listing all required environment variables so contributors know what to set up.

Working through the fixes? Let every push regrade itself.

The free GitHub App rescans this repo on every push and posts the grade as a commit check, so the score climbs without coming back to rescan by hand.

Install the GitHub App

Scorecard

Every check, grouped by category and sorted worst-first

Documentation

78

Contributing guide5pt0

No CONTRIBUTING.md found (−47 pts base + up to −53 pts more for content).

→ Add a CONTRIBUTING.md telling newcomers how to get involved. Include setup, code style, test, and PR instructions.

README12pt90

README is present.

Install and run instructions9pt90

README documents how to install the project.

License6pt100

Licensed under MIT.

Engineering

0

Tests18pt0

No tests detected anywhere in the repository.

→ Add automated tests. They prove the code works and give contributors confidence to make changes.

CI/CD14pt0

No CI configuration detected in this repository.

→ If your CI lives elsewhere (a private repo that builds this one) or this project is itself a CI/CD tool, mark this check Not Applicable. Otherwise add a GitHub Actions workflow that runs tests on each push. It takes 15 minutes and reassures contributors their changes won't break things.

Linting and formatting5pt0

No linter or formatter found.

→ Add ESLint (eslint.config.js) and/or Prettier (.prettierrc), install them as devDependencies, and add a `lint` script to package.json.

Reproducibility6pt0

No dependency lockfile found (−70 pts).

→ Commit package-lock.json, pnpm-lock.yaml, yarn.lock, or bun.lock so Node installs are repeatable.

Issue and PR templates6pt0

No issue or PR templates found (−100 pts).

→ Add .github/ISSUE_TEMPLATE/ with bug_report.md and feature_request.md to guide contributors. It dramatically improves issue quality.

Project health

83

Activity5pt60

Last pushed 3-6 months ago (−40 pts). A push within 90 days earns 80 pts; within 30 days earns 100 pts.

→ A recent commit keeps the project looking alive to visitors and contributors.

Dependency manifest6pt80

Dependency manifest found (package.json).

Repository metadata5pt100

Repository has a description.

Housekeeping3pt100

.gitignore present.

Repository health signals

Activity, community, and responsiveness at scan time

Activity

  • 0 / 0
    Commits (30d / 90d)
  • 20
    Forks
  • 0
    Releases

Community

  • 42% - Weak
    Community health
  • 1 bus factorlow
    author own >50% of commits
  • 94
    Watchers

Responsiveness

  • 2d 6h
    Median issue response
  • -
    Median PR merge time
  • 6
    Open issues
Repository files11 root entries
  • data
  • docs
  • .gitignore
    Good: .gitignore present.
  • backtest.mjs
  • calibrate.mjs
  • elo.mjs
  • LICENSE
    Good: Licensed under MIT.
  • package.json
    Good: Dependency manifest found (package.json).
  • predict.mjs
  • README.md
    Good: README is present.
    Good: README is well structured with multiple sections.
    Good: README includes screenshots or visuals. Great for first impressions.
    Good: README has code examples.
    Good: README links to a live demo or deployed app.
    Issue: No status badges in the README (−10 pts).Fix: Add CI/build status badges from shields.io or your CI provider to signal project health.
    Good: README documents how to install the project.
    Good: README documents how to run the project.
  • track-record.mjs
RepoGrade badge preview

Add this badge to your README

It updates automatically each time the repo is re-graded.

[![RepoGrade](https://www.repo-grade.com/api/badge/hicruben/world-cup-2026-prediction-model)](https://www.repo-grade.com/report/hicruben/world-cup-2026-prediction-model)

More graded JavaScript repos