Baseline schedule policy emits actions in the wrong order for SB1
@Sidharth1743 is already working on this.
Since Oct 9, 2026.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 75/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- python
- Domain
- machine-learning
Research direction
Find create_baseline_schedule_policy and trace how action_sequence is used to construct the policy output; compare it with the order in env.action_normalizers. Start by locating the policy and the environment action setup, then check callers such as populate_starter_buffer.py. Done means each scheduled setpoint maps to the environment action with the matching name and the policy output follows environment action order.
Written by the indexing model from the issue text.
Description
Description
create_baseline_schedule_policy hard-codes action_sequence as
[supply_air_heating_temperature_setpoint, supply_water_setpoint].
The environment builds its action vector from building.devices (boiler,
then air handler), so on SB1 the expected order is
[supply_water_setpoint, supply_air_heating_temperature_setpoint].
populate_starter_buffer.py (and any other caller) feeds the policy output
to the environment unchanged, so each scheduled value is applied to the
other setpoint.
Impact
On a weekday daytime schedule the intended setpoints are:
- supply water: 350 K
- air heating: 292 K
With the swapped order (and SB1 action normalizer bounds), the environment
instead receives roughly:
- supply water: ≈ 331 K
- air heating: ≈ 298 K
Most of the reward gap shows up between 07:00 and 12:00 local time.
This corrupts starter replay-buffer data and baseline benchmarking.
Reward impact (SB1, 64 days)
| Mapping | Episode return |
|---|---|
| Intended (each scheduled setpoint on its matching action) | −30.77 ± 0.05 (95% CI) |
| As-run (policy output fed unchanged / swapped) | −43.51 ± 0.07 |
The swapped order costs about 13 return points per episode versus theschedule the policy is meant to apply.
Expected behavior
Each scheduled setpoint should land on the environment action with the
matching name, in the environment's action order.
Proposed fix
Derive action_sequence from env.action_normalizers (same order as the
action vector) by matching setpoint name suffixes, instead of hard-coding
[AC, HWS].
- Dominant language
- Python
- Stars
- 132
- Forks
- 64
- PR merge metrics
- No merged PRs in 30d
Getting set up
- Ships a Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from google/sbsim
-
Fix Ubuntu Latest BuildPossibly taken @hamid-digitalmarketer claimed this 6 days ago. Opengood first issue help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
SAC actor crashes in training (train.py) : TanhNormalProjectionNetwork.call() got unexpected network_statePossibly taken @Sidharth1743 claimed this 25 days ago. Open
Difficulty 1/5 Under an hour Newbie friendliness 85/100
-
Convert `WeatherController.seconds_to_rads` to a Static MethodPossibly taken @Mustaphayinka claimed this 74 days ago. Open
Difficulty 1/5 Under an hour Newbie friendliness 85/100
-
Baseline SchedulePolicy day/night switches early vs SB1 local comfort window (UTC hod + utcoffset)Possibly taken @burgulvedant claimed this 9 days ago. Open
Difficulty 3/5 1-2 days Newbie friendliness 55/100
-
Failing Mac BuildPossibly taken @youneedgreg claimed this 25 days ago. Opengood first issue
Difficulty 3/5 1-2 days Newbie friendliness 54/100
Similar issues
-
DBFS append mode silently overwrites existing filesPossibly taken @IlyaKhalafi claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 77/100
fsspec/filesystem_spec#2429 ·
Maintainers usually reply within 1 day
-
[Bug]: Retrieval rerank fallback statistics stay zero after provider failurePossibly taken A pull request linked to this issue is open or already merged. Openbug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
volcengine/OpenViking#7014 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
fedora-copr/copr#4600 ·
Maintainers usually reply within 2 days
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
ansys/pydpf-core#3620 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day