{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":769651934,"defaultBranch":"master","name":"2024-Election-Polling-Analysis","ownerLogin":"spencerthayer","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2024-03-09T17:15:07.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/1019815?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1710775508.0","currentOid":""},"activityList":{"items":[{"before":"3e1f85af1d936e082de1987d8a1c03fb08a249e1","after":"45ad18de945ea9ccad247e05f68e5deef254f982","ref":"refs/heads/master","pushedAt":"2024-06-24T23:08:44.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"spencerthayer","name":"Spencer Thayer","path":"/spencerthayer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1019815?s=80&v=4"},"commit":{"message":"Removed unused grade_weights and changed Random Forest\n\nThis commit fixes an issue where the script would still partially consider favorability data even when favorability_weight was set to 0.0 and there was insufficient favorability data available.\n\nThe Random Forest model is now only run when there is enough data for both polling and favorability. When there is insufficient favorability data, the script defaults to a 100% polling-based analysis, ensuring consistent results regardless of the global favorability_weight value.","shortMessageHtmlLink":"Removed unused grade_weights and changed Random Forest"}},{"before":"b7da034118ce295cb6a32a3d1f3bafbd4595312f","after":"3e1f85af1d936e082de1987d8a1c03fb08a249e1","ref":"refs/heads/master","pushedAt":"2024-06-24T23:04:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"spencerthayer","name":"Spencer Thayer","path":"/spencerthayer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1019815?s=80&v=4"},"commit":{"message":"Removed unused grade_weights and changed Random Forest\n\nThis commit fixes an issue where the script would still partially consider favorability data even when favorability_weight was set to 0.0 and there was insufficient favorability data available.\n\nThe Random Forest model is now only run when there is enough data for both polling and favorability. When there is insufficient favorability data, the script defaults to a 100% polling-based analysis, ensuring consistent results regardless of the global favorability_weight value.","shortMessageHtmlLink":"Removed unused grade_weights and changed Random Forest"}},{"before":"d6a861bde487b1a1bc2454575ae25a2fa202536f","after":"b7da034118ce295cb6a32a3d1f3bafbd4595312f","ref":"refs/heads/master","pushedAt":"2024-06-24T19:50:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"spencerthayer","name":"Spencer Thayer","path":"/spencerthayer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1019815?s=80&v=4"},"commit":{"message":"[refactor] Adjust favorability weight\n\nThe favorability weight in the analysis module has been adjusted from 0.2 to 0.1. This change will affect the data parsing and analysis of candidate favorability ratings.\n\nThe reasoning behind this is as we get closer to the election date the distinction between the likability of a candidate and likelihood of voting for a candidate become confused.","shortMessageHtmlLink":"[refactor] Adjust favorability weight"}},{"before":"839b173062912f1259ba9776f743de16633931b3","after":"d6a861bde487b1a1bc2454575ae25a2fa202536f","ref":"refs/heads/master","pushedAt":"2024-06-24T19:48:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"spencerthayer","name":"Spencer Thayer","path":"/spencerthayer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1019815?s=80&v=4"},"commit":{"message":"[fix] Handle Insufficient Favorability Data Gracefully\n\nThis commit addresses an issue where the script would incorrectly output \"Not enough data\" even when sufficient polling data was available but favorability data was insufficient.\n\nThe following changes were made:\n\n- Added separate checks for sufficient polling and favorability data.\n- Modified the `combine_analysis` function to handle cases where the `favorability_differential` dictionary is empty, effectively enabling polling-only analysis when necessary.\n- Updated the output to indicate when only polling data is being used.\n\nThis ensures that the script can now provide analysis based on available polling data even if there's not enough favorability data, making the script more robust and reliable.","shortMessageHtmlLink":"[fix] Handle Insufficient Favorability Data Gracefully"}},{"before":"886a6c45254b5e7f5c2045dbedc051ea241efe21","after":"839b173062912f1259ba9776f743de16633931b3","ref":"refs/heads/master","pushedAt":"2024-06-22T03:56:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"spencerthayer","name":"Spencer Thayer","path":"/spencerthayer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1019815?s=80&v=4"},"commit":{"message":"[refactor] Rewrote the ReadMe\n\n- Refactored the code to improve readability and maintainability.\n- Updated the description of the data acquisition process for presidential polling and favorability data.\n- Improved error handling strategies to address potential issues related to missing or incomplete data.\n- Added a new section on OOB Random Forest implementation for estimating variance in model predictions.\n- Provided insights into the interpretation and implications of OOB variance in model evaluation.\n- Included a summary of error handling strategies implemented in the script.\n- Updated the output section to describe the analyzed results printed by the script.\n- Concluded with suggestions for possible next steps in refining and improving the analysis.","shortMessageHtmlLink":"[refactor] Rewrote the ReadMe"}},{"before":"026cf321d9a1908bb2a10b761d3f993279e9e569","after":"886a6c45254b5e7f5c2045dbedc051ea241efe21","ref":"refs/heads/master","pushedAt":"2024-06-22T03:47:48.000Z","pushType":"push","commitsCount":7,"pusher":{"login":"spencerthayer","name":"Spencer Thayer","path":"/spencerthayer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1019815?s=80&v=4"},"commit":{"message":"[refactor] Refactor calculation of weighted averages\n\nRefactored the code to calculate weighted averages in the `calculate_polling_metrics` and `calculate_favorability_differential` functions. Replaced the use of `fillna(0)` with explicit handling of NaN values. Added debugging prints for `weighted_sums` and `total_weights`.","shortMessageHtmlLink":"[refactor] Refactor calculation of weighted averages"}},{"before":"07876191be8b6871c58f4c6d05d2a65f85644cbf","after":"026cf321d9a1908bb2a10b761d3f993279e9e569","ref":"refs/heads/master","pushedAt":"2024-03-18T16:39:32.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"spencerthayer","name":"Spencer Thayer","path":"/spencerthayer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1019815?s=80&v=4"},"commit":{"message":"[refactor] Update random forest parameters\n\nSet min_samples_required and n_trees for analysis. Refactored OOB variance estimation handling.","shortMessageHtmlLink":"[refactor] Update random forest parameters"}},{"before":"695e081e2ea9a10441920ef96b0d20d387fcf747","after":"07876191be8b6871c58f4c6d05d2a65f85644cbf","ref":"refs/heads/master","pushedAt":"2024-03-18T16:05:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"spencerthayer","name":"Spencer Thayer","path":"/spencerthayer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1019815?s=80&v=4"},"commit":{"message":"[refactor] Simplify data preprocessing and calculations\n\nRemoved redundant comments and streamlined data processing functions.","shortMessageHtmlLink":"[refactor] Simplify data preprocessing and calculations"}},{"before":null,"after":"5eee0f3805250d57a4a25101a30b06f9506593a5","ref":"refs/heads/php-website","pushedAt":"2024-03-18T15:25:08.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"spencerthayer","name":"Spencer Thayer","path":"/spencerthayer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1019815?s=80&v=4"},"commit":{"message":"[refactor] Update service configuration\n\n- Updated PHP version to 8.0 and added port settings for services in the Lando configuration file.\n- Added functions for data processing, margin of error calculation, and result output.","shortMessageHtmlLink":"[refactor] Update service configuration"}},{"before":"af16a7bb5a342078b6379ad16b06c4e6059be2cc","after":"695e081e2ea9a10441920ef96b0d20d387fcf747","ref":"refs/heads/master","pushedAt":"2024-03-17T17:22:31.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"spencerthayer","name":"Spencer Thayer","path":"/spencerthayer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1019815?s=80&v=4"},"commit":{"message":"[refactor] Remove unnecessary .DS_Store file\n\nDeleted the .DS_Store file to clean up repository.","shortMessageHtmlLink":"[refactor] Remove unnecessary .DS_Store file"}},{"before":"7cc52b3e47c0f88cb6591086699b46017e5d88f4","after":"af16a7bb5a342078b6379ad16b06c4e6059be2cc","ref":"refs/heads/master","pushedAt":"2024-03-17T17:21:09.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"spencerthayer","name":"Spencer Thayer","path":"/spencerthayer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1019815?s=80&v=4"},"commit":{"message":"[refactor] Updated favorability_weight value\n\nIncreased the favorability_weight from 0.1 to 0.2 for better analysis accuracy.","shortMessageHtmlLink":"[refactor] Updated favorability_weight value"}},{"before":"c409c22ed72ab85e16cbca8525b3323627bff553","after":"7cc52b3e47c0f88cb6591086699b46017e5d88f4","ref":"refs/heads/master","pushedAt":"2024-03-15T22:50:06.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"spencerthayer","name":"Spencer Thayer","path":"/spencerthayer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1019815?s=80&v=4"},"commit":{"message":"update analysis.py","shortMessageHtmlLink":"update analysis.py"}},{"before":"a6a6fabfff7b222840f930bfd1110d8903480a7c","after":"c409c22ed72ab85e16cbca8525b3323627bff553","ref":"refs/heads/master","pushedAt":"2024-03-15T20:08:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"spencerthayer","name":"Spencer Thayer","path":"/spencerthayer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1019815?s=80&v=4"},"commit":{"message":"docs: update readme.md","shortMessageHtmlLink":"docs: update readme.md"}},{"before":"791177211388e16cccc11645ba40c52e60d63f14","after":"a6a6fabfff7b222840f930bfd1110d8903480a7c","ref":"refs/heads/master","pushedAt":"2024-03-15T20:07:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"spencerthayer","name":"Spencer Thayer","path":"/spencerthayer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1019815?s=80&v=4"},"commit":{"message":"update elections.code-workspace and readme.md","shortMessageHtmlLink":"update elections.code-workspace and readme.md"}},{"before":"145020e506df069ab62f4ab22c0284aeec72e0c1","after":"791177211388e16cccc11645ba40c52e60d63f14","ref":"refs/heads/master","pushedAt":"2024-03-15T19:58:00.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"spencerthayer","name":"Spencer Thayer","path":"/spencerthayer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1019815?s=80&v=4"},"commit":{"message":"Update requirements.txt","shortMessageHtmlLink":"Update requirements.txt"}},{"before":"c356ef66b7c68dc3d0cb5d600f2001e1a70d1412","after":"145020e506df069ab62f4ab22c0284aeec72e0c1","ref":"refs/heads/master","pushedAt":"2024-03-15T19:55:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"spencerthayer","name":"Spencer Thayer","path":"/spencerthayer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1019815?s=80&v=4"},"commit":{"message":"docs: update readme.md","shortMessageHtmlLink":"docs: update readme.md"}},{"before":"f57fe51c46b3af0b8302c54afab27af4ce93ef35","after":"c356ef66b7c68dc3d0cb5d600f2001e1a70d1412","ref":"refs/heads/master","pushedAt":"2024-03-15T19:53:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"spencerthayer","name":"Spencer Thayer","path":"/spencerthayer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1019815?s=80&v=4"},"commit":{"message":"docs: update readme.md","shortMessageHtmlLink":"docs: update readme.md"}},{"before":"68054b43f27530a778877565e5696098f8fb3313","after":"f57fe51c46b3af0b8302c54afab27af4ce93ef35","ref":"refs/heads/master","pushedAt":"2024-03-15T19:44:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"spencerthayer","name":"Spencer Thayer","path":"/spencerthayer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1019815?s=80&v=4"},"commit":{"message":"docs: update readme.md","shortMessageHtmlLink":"docs: update readme.md"}},{"before":"45b9b13775be288484ab2720988707e40307e483","after":"68054b43f27530a778877565e5696098f8fb3313","ref":"refs/heads/master","pushedAt":"2024-03-15T19:43:16.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"spencerthayer","name":"Spencer Thayer","path":"/spencerthayer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1019815?s=80&v=4"},"commit":{"message":"Random Forest OOB\n\nThe Out-of-Bag (OOB) variance results you're seeing in the context of this data are telling you about the variability in the predictions of your model when it is tested on the same training data, but only using the trees that did not see each data point during training. This is a feature of Random Forest models, where each tree is trained on a different bootstrap sample of the data, and OOB error or variance is calculated on the samples not included in the bootstrap sample (i.e., left out of the bag).\n\n### Interpretation of OOB Results:\n\n- **Consistency Across Time Frames**: The OOB variance gives an indication of how stable or variable the model's predictions are over different periods leading up to an event (e.g., an election). A lower OOB variance suggests that the model's predictions are more consistent across different bootstrap samples of the data, while a higher OOB variance suggests greater variability in predictions.\n\n- **Insight into Model Reliability**: Generally, a lower OOB variance is desirable as it indicates that the model's predictions are relatively stable and not overly dependent on the specific subset of data used for training. However, some variability is to be expected, especially in complex datasets with many variables.\n\n- **Model Overfitting**: Significantly low OOB variance might also indicate that the model could be overfitting the data, especially if the predictive performance on external validation sets is poor. This would mean the model is too closely tailored to the training data, including its noise, rather than capturing the underlying patterns applicable to unseen data.\n\n- **Predictive Power and Uncertainty**: The OOB results, when combined with the predicted percentages (e.g., B:41.55% vs. T:44.15%), provide a fuller picture of the model's predictive power and the uncertainty associated with those predictions. The variance gives you a measure of how much the model's predictions for the outcome (favorability or voting percentages) might vary, adding a layer of understanding to the confidence you can have in the model's output.\n\n### How OOB Results Should Inform You:\n\n1. **Model Evaluation**: Use OOB variance as a tool for model evaluation alongside other metrics. A model with acceptable OOB variance and high accuracy or other performance metrics might be considered robust.\n\n2. **Model Improvement**: High OOB variance can suggest areas for model improvement, such as feature engineering, model parameter tuning, or addressing overfitting through methods like pruning.\n\n3. **Decision Making**: For decision-making or forecasting, consider both the point predictions (e.g., the favorability percentages) and the OOB variance. High variance indicates greater uncertainty in the predictions, which might affect strategies or actions based on the model's output.\n\n4. **Temporal Dynamics**: Pay attention to how OOB variance changes over time or across different conditions. An increase in variance as you approach an event (like an election) could signal increasing uncertainty in predictions due to changing dynamics or lack of recent data.\n\nIn summary, OOB variance is a useful measure of the reliability and stability of your Random Forest model's predictions. It should be considered alongside other performance metrics and domain knowledge when interpreting the model's outputs and making decisions based on its predictions.","shortMessageHtmlLink":"Random Forest OOB"}},{"before":"4d0b38aded93a2778fac3b0e2c5578ca286f9ac6","after":"45b9b13775be288484ab2720988707e40307e483","ref":"refs/heads/master","pushedAt":"2024-03-15T03:10:42.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"spencerthayer","name":"Spencer Thayer","path":"/spencerthayer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1019815?s=80&v=4"},"commit":{"message":"docs: update readme.md","shortMessageHtmlLink":"docs: update readme.md"}},{"before":"e64cd5320a8af1b9dde3bfc991b8bec7bdab536a","after":"4d0b38aded93a2778fac3b0e2c5578ca286f9ac6","ref":"refs/heads/master","pushedAt":"2024-03-15T03:04:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"spencerthayer","name":"Spencer Thayer","path":"/spencerthayer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1019815?s=80&v=4"},"commit":{"message":"update readme.md and states.py","shortMessageHtmlLink":"update readme.md and states.py"}},{"before":"c156f6ecfc5ef28c330531c3e61b34c13451b464","after":"e64cd5320a8af1b9dde3bfc991b8bec7bdab536a","ref":"refs/heads/master","pushedAt":"2024-03-15T03:03:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"spencerthayer","name":"Spencer Thayer","path":"/spencerthayer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1019815?s=80&v=4"},"commit":{"message":"update readme.md and states.py","shortMessageHtmlLink":"update readme.md and states.py"}},{"before":"24eb35c7f0948b73029c9713e3db90e5e5fe2f20","after":"c156f6ecfc5ef28c330531c3e61b34c13451b464","ref":"refs/heads/master","pushedAt":"2024-03-15T03:02:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"spencerthayer","name":"Spencer Thayer","path":"/spencerthayer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1019815?s=80&v=4"},"commit":{"message":"update readme.md and states.py","shortMessageHtmlLink":"update readme.md and states.py"}},{"before":"c46a3886132372aa451edd35cf061d6961cdb90a","after":"24eb35c7f0948b73029c9713e3db90e5e5fe2f20","ref":"refs/heads/master","pushedAt":"2024-03-15T02:59:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"spencerthayer","name":"Spencer Thayer","path":"/spencerthayer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1019815?s=80&v=4"},"commit":{"message":"Update readme.md","shortMessageHtmlLink":"Update readme.md"}},{"before":"20e467738d1aaeaff81c3a71d112058fb01c1fe8","after":"c46a3886132372aa451edd35cf061d6961cdb90a","ref":"refs/heads/master","pushedAt":"2024-03-15T02:41:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"spencerthayer","name":"Spencer Thayer","path":"/spencerthayer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1019815?s=80&v=4"},"commit":{"message":"Update readme.md","shortMessageHtmlLink":"Update readme.md"}},{"before":"75e20a874f2ca918909a7e6ba4517ac8bb4f4ace","after":"20e467738d1aaeaff81c3a71d112058fb01c1fe8","ref":"refs/heads/master","pushedAt":"2024-03-15T01:32:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"spencerthayer","name":"Spencer Thayer","path":"/spencerthayer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1019815?s=80&v=4"},"commit":{"message":"update analysis.py","shortMessageHtmlLink":"update analysis.py"}},{"before":"ac837d3546b0bc94fb4f30fdb18a0834a413044f","after":"75e20a874f2ca918909a7e6ba4517ac8bb4f4ace","ref":"refs/heads/master","pushedAt":"2024-03-15T00:08:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"spencerthayer","name":"Spencer Thayer","path":"/spencerthayer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1019815?s=80&v=4"},"commit":{"message":"update analysis.py","shortMessageHtmlLink":"update analysis.py"}},{"before":"4dc829681940106aec0289fda2047c87e6774065","after":"ac837d3546b0bc94fb4f30fdb18a0834a413044f","ref":"refs/heads/master","pushedAt":"2024-03-15T00:07:57.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"spencerthayer","name":"Spencer Thayer","path":"/spencerthayer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1019815?s=80&v=4"},"commit":{"message":"Refine Poll Analysis Script with MoE Calculations and Data Preprocessing Enhancements\n\nThis commit introduces significant enhancements and fixes to the poll analysis script, aimed at improving the accuracy and robustness of Margin of Error (MoE) calculations across various timeframes. Key changes include the introduction of a `calculate_timeframe_specific_moe` function, adjustments in data preprocessing to handle timeframes dynamically, and corrections to the MoE function to ensure it accurately calculates values based on the poll's sample size and proportions.\n\n#### Key Changes:\n- **Data Preprocessing Adjustments**: Modified the `preprocess_data` function to optionally filter data based on a start period, allowing for more focused analysis of polling data within specific timeframes. This adjustment aids in accurately calculating metrics for designated periods such as 1 day, 3 days, up to 12 months.\n- **Introduction of Timeframe-Specific MoE Calculations**: Added a new function, `calculate_timeframe_specific_moe`, which computes the MoE for each candidate within specified timeframes. This function ensures that MoE calculations are based on the actual data available for each period, addressing previously observed inaccuracies.\n- **MoE Calculation Fixes**: Updated the `margin_of_error` function calls within `calculate_timeframe_specific_moe` to correctly pass the sample size and proportion parameters. This correction resolves issues where the MoE calculation would fail or return inaccurate values due to incorrect argument passing.\n- **Enhanced Output Formatting**: Improved the `output_results` function to display MoEs alongside polling scores, ensuring that the results are both comprehensive and easy to interpret. The addition of MoE values in the output provides a clearer picture of the polling data's reliability.\n- **Robustness Enhancements**: Implemented checks within `calculate_timeframe_specific_moe` to handle edge cases such as empty datasets or invalid sample sizes/proportions. These enhancements make the script more robust against diverse datasets and polling scenarios.\n\n#### Impact:\nThese changes significantly enhance the script's capability to analyze polling data with greater accuracy and reliability. By dynamically handling data based on timeframes and ensuring accurate MoE calculations, the script provides more insightful and trustworthy analysis of poll trends and voter sentiment over time.","shortMessageHtmlLink":"Refine Poll Analysis Script with MoE Calculations and Data Preprocess…"}},{"before":"c4453a98942dcbe8bb78f094f49ea803fb53222f","after":"4dc829681940106aec0289fda2047c87e6774065","ref":"refs/heads/master","pushedAt":"2024-03-14T20:02:28.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"spencerthayer","name":"Spencer Thayer","path":"/spencerthayer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1019815?s=80&v=4"},"commit":{"message":"update analysis.py and liked.py","shortMessageHtmlLink":"update analysis.py and liked.py"}},{"before":"bbae7e89103d339400abed575e679831245bbce3","after":"c4453a98942dcbe8bb78f094f49ea803fb53222f","ref":"refs/heads/master","pushedAt":"2024-03-14T00:02:19.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"spencerthayer","name":"Spencer Thayer","path":"/spencerthayer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1019815?s=80&v=4"},"commit":{"message":"Merge branch 'master' of https://github.com/spencerthayer/2024-Election-Polling-Analysis","shortMessageHtmlLink":"Merge branch 'master' of https://github.com/spencerthayer/2024-Electi…"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEbgSLXQA","startCursor":null,"endCursor":null}},"title":"Activity · spencerthayer/2024-Election-Polling-Analysis"}