{"definition_raw":"---\nid: acsa-monthly-data\ntitle: ACSA monthly domestic passenger data update\nschedule: \"0 5 * * *\"\ntimeout: 300\nretry: true\nenabled: true\nnotify_on: failure\nrun_as: shell\ncommand: \"cd /home/lucienne/workspace && python3 scripts/acsa_monthly_update.py\"\ntags: [flysafair, acsa, passengers, monthly]\nruntime_profile: direct_python\n---\n**OVERRIDES runtime profile:** uses `direct_python` (plain Python, no model) because the command chain never invokes the `claude` CLI or any LLM API \u2014 pure-infra task; scheduler provider env injection is a no-op (MC-4942 U12 sweep).\n\nChecks daily (7am SAST) if new FLYSAFAIR STATS files have appeared in the\nACSA Google Drive folder. If new files found, extracts domestic departure\ndata and updates ACSA Monthly Data.xlsx.\n\nNo AI needed \u2014 pure Python with openpyxl. Tracks processed files in\n.acsa-monthly-state.json to avoid reprocessing.\n\nSource folder: Google Drive ACSA/ (ID: 1ANZkMmVWSk5TCvTsBI8WgjFA7qWMUQJE)\nTarget: ACSA Monthly Data.xlsx in Reporting Data folder\nPattern: FLYSAFAIR [MONTH] [YEAR] STATS.xlsx\n","id":"acsa-monthly-data","last_run":{"duration_s":5.429835,"log_path":"/home/lucienne/workspace/logs/task-runs/acsa-monthly-data/413656.log","output":"=== ACSA Monthly Data Update \u2014 2026-06-13 05:00 ===\nFound 6 FLYSAFAIR STATS files\n1 new/updated file(s) to process:\n  FLYSAFAIR MARCH 2026 STATS.xlsx (modified: 2026-04-13T06:28:56.242Z)\n  Extracted: March 2026\nDownloaded ACSA Monthly Data.xlsx\n  OVERWRITE: March 2026 (row 90) \u2014 Pax=1,286,461, Seats=1,608,027, FA Pax=812,862, FA LF=0.8723\nSaved 1 updates\nUploaded to Google Drive\n\nSuccess: Updated March 2026\n","started_at":"2026-06-13T05:00:00.559082+02:00","status":"completed"},"next_run":"2026-06-14 05:00","next_run_iso":"2026-06-14T05:00:00+02:00","runs":[{"duration_s":5.429835,"finished_at":"2026-06-13T05:00:05.994680+02:00","id":413656,"log_path":"/home/lucienne/workspace/logs/task-runs/acsa-monthly-data/413656.log","output":"=== ACSA Monthly Data Update \u2014 2026-06-13 05:00 ===\nFound 6 FLYSAFAIR STATS files\n1 new/updated file(s) to process:\n  FLYSAFAIR MARCH 2026 STATS.xlsx (modified: 2026-04-13T06:28:56.242Z)\n  Extracted: March 2026\nDownloaded ACSA Monthly Data.xlsx\n  OVERWRITE: March 2026 (row 90) \u2014 Pax=1,286,461, Seats=1,608,027, FA Pax=812,862, FA LF=0.8723\nSaved 1 updates\nUploaded to Google Drive\n\nSuccess: Updated March 2026\n","started_at":"2026-06-13T05:00:00.559082+02:00","status":"completed","task_id":"acsa-monthly-data","task_name":"ACSA monthly domestic passenger data update"},{"duration_s":5.674059,"finished_at":"2026-06-12T05:00:06.221540+02:00","id":409489,"log_path":"/home/lucienne/workspace/logs/task-runs/acsa-monthly-data/409489.log","output":"=== ACSA Monthly Data Update \u2014 2026-06-12 05:00 ===\nFound 6 FLYSAFAIR STATS files\n1 new/updated file(s) to process:\n  FLYSAFAIR MARCH 2026 STATS.xlsx (modified: 2026-04-13T06:29:55.000Z)\n  Extracted: March 2026\nDownloaded ACSA Monthly Data.xlsx\n  OVERWRITE: March 2026 (row 90) \u2014 Pax=1,286,461, Seats=1,608,027, FA Pax=812,862, FA LF=0.8723\nSaved 1 updates\nUploaded to Google Drive\n\nSuccess: Updated March 2026\n","started_at":"2026-06-12T05:00:00.540165+02:00","status":"completed","task_id":"acsa-monthly-data","task_name":"ACSA monthly domestic passenger data update"},{"duration_s":5.716728,"finished_at":"2026-06-11T05:00:06.107872+02:00","id":405128,"log_path":"/home/lucienne/workspace/logs/task-runs/acsa-monthly-data/405128.log","output":"=== ACSA Monthly Data Update \u2014 2026-06-11 05:00 ===\nFound 6 FLYSAFAIR STATS files\n1 new/updated file(s) to process:\n  FLYSAFAIR MARCH 2026 STATS.xlsx (modified: 2026-04-13T06:29:55.000Z)\n  Extracted: March 2026\nDownloaded ACSA Monthly Data.xlsx\n  OVERWRITE: March 2026 (row 90) \u2014 Pax=1,286,461, Seats=1,608,027, FA Pax=812,862, FA LF=0.8723\nSaved 1 updates\nUploaded to Google Drive\n\nSuccess: Updated March 2026\n","started_at":"2026-06-11T05:00:00.386964+02:00","status":"completed","task_id":"acsa-monthly-data","task_name":"ACSA monthly domestic passenger data update"},{"duration_s":6.029463,"finished_at":"2026-06-10T05:00:06.587749+02:00","id":400859,"log_path":"/home/lucienne/workspace/logs/task-runs/acsa-monthly-data/400859.log","output":"=== ACSA Monthly Data Update \u2014 2026-06-10 05:00 ===\nFound 6 FLYSAFAIR STATS files\n1 new/updated file(s) to process:\n  FLYSAFAIR MARCH 2026 STATS.xlsx (modified: 2026-04-13T06:28:56.242Z)\n  Extracted: March 2026\nDownloaded ACSA Monthly Data.xlsx\n  OVERWRITE: March 2026 (row 90) \u2014 Pax=1,286,461, Seats=1,608,027, FA Pax=812,862, FA LF=0.8723\nSaved 1 updates\nUploaded to Google Drive\n\nSuccess: Updated March 2026\n","started_at":"2026-06-10T05:00:00.543449+02:00","status":"completed","task_id":"acsa-monthly-data","task_name":"ACSA monthly domestic passenger data update"},{"duration_s":5.517607,"finished_at":"2026-06-09T05:00:06.104977+02:00","id":396585,"log_path":"/home/lucienne/workspace/logs/task-runs/acsa-monthly-data/396585.log","output":"=== ACSA Monthly Data Update \u2014 2026-06-09 05:00 ===\nFound 6 FLYSAFAIR STATS files\n1 new/updated file(s) to process:\n  FLYSAFAIR MARCH 2026 STATS.xlsx (modified: 2026-04-13T06:29:55.000Z)\n  Extracted: March 2026\nDownloaded ACSA Monthly Data.xlsx\n  OVERWRITE: March 2026 (row 90) \u2014 Pax=1,286,461, Seats=1,608,027, FA Pax=812,862, FA LF=0.8723\nSaved 1 updates\nUploaded to Google Drive\n\nSuccess: Updated March 2026\n","started_at":"2026-06-09T05:00:00.583002+02:00","status":"completed","task_id":"acsa-monthly-data","task_name":"ACSA monthly domestic passenger data update"},{"duration_s":5.80444,"finished_at":"2026-06-08T05:00:06.489346+02:00","id":392496,"log_path":"/home/lucienne/workspace/logs/task-runs/acsa-monthly-data/392496.log","output":"=== ACSA Monthly Data Update \u2014 2026-06-08 05:00 ===\nFound 6 FLYSAFAIR STATS files\n1 new/updated file(s) to process:\n  FLYSAFAIR MARCH 2026 STATS.xlsx (modified: 2026-04-13T06:28:56.242Z)\n  Extracted: March 2026\nDownloaded ACSA Monthly Data.xlsx\n  OVERWRITE: March 2026 (row 90) \u2014 Pax=1,286,461, Seats=1,608,027, FA Pax=812,862, FA LF=0.8723\nSaved 1 updates\nUploaded to Google Drive\n\nSuccess: Updated March 2026\n","started_at":"2026-06-08T05:00:00.577182+02:00","status":"completed","task_id":"acsa-monthly-data","task_name":"ACSA monthly domestic passenger data update"},{"duration_s":5.973769,"finished_at":"2026-06-07T05:00:06.396390+02:00","id":388129,"log_path":"/home/lucienne/workspace/logs/task-runs/acsa-monthly-data/388129.log","output":"=== ACSA Monthly Data Update \u2014 2026-06-07 05:00 ===\nFound 6 FLYSAFAIR STATS files\n1 new/updated file(s) to process:\n  FLYSAFAIR MARCH 2026 STATS.xlsx (modified: 2026-04-13T06:29:55.000Z)\n  Extracted: March 2026\nDownloaded ACSA Monthly Data.xlsx\n  OVERWRITE: March 2026 (row 90) \u2014 Pax=1,286,461, Seats=1,608,027, FA Pax=812,862, FA LF=0.8723\nSaved 1 updates\nUploaded to Google Drive\n\nSuccess: Updated March 2026\n","started_at":"2026-06-07T05:00:00.404223+02:00","status":"completed","task_id":"acsa-monthly-data","task_name":"ACSA monthly domestic passenger data update"},{"duration_s":6.129409,"finished_at":"2026-06-06T05:00:06.808796+02:00","id":383409,"log_path":"/home/lucienne/workspace/logs/task-runs/acsa-monthly-data/383409.log","output":"=== ACSA Monthly Data Update \u2014 2026-06-06 05:00 ===\nFound 6 FLYSAFAIR STATS files\n1 new/updated file(s) to process:\n  FLYSAFAIR MARCH 2026 STATS.xlsx (modified: 2026-04-13T06:28:56.242Z)\n  Extracted: March 2026\nDownloaded ACSA Monthly Data.xlsx\n  OVERWRITE: March 2026 (row 90) \u2014 Pax=1,286,461, Seats=1,608,027, FA Pax=812,862, FA LF=0.8723\nSaved 1 updates\nUploaded to Google Drive\n\nSuccess: Updated March 2026\n","started_at":"2026-06-06T05:00:00.598744+02:00","status":"completed","task_id":"acsa-monthly-data","task_name":"ACSA monthly domestic passenger data update"}],"runs_limit":20,"schedule":"0 5 * * *","schedule_label":{"description":"Daily at 05:00","is_custom":false,"label":"Daily","sort":4,"sort_time":"05:00"},"stats":{"avg_duration":5.78441375,"completed":8,"failed":0,"timeout":0,"total":8},"task":{"_description":"**OVERRIDES runtime profile:** uses `direct_python` (plain Python, no model) because the command chain never invokes the `claude` CLI or any LLM API \u2014 pure-infra task; scheduler provider env injection is a no-op (MC-4942 U12 sweep).\n\nChecks daily (7am SAST) if new FLYSAFAIR STATS files have appeared in the\nACSA Google Drive folder. If new files found, extracts domestic departure\ndata and updates ACSA Monthly Data.xlsx.\n\nNo AI needed \u2014 pure Python with openpyxl. Tracks processed files in\n.acsa-monthly-state.json to avoid reprocessing.\n\nSource folder: Google Drive ACSA/ (ID: 1ANZkMmVWSk5TCvTsBI8WgjFA7qWMUQJE)\nTarget: ACSA Monthly Data.xlsx in Reporting Data folder\nPattern: FLYSAFAIR [MONTH] [YEAR] STATS.xlsx","_file":"acsa-monthly-data.md","_path":"/home/lucienne/workspace/tasks/acsa-monthly-data.md","command":"cd /home/lucienne/workspace && python3 scripts/acsa_monthly_update.py","enabled":true,"id":"acsa-monthly-data","notify_on":"failure","retry":true,"run_as":"shell","runtime_profile":"direct_python","schedule":"0 5 * * *","tags":["flysafair","acsa","passengers","monthly"],"timeout":300,"title":"ACSA monthly domestic passenger data update"}}
