Skip to main content

Overview

Projects are the organizational structure of Metaculus. They group related questions together and control access, visibility, and governance. Every question belongs to exactly one primary project and can be tagged to multiple additional projects.

Project Types

Metaculus supports multiple project types for different use cases (from projects/models.py:213-223):

Tournaments

Competitions with prizes and leaderboards

Communities

Independent forecasting communities

Categories

Organize by topic (AI, climate, politics)

Question Series

Ongoing question collections on specific topics

Indices

Aggregate metrics from multiple questions

Personal Projects

Custom question collections

Project Structure

From projects/models.py:212-402, the core project model:

Question-Project Relationship

Questions are associated with projects through posts:

Primary Project

Every question belongs to exactly one primary project through its post (from questions/models.py:249-259):

Additional Projects (Tags)

Posts can be tagged to multiple additional projects:
The primary project (default_project) controls governance, while additional projects (projects) provide categorization and discovery.

Permissions

Projects use a hierarchical permission system to control access.

Permission Levels

From projects/permissions.py, the available permissions are:
  • null: Private project - no access
  • VIEWER: Can view questions and forecasts
  • FORECASTER: Can view and make predictions
  • CURATOR: Can view, forecast, and help curate content
  • ADMIN: Full control over project

Default Permission

From projects/models.py:332-339:
Setting default_permission = null makes the project completely private - only users with explicit permission overrides can access it.

Permission Overrides

Individual users can have custom permissions (from projects/models.py:498-513):

Permission Resolution

From projects/models.py:162-191, permissions are resolved with priority:
  1. Superuser: Automatically get ADMIN permission
  2. Creator: Project creator gets ADMIN permission
  3. Override: Explicit ProjectUserPermission if set
  4. Default: Falls back to project’s default_permission

Visibility

Projects control how they appear across the platform.

Visibility Options

From projects/models.py:229-362:
  • Visible on the main feed
  • Questions contribute to global leaderboards and medals
  • Listed on tournaments/question series page
Use for: Public competitions and major question collections

Homepage Display

From projects/models.py:364-368:
Featured projects can be promoted to the homepage for maximum visibility.

Communities

Communities are projects run by external organizations or user groups.

Community Features

  • Independent governance (custom admins)
  • Own leaderboards and competitions
  • Custom branding (header images, logos)
  • Separate permission management
  • Can host tournaments within the community

Creating Communities

Communities are created with type=COMMUNITY and automatically get a primary leaderboard (from projects/models.py:422-439).

Indices

Indices aggregate multiple questions into a single metric.

Index Structure

From projects/models.py:533-563:

Index Post Weights

Questions contribute to indices with configurable weights (from projects/models.py:566-614):
Example: A democracy index might weight “free elections” at 2.0 and “press freedom” at 1.5.

Project Metrics

Projects track engagement metrics (from projects/models.py:375-379):
These are updated via (from projects/models.py:470-495):

Subscriptions

Users can follow projects to receive updates (from projects/models.py:516-530):
Subscribe to projects you’re interested in to get notifications when new questions are added or important updates occur.

Querying Projects

Metaculus provides powerful querysets for filtering projects.

By Type

From projects/models.py:24-47:

By Permission

From projects/models.py:193-209:

With Annotations

From projects/models.py:49-159:

Use Cases

Create a TOURNAMENT project with prize pool, set start/close dates, configure leaderboard, add curated questions.
Create a COMMUNITY project, set custom permissions, add admins via ProjectUserPermission, enable subscriptions.
Create a TOPIC or CATEGORY project, tag relevant questions via post.projects, users can filter by topic.
Create an INDEX project, configure scale and labels, add weighted questions via ProjectIndexPost.
Create a PERSONAL_PROJECT, set default_permission=null for privacy, organize questions you’re tracking.

Best Practices

1

Choose the Right Type

Select the project type that matches your use case. Don’t use TOURNAMENT for simple question collections.
2

Set Appropriate Permissions

Consider who should access your project. Most public projects use FORECASTER as default.
3

Configure Visibility

Use UNLISTED for work-in-progress, NOT_IN_MAIN_FEED for specialized content, NORMAL for featured content.
4

Add Clear Descriptions

Write comprehensive descriptions and resolution criteria so participants understand the project goals.
5

Enable Subscriptions

Make your project subscribable so interested users can follow updates and new questions.

API Reference

Projects API

Explore the full Projects API documentation

Tournaments

Learn about competitive forecasting

Leaderboards

Understand project-specific rankings

Questions

Learn about organizing questions

Permissions

Deep dive into permission management