Skip to content

Conversation

i-am-sijia
Copy link
Contributor

@i-am-sijia i-am-sijia commented Apr 6, 2025

This PR adds the software infrastructure to implement a telecommute status model that explicitly identifies workers who telecommute on the simulation day. This work is funded under Phase 9B.

The software adds a is_telecommuting attribute to the persons table. A simple implementation of the telecommute status model can be based on the worker's telecommute frequency. For example, if a worker telecommutes 4 days a week, then there is a 80% probability for them to telecommute on the simulation day. The telecommute status model software can accommodate more complex model forms if needed. An example telecommute status model specification can be found in ActivitySim/sandag-abm3-example#30

In addition to identifying workers who telecommute on the simulation day, we would also like to explicitly simulate their work activities on the day and let that influence non-work activities. The original scope includes overwriting the simulation day work location to home for workers who telecommute on the day, and using the existing ActivitySim mandatory tour generation submodels to simulate in-home work activities. Upon further discussion with the Consortium, we decided to not fully implement the original scope. Therefore this PR does not include the software changes to overwrite the simulation day work location to home.

There are other options to explicitly simulate telecommute behaviors on the simulation day. The Consortium is currently engaged in an explicit telecommute design task to decide the model and software design.

Related issue: #736

@jpn-- jpn-- requested a review from Copilot July 17, 2025 18:30
Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR implements a telecommute status model to predict whether workers telecommute on the simulation day. The model extends existing ActivitySim telecommute representation by adding a new binary model that determines daily telecommute behavior based on worker characteristics and telecommute frequency.

Key changes include:

  • Implementation of a new telecommute status model with configurable probability-based logic
  • Addition of documentation explaining model purpose and integration considerations
  • Support for estimation workflow integration

Reviewed Changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.

File Description
docs/dev-guide/components/telecommute_status.md Comprehensive documentation for the telecommute status model component
activitysim/estimation/larch/simple_simulate.py Estimation support function for telecommute status model
activitysim/abm/models/telecommute_status.py Core implementation of the telecommute status prediction model
activitysim/abm/models/__init__.py Module import registration for the new telecommute status component

i-am-sijia and others added 2 commits July 17, 2025 17:14
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@jpn-- jpn-- requested a review from dhensle July 24, 2025 18:12
Copy link
Contributor

@dhensle dhensle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This model would be included in our CI test system through the SANDAG example model configs. However, the currently open PR (ActivitySim/sandag-abm3-example#30) does more than just add telecommute status configs. I think the configs in that PR are out of date with what is desired for pulling in this code considering it has changes in CDAP and non-mandatory tour frequency. Do we want to just create a new PR into the sandag-abm3-example for just the telecommute_status configs and leave the rest open for future telecommute enhancements?

@jpn--
Copy link
Member

jpn-- commented Aug 25, 2025

@i-am-sijia This PR has some review comments, and also is currently marked as "draft". Can you provide an update on its status?

@i-am-sijia
Copy link
Contributor Author

@dhensle thank you for your review comments! I've addresses the feedback on the main ActivitySim. Regarding your comments on the example SANDAG model specifications:

  • We can revert the changes in CDAP, so that the results remain unchanged and CDAP does not use Telecommute Status model output as an explanatory variable. But this means the new Telecommute Status model will be included in the example SANDAG model for testing purposes, but it's not really used in the model - which is fine.
  • The changes in Non-Mandatory Tour Frequency was due to cosmetically splitting the 2_3_days_week Telecommute Frequency alternative into two separate alternatives (evenly): 2_days_week and 3_days_week [1], as requested by @jfdman during Phase 9B. This adjustment should not change the results of Non-Mandatory Tour Frequency model [2].

Let me know if this sounds acceptable, and I'll proceed with the corresponding changes in the example SANDAG model. Please feel free to share any additional feedback!

@i-am-sijia i-am-sijia marked this pull request as ready for review August 25, 2025 19:12
@i-am-sijia i-am-sijia requested a review from dhensle August 25, 2025 19:12
Copy link
Contributor

@dhensle dhensle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, thanks @i-am-sijia!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants