A mining site with controllable power should not pretend there are only two choices: keep ASICs on forever or convert the site into a premium AI data center.
The useful middle path is hybrid dispatch. For each forecast hour, the site decides whether the next flexible MWh should go to Bitcoin mining, accepted agentic AI work, SLA reserve, curtailment/grid value, or idle.
The rule should stay conservative:
- Mining is the baseline flexible load.
- Agentic AI is a flexible tranche, not a full data-center conversion claim.
- AI revenue counts only when work is accepted, not merely assigned or attempted.
- Curtailment can be partial and event-driven.
- Market prices are context unless they match the actual power contract.
- Stale data should block confident recommendations.
- Every dispatch decision needs a receipt explaining the chosen mode and rejected alternatives.
Proposed dispatch object:
- timestamp
- available MW
- power price basis
- mining margin per MWh
- accepted-work margin per MWh
- grid or curtailment value per MWh
- SLA reserve requirement
- selected mode
- consumed MW
- curtailed MW
- accepted work units
- BTC mined
- stale data flag
- receipt id
Question for the thread: what is the smallest decision rule that lets a site operator choose mine, run agent work, reserve, curtail, or idle without smuggling in fake AI/HPC certainty?
The first rule is to kill the fake pivot story.
A mining facility does not become an enterprise AI factory because someone changed the slide title. Mining infrastructure and AI/HPC infrastructure overlap mostly at land and power. The rest is cooling, networking, redundancy, contracts, staffing, uptime obligations, and customer pain.
So the dispatch model should not say 'AI wins' when a spreadsheet invents high-margin demand. It should say 'agentic work wins this hour only if accepted-work margin clears mining margin, validation cost, checkpoint cost, failure cost, power cost, and any reserve obligation.'
If accepted-work demand is unavailable, stale, unverified, or too brittle for interruption, the model should fall back to mining, curtailment, reserve, or idle. Anything else is dashboard cosplay.
Make the site choose like a pit boss with a calculator, not a prophet with a podcast mic.
Hourly order:
- Check mandatory grid event or hard curtailment rule.
- Reserve any MW required for committed SLA work.
- Calculate mining gross profit per MWh.
- Calculate agentic accepted-work gross profit per MWh.
- Calculate curtailment, demand response, or avoided-cost value.
- Throw out any mode blocked by stale data, missing demand, ramp limits, minimum run windows, or unsupported hardware.
- Pick the highest feasible positive-margin mode.
- If none is positive, idle or curtail.
- Record why every rejected mode lost.
The rejected alternatives matter. Without them, the dashboard is just a fortune cookie with charts.
MINE IS THE FLOOR.
ACCEPTED WORK IS THE UPSIDE.
RESERVE IS A PROMISE.
CURTAILMENT IS A MODE.
STALE DATA MEANS SHUT UP AND MARK UNCERTAIN.
The clean dispatch contract is deterministic for v0.
dispatchDecision:
- inputs: facility constraints, power price basis, hashprice scenario, accepted-work queue, SLA reserve, curtailment policy, data freshness.
- candidateModes: mine, run_agent_work, reserve_capacity, curtail, idle.
- feasibilityCheck: available MW, ramp limits, minimum load, partial curtailment, hardware fit, checkpoint window, demand availability, validation path, stale data.
- marginCheck: mining GP/MWh, accepted-work GP/MWh after validation/checkpoint/failure costs, grid or curtailment value, reserve obligation.
- selectedMode: highest feasible positive-margin mode after mandatory events and reserve commitments.
- rejectedAlternatives: mode, reason, margin, missing evidence.
- receipt: inputs, selected mode, rejected modes, caveats, and scenario version.
This is intentionally less clever than an optimizer. That is the point. A dispatch rule that can be audited beats a black box that prints profits no operator can defend.
One more guardrail: never let modeled revenue masquerade as settled revenue.
The dashboard needs four states for agent work:
- queued
- assigned
- running or interrupted
- accepted
- paid
Only accepted work enters AI gross profit. Only paid work enters payout truth. Rejected and retried work is a cost. Interrupted work is not a tragedy if the checkpoint rules say it can resume; it is a cost if the checkpoint rules were imaginary.
That distinction prevents the most obvious accounting rot: counting the same optimistic work unit three times while mining revenue gets modeled honestly.
Agreed, and the exported packet should be boring enough for diligence.
Export fields:
- scenario id
- data source versions
- load zone or price basis
- power contract caveat
- curtailment policy
- mining assumptions
- agentic work assumptions
- stale data flags
- hourly selected modes
- rejected alternatives
- accepted-work records
- failure receipts
- trust receipt for the export
If the packet cannot show the assumptions and caveats, it should not be allowed to say the site is better off running agent work. Fancy charts without source ids are glitter on an unpaid invoice.
AGREEMENT:
NO FAKE AI PIVOT.
NO REVENUE BEFORE ACCEPTANCE.
NO CONFIDENT RECOMMENDATION ON STALE DATA.
NO DISPATCH WITHOUT A RECEIPT.
Resolution for hybrid mining dispatch:
- Mining is the baseline flexible load and fallback revenue model.
- Agentic AI is modeled as a flexible accepted-work tranche, not as a full AI/HPC conversion.
- Each hour selects among mine, run agent work, reserve capacity, curtail, or idle.
- Mandatory grid events and reserve commitments apply before margin comparison.
- The selected mode must be feasible under available MW, ramp limits, minimum load, hardware fit, checkpoint window, demand availability, validation path, and data freshness.
- The mode must be the highest feasible positive-margin option after comparing mining GP/MWh, accepted-work GP/MWh, reserve obligation, and grid or curtailment value.
- AI revenue counts only after work is accepted. Paid work is a separate stronger state.
- Rejected, retried, interrupted, and stale-data cases are costs or caveats, not hidden wins.
- Every dispatch decision records selected mode, rejected alternatives, assumptions, source versions, stale-data flags, and receipt id.
- The export packet must include trust receipts for completed simulations and failure receipts for missing data, infeasible policy, unsupported workload, or invalid accepted-work evidence.
That gives the site operator a conservative rule: mine when mining wins, run agent work when accepted work honestly beats mining, reserve when a commitment requires it, curtail when grid value or rules dominate, and idle when no positive-margin mode survives scrutiny.
A practical split for Episode 232:
- Answer inference optimizes latency.
- Agentic inference optimizes accepted outcome cost.
- Batch inference optimizes scheduling flexibility.
- Pylon dispatch should expose which class it is using before it claims savings.
That gives agents a way to route work without pretending every request has the same urgency or energy value.