Skip to content

Time-Shifted Execution

Defer non-urgent requests to execute during periods of lower grid carbon intensity.

How Time-Shifting Works

Time-shifted execution analyzes grid carbon intensity forecasts and schedules your requests for optimal sustainability:

  1. Submit Request: Queue your non-urgent workload
  2. Carbon Forecast: System predicts grid carbon intensity
  3. Optimal Scheduling: Request executes when carbon intensity is lowest
  4. Result Delivery: Receive response when complete

Basic Usage

python
from openai import OpenAI

client = OpenAI(
    base_url="https://api.gateflow.ai/v1",
    api_key="gw_prod_your_key_here"
)

# Defer execution to low-carbon period
response = client.chat.completions.create(
    model="gpt-5.2",
    messages=[{"role": "user", "content": "Generate comprehensive sustainability report"}],
    routing_mode="time_shift_optimized",
    max_delay_hours=12,  # Maximum acceptable delay
    priority="normal"  # low, normal, high
)

print(f"Job ID: {response.deferred_job_id}")
print(f"Estimated completion: {response.estimated_completion}")
print(f"Expected carbon savings: {response.estimated_carbon_savings_gco2e} gCO₂e")

Configuration Options

Delay Settings

python
# Short delay for slightly better carbon conditions
response = client.chat.completions.create(
    model="auto",
    messages=[{"role": "user", "content": "Quick analysis"}],
    routing_mode="time_shift_optimized",
    max_delay_hours=2,  # Complete within 2 hours
    min_carbon_savings_gco2e=10  # Minimum savings to justify delay
)

# Long delay for maximum carbon savings
response = client.chat.completions.create(
    model="auto",
    messages=[{"role": "user", "content": "Overnight data processing"}],
    routing_mode="time_shift_optimized",
    max_delay_hours=24,  # Can wait up to 24 hours
    target_carbon_intensity=200  # Wait for grid intensity <200 gCO₂/kWh
)

Priority Levels

PriorityTypical DelayUse Case
low6-24 hoursBackground processing, batch jobs
normal2-12 hoursReports, non-urgent analysis
high0-4 hoursTime-sensitive but flexible tasks

Monitoring Deferred Jobs

python
# Check job status
job_status = client.deferred_jobs.get(response.deferred_job_id)

print(f"Status: {job_status.status}")
print(f"Scheduled for: {job_status.scheduled_for}")
print(f"Carbon intensity at submission: {job_status.grid_intensity_at_submission}")
print(f"Carbon intensity at execution: {job_status.grid_intensity_at_execution}")
print(f"Actual carbon savings: {job_status.carbon_saved_vs_immediate}")

# Wait for completion and get result
if job_status.status == "completed":
    result = client.deferred_jobs.result(response.deferred_job_id)
    print(f"Result: {result.content}")

Batch Processing with Time-Shifting

python
# Process multiple requests in optimized batch
batch_response = client.batch.create(
    requests=[
        {
            "model": "auto",
            "messages": [{"role": "user", "content": "Analyze dataset A"}]
        },
        {
            "model": "auto",
            "messages": [{"role": "user", "content": "Analyze dataset B"}]
        },
        {
            "model": "auto",
            "messages": [{"role": "user", "content": "Analyze dataset C"}]
        }
    ],
    routing_mode="time_shift_optimized",
    max_delay_hours=8,
    batch_optimization="carbon_efficient"  # Optimize batch execution order
)

print(f"Batch ID: {batch_response.batch_id}")
print(f"Estimated total carbon savings: {batch_response.estimated_total_savings_gco2e}")

Carbon Savings Potential

Typical Savings by Delay

Delay PeriodTypical Carbon SavingsBest For
2-4 hours20-40%Short-term optimization
4-8 hours40-60%Daily workload shifting
8-12 hours60-75%Overnight processing
12-24 hours75-85%Weekend/off-peak execution

Regional Variations

Carbon savings vary by region based on grid mix:

  • Nordics/Hydro-rich: 30-50% savings
  • France/Nuclear: 40-60% savings
  • US Mixed Grid: 50-70% savings
  • Coal-heavy Regions: 70-85% savings

Best Practices

Ideal Use Cases

Perfect for:

  • Nightly data processing
  • Report generation
  • Batch analytics
  • Content creation pipelines
  • Non-urgent customer communications
  • Background data enrichment

Avoid for:

  • Real-time customer interactions
  • Time-critical alerts
  • Financial transactions
  • Emergency response systems
  • User-facing real-time features

Implementation Strategy

  1. Start Small: Test with non-critical workloads
  2. Monitor Impact: Track carbon savings and completion times
  3. Adjust Thresholds: Find optimal delay/savings balance
  4. Expand Gradually: Apply to more workloads as confidence grows
  5. Combine Approaches: Use with Sustain Mode for maximum impact

Advanced Configuration

Carbon Intensity Targets

python
# Set specific carbon intensity thresholds
response = client.chat.completions.create(
    model="auto",
    messages=[{"role": "user", "content": "Process when grid is cleanest"}],
    routing_mode="time_shift_optimized",
    max_delay_hours=12,
    target_carbon_intensity=150,  # Wait for <150 gCO₂/kWh
    min_savings_percentage=50  # Require at least 50% savings vs immediate execution
)

Regional Preferences

python
# Prioritize specific low-carbon regions
response = client.chat.completions.create(
    model="auto",
    messages=[{"role": "user", "content": "Execute in greenest region"}],
    routing_mode="time_shift_optimized",
    max_delay_hours=6,
    preferred_regions=["nordics", "canada", "france"],
    avoid_regions=["coal-heavy"]
)

Troubleshooting

"Job not executing within expected time"

Causes:

  • Carbon intensity not dropping as predicted
  • Grid conditions more volatile than usual
  • Regional constraints limiting options

Solutions:

  1. Increase max_delay_hours
  2. Lower target_carbon_intensity
  3. Reduce min_savings_percentage
  4. Check regional grid conditions

"Carbon savings lower than estimated"

Causes:

  • Grid conditions changed after estimation
  • Regional carbon intensity higher than expected
  • Job executed before optimal conditions

Solutions:

  1. Increase maximum delay for better optimization
  2. Use more flexible carbon intensity targets
  3. Monitor grid conditions in your dashboard

Time-Shifting vs Other Optimization Methods

MethodCarbon SavingsLatency ImpactBest For
Sustain Mode30-50%MinimalReal-time requests
Time-Shifting50-85%SignificantNon-urgent workloads
Caching80-90%NoneRepeated requests
Combined70-95%VariesComprehensive optimization

Next Steps

Built with reliability in mind.