---
title: "GraphEdge"
description: "one edge of the graph a strategy, a play or a move is: from a done vertex to the next, guarded by a predicate over the record, or by the row always"
section: concepts
address: /concepts/graphedge
contract: 0476e35e6e275db5
---

# GraphEdge

one edge of the graph a strategy, a play or a move is: from a done vertex to the next, guarded by a predicate over the record, or by the row always

[figure: GraphEdge is a value at none scope. The drawing shows its fields and the objects that they point at.]

| property | value |
|---|---|
| kind | value |
| scope | none |
| key | none |
| store | none |
| family | strategy |



## Fields


| field | type | required | note |
|---|---|---|---|
| `from_vertex` | `id` | yes | the play, move or action the edge leaves |
| `to_vertex` | `id` | yes | the play, move or action the edge enters |
| `level` | `one of strategy \| play \| move` | yes | which graph the edge belongs to |
| `always` | `bool` | yes | true for a list edge with no predicate |
| `predicate` | [Predicate](/concepts/predicate) | no | absent when always; over the record's populations, the moves of the strategy, the actions of the move or the twin's stocks |
| `holds_by_horizon` | [Interval](/concepts/interval) | no | the chance the predicate holds before the horizon, from the rate at which it held before; never measured when it has no history |
| `state` | [Readiness](/concepts/readiness) | yes | not ready with the population named when the predicate cannot be evaluated |



## Routes that use it
No route takes or returns GraphEdge directly. The record holds it, and the objects that point at it reach it.
