Flow contracts
Outcome contracts, checkpoints, time budgets and exit conditions from config/flows/*.yaml.
new_opportunity
Section titled “new_opportunity”Source: config/flows/new_opportunity.yaml.
Time budget: 8 minutes.
Applies when:
{ "step_in": [ 1, 2 ]}| Id | Required | Satisfied when | Description |
|---|---|---|---|
| identify_pain | yes | meddic.identify_pain.evidenced | Pain stated in the customer’s words with a checkable specific |
Checkpoints:
- Stub flow. Loader must still start a session from this file.
Exit conditions:
- Rep ends session
risk_review
Section titled “risk_review”Source: config/flows/risk_review.yaml.
Time budget: 10 minutes.
Applies when:
{}| Id | Required | Satisfied when | Description |
|---|---|---|---|
| p2_challenged | yes | outcome_recorded.p2_challenged | P2 rating tested against evidenced MEDDIC, not champion enthusiasm |
| economic_buyer_named | yes | meddic.economic_buyer.evidenced_or_unknown | Economic buyer identified by name, or explicitly marked unknown |
| decision_process_or_unknown | yes | meddic.decision_process.evidenced_or_unknown | Decision process evidenced or marked unknown |
| close_date_challenged | yes | outcome_recorded.close_date_challenged | Close date tested, especially if it has already slipped |
Checkpoints:
-
Must not accept “the champion loves it” as a reason to stay at 90
-
Must ask who the economic buyer is, by name
-
Must challenge a slipped close date
-
If the rep resists a P2 downgrade, hold the line and still propose it
Exit conditions:
-
All required outcomes satisfied or explicitly marked unknown
-
Time budget reached (propose parking remainder)
-
Rep ends session
transition_30_60
Section titled “transition_30_60”Source: config/flows/transition_30_60.yaml.
Time budget: 8 minutes.
Applies when:
{ "step_in": [ 2 ], "proposed_step": 3}| Id | Required | Satisfied when | Description |
|---|---|---|---|
| champion_named | yes | meddic.champion.evidenced | Champion identified by name |
Checkpoints:
- Stub flow. Loader must still start a session from this file.
Exit conditions:
- Rep ends session
transition_60_90
Section titled “transition_60_90”Source: config/flows/transition_60_90.yaml.
Time budget: 12 minutes.
Applies when:
{ "step_in": [ 4 ], "proposed_step": 5}| Id | Required | Satisfied when | Description |
|---|---|---|---|
| economic_buyer_named | yes | meddic.economic_buyer.evidenced | Economic buyer identified by name with confirmed budget authority |
| decision_criteria_specific | yes | meddic.decision_criteria.evidenced | Decision criteria contain a checkable specific (weighting, score, evaluator, or date) |
| decision_process_dated | yes | meddic.decision_process.evidenced | Decision process includes dates through to signature |
| metrics_quantified | yes | meddic.metrics.evidenced | Metrics include a figure for business impact |
| close_date_challenged | yes | outcome_recorded.close_date_challenged | Close date tested against the customer’s own decision process dates |
| competitive_position | no | outcome_recorded.competitive_position_tested | Competitive position tested against domain.md plausibility |
Checkpoints:
-
Must ask who signs the contract, by name
-
Must ask what happens between now and the close date, with dates
-
Must ask how they will choose, with weightings or a scoring matrix
-
Must test the stated competitive position against domain.md plausibility
Exit conditions:
-
All required outcomes satisfied or explicitly marked unknown
-
Time budget reached (propose parking remainder)
-
Rep ends session