Docs
  • Solver
  • Models
    • Field Service Routing
    • Employee Shift Scheduling
    • Pick-up and Delivery Routing
    • Task Scheduling
  • Platform
Try models
  • Timefold Solver SNAPSHOT
  • Deploying to the Timefold Platform
  • Using metrics
  • Edit this Page

Timefold Solver SNAPSHOT

    • Introduction
    • Getting started
      • Overview
      • Build as a service
      • Embed as a library
        • Hello World guide
        • Quarkus guide
        • Spring Boot guide
    • Domain modeling
      • Guide
      • Building blocks
      • Common patterns
    • Constraints and score
      • Overview
      • Score calculation
      • Understanding the score
      • Load balancing and fairness
      • Performance tips and tricks
    • Running the Solver
      • Overview
      • As a service
        • REST API
        • Model Enrichment
        • Constraint weights
        • Demo data
        • Exposing metrics
      • As a library
        • Configuring Timefold Solver
        • Constraint weights
        • Quarkus integration
        • Spring Boot integration
        • JPA/JAXB/JSON integration
    • Diagnosing the Solver
      • Benchmarking
      • Solver diagnostics
    • Deploying to the Timefold Platform
      • Overview
      • Getting started
      • Platform model metadata
      • Using metrics
    • Optimization algorithms
      • Overview
      • Construction heuristics
      • Local search
      • Exhaustive search
      • Custom moves
        • Neighborhoods API
        • Move Selector reference
    • Responding to change
      • Continuous planning
      • Real-time planning
      • Non-disruptive replanning
      • Assignment Recommendation API
    • Example use cases
      • Vehicle routing (guide)
      • More examples on GitHub
    • FAQ
    • New and noteworthy
    • Upgrading Timefold Solver
      • Upgrading Timefold Solver: Overview
      • Upgrade from Timefold Solver 1.x to 2.x
      • Upgrading from OptaPlanner
      • Backwards compatibility
      • Migration guides
        • Variable Listeners to Custom Shadow Variables
        • Chained planning variable to planning list variable
    • Commercial editions
      • Overview
      • Installation
      • Performance improvements
      • Score analysis
      • Recommendation API
      • Nearby selection
      • Multithreaded solving
      • Partitioned search
      • Constraint profiling
      • Multistage moves
      • Throttling best solution events
      • License management

Using metrics

Deploying custom models to the platform is in preview.

This is currently only available to a limited set of partners. If you’re interested in joining this preview program, get in touch with the Timefold team to discuss access.

Metrics aren’t just extra fields in the API response. Once your model is deployed to Timefold Platform, input and output metrics feed several platform features that would otherwise only show consumers a raw score and a solved dataset:

  • Solve graphs: output metrics can be plotted alongside the hard, medium, and soft score as the solver runs, so consumers see how a metric evolves over time, not just its final value. See Solve graphs for details.

  • Dataset comparison: input and output metrics are available as columns when comparing multiple datasets side by side, making it possible to spot how problem size or solution quality differs between them. See Comparing datasets for details.

  • Insights: both metric types can be tracked over time across many datasets, so consumers can tell whether operational planning is improving or degrading. See Insights for details.

Without input and output metrics, none of these views have anything model-specific to show beyond the score.

See Exposing metrics for how to define and implement input and output metrics on your model.

While you’re at it, give each metric a proper OpenAPI title, description, and format in its @Schema annotation. These surface directly in the platform UI: in solve graphs, the comparison view, and Insights, consumers see the title as the metric’s label and the description as its explanation, not the raw field name. A metric without a clear title and description is much harder for a consumer to interpret at a glance.

Redeploy your model, as described in Getting started: deploying to the platform, then submit a dataset and check that your metrics show up in the solve graphs, comparison view, and Insights.

  • © 2026 Timefold BV
  • Timefold.ai
  • Documentation
  • Changelog
  • Send feedback
  • Privacy
  • Legal
    • Light mode
    • Dark mode
    • System default