{
  "id": 585159,
  "title": "Onboarding materials and toolkit ",
  "url": "/competitions/aeroclub-recsys-2025/discussion/585159",
  "author_name": "Samvel Kocharyan",
  "post_date": "2025-06-18T11:49:00.939000",
  "votes": 9,
  "comment_count": 30,
  "views": 0,
  "content": "<p>Welcome aboard! Throttle up…  Here are some ideas and insights that might help you navigate this competition.</p>\n<p>The task we'll be working with in this competition might seem relatively simple at first glance. All we need to do is recommend flight options by ranking them from best to worst. On one hand, I suspect your first thought might be that a universal \"best\" answer could be achieved with simple heuristics without ML. Yes, this is indeed a decent baseline - choosing the top-performing option (lowest price, shortest duration, highest popularity, etc.)</p>\n<p>But on the other hand, if we look at the target and historical data, it turns out that the options actually chosen by real users are surprisingly hard to predict with simple rules. The task will be complicated by the fact that, despite the large dataset size, the signal-to-noise ratio is quite low. Add to this class imbalance, implicit target, lack of historical data…</p>\n<p>Then there's the specificity of the business travel bias and aviation domains. Here, essentially every flight search by every user represents a self-contained set of options. The same flight can have different prices and options. Different airlines fly the same route on the same day, and the next day the situation can change dramatically. It turns out that even the problem formulation isn't quite classical RecSys.</p>\n<p>Classification? Learning-to-Rank? Matrix factorization or content-based filtering, NN? There are many options…</p>\n<p>This toolkit will help you get started in the competition:</p>\n<ul>\n<li><p>CatBoost, LightGBM, XGBoost - gbdt triade. Every boosting in a list has ranking implementation onboard.  The Feature engineering with current data should boost your score. </p></li>\n<li><p><a href=\"https://github.com/MobileTeleSystems/RecTools\" target=\"_blank\">RecTools</a> </p></li>\n<li><p><a href=\"https://github.com/recommenders-team/recommenders\" target=\"_blank\">Recommenders </a></p></li>\n<li><p><a href=\"https://github.com/sb-ai-lab/RePlay\" target=\"_blank\">RePlay</a> </p></li>\n<li><p><a href=\"https://benfred.github.io/implicit/\" target=\"_blank\">Imlicit</a></p></li>\n<li><p><a href=\"https://www.youtube.com/@acmrecsys/videos\" target=\"_blank\">ACM RecSys video</a></p></li>\n<li><p>RecTour ACM RecSys Workshop</p></li>\n<li><p><a href=\"https://www.kaggle.com/datasets/samvelkoch/global-airports-iata-icao-timezone-geo/\" target=\"_blank\">Global Airports dataset</a></p></li>\n</ul>\n<p>TBA …</p>",
  "messages": [
    {
      "id": 3227028,
      "postDate": "2025-06-18T11:49:00.940Z",
      "content": "<p>Welcome aboard! Throttle up…  Here are some ideas and insights that might help you navigate this competition.</p>\n<p>The task we'll be working with in this competition might seem relatively simple at first glance. All we need to do is recommend flight options by ranking them from best to worst. On one hand, I suspect your first thought might be that a universal \"best\" answer could be achieved with simple heuristics without ML. Yes, this is indeed a decent baseline - choosing the top-performing option (lowest price, shortest duration, highest popularity, etc.)</p>\n<p>But on the other hand, if we look at the target and historical data, it turns out that the options actually chosen by real users are surprisingly hard to predict with simple rules. The task will be complicated by the fact that, despite the large dataset size, the signal-to-noise ratio is quite low. Add to this class imbalance, implicit target, lack of historical data…</p>\n<p>Then there's the specificity of the business travel bias and aviation domains. Here, essentially every flight search by every user represents a self-contained set of options. The same flight can have different prices and options. Different airlines fly the same route on the same day, and the next day the situation can change dramatically. It turns out that even the problem formulation isn't quite classical RecSys.</p>\n<p>Classification? Learning-to-Rank? Matrix factorization or content-based filtering, NN? There are many options…</p>\n<p>This toolkit will help you get started in the competition:</p>\n<ul>\n<li><p>CatBoost, LightGBM, XGBoost - gbdt triade. Every boosting in a list has ranking implementation onboard.  The Feature engineering with current data should boost your score. </p></li>\n<li><p><a href=\"https://github.com/MobileTeleSystems/RecTools\" target=\"_blank\">RecTools</a> </p></li>\n<li><p><a href=\"https://github.com/recommenders-team/recommenders\" target=\"_blank\">Recommenders </a></p></li>\n<li><p><a href=\"https://github.com/sb-ai-lab/RePlay\" target=\"_blank\">RePlay</a> </p></li>\n<li><p><a href=\"https://benfred.github.io/implicit/\" target=\"_blank\">Imlicit</a></p></li>\n<li><p><a href=\"https://www.youtube.com/@acmrecsys/videos\" target=\"_blank\">ACM RecSys video</a></p></li>\n<li><p>RecTour ACM RecSys Workshop</p></li>\n<li><p><a href=\"https://www.kaggle.com/datasets/samvelkoch/global-airports-iata-icao-timezone-geo/\" target=\"_blank\">Global Airports dataset</a></p></li>\n</ul>\n<p>TBA …</p>",
      "rawMarkdown": "Welcome aboard! Throttle up...  Here are some ideas and insights that might help you navigate this competition.\n\nThe task we'll be working with in this competition might seem relatively simple at first glance. All we need to do is recommend flight options by ranking them from best to worst. On one hand, I suspect your first thought might be that a universal \"best\" answer could be achieved with simple heuristics without ML. Yes, this is indeed a decent baseline - choosing the top-performing option (lowest price, shortest duration, highest popularity, etc.)\n\nBut on the other hand, if we look at the target and historical data, it turns out that the options actually chosen by real users are surprisingly hard to predict with simple rules. The task will be complicated by the fact that, despite the large dataset size, the signal-to-noise ratio is quite low. Add to this class imbalance, implicit target, lack of historical data...\n\nThen there's the specificity of the business travel bias and aviation domains. Here, essentially every flight search by every user represents a self-contained set of options. The same flight can have different prices and options. Different airlines fly the same route on the same day, and the next day the situation can change dramatically. It turns out that even the problem formulation isn't quite classical RecSys.\n\nClassification? Learning-to-Rank? Matrix factorization or content-based filtering, NN? There are many options...\n\nThis toolkit will help you get started in the competition:\n\n- CatBoost, LightGBM, XGBoost - gbdt triade. Every boosting in a list has ranking implementation onboard.  The Feature engineering with current data should boost your score. \n- [RecTools](https://github.com/MobileTeleSystems/RecTools) \n- [Recommenders ](https://github.com/recommenders-team/recommenders)\n- [RePlay](https://github.com/sb-ai-lab/RePlay) \n- [Imlicit](https://benfred.github.io/implicit/)\n- [ACM RecSys video](https://www.youtube.com/@acmrecsys/videos)\n- RecTour ACM RecSys Workshop\n\n- [Global Airports dataset](https://www.kaggle.com/datasets/samvelkoch/global-airports-iata-icao-timezone-geo/)\n\nTBA ...\n\n",
      "votes": 8
    },
    {
      "id": 3227034,
      "postDate": "2025-06-18T11:56:44.413Z",
      "content": "<p>Thank you for the information you provided. This competition seems very interesting. Why is it held as a community competition? I think this competition can be held as a medal competition.</p>",
      "rawMarkdown": "Thank you for the information you provided. This competition seems very interesting. Why is it held as a community competition? I think this competition can be held as a medal competition.",
      "votes": 3,
      "replies": [
        {
          "id": 3227046,
          "postDate": "2025-06-18T12:12:50.933Z",
          "content": "<p>Organiser team considered Featured Competition as the main option, but due to a combination of several factors, it was decided to hold this 1st competition in the future series as a Community type competition. I hope some limitations of the format will not reduce the interest of the Kaggle community.</p>",
          "rawMarkdown": "Organiser team considered Featured Competition as the main option, but due to a combination of several factors, it was decided to hold this 1st competition in the future series as a Community type competition. I hope some limitations of the format will not reduce the interest of the Kaggle community.",
          "votes": 1
        }
      ]
    },
    {
      "id": 3229640,
      "postDate": "2025-06-21T20:46:23.583Z",
      "content": "<p>😧 - My face, when i check data(the large dataset size, the signal-to-noise ratio is quite low. Add to this class imbalance, implicit target, lack of historical data…). CPU out of memory, my brain out of my mind…🥺</p>",
      "rawMarkdown": "😧 - My face, when i check data(the large dataset size, the signal-to-noise ratio is quite low. Add to this class imbalance, implicit target, lack of historical data…). CPU out of memory, my brain out of my mind...🥺",
      "votes": 1,
      "replies": [
        {
          "id": 3229645,
          "postDate": "2025-06-21T20:58:16.553Z",
          "content": "<p>Yep… That's is a reality of RecSys in production quite often. 😉</p>",
          "rawMarkdown": "Yep... That's is a reality of RecSys in production quite often. 😉",
          "votes": 1
        }
      ]
    },
    {
      "id": 3234126,
      "postDate": "2025-06-27T14:33:22.143Z",
      "content": "<p>could you explain this feature:<br>\n<code>isAccess3D</code> - Binary marker for internal feature</p>",
      "rawMarkdown": "could you explain this feature:\n`isAccess3D` - Binary marker for internal feature",
      "votes": 2,
      "replies": [
        {
          "id": 3235081,
          "postDate": "2025-06-28T17:33:23.173Z",
          "content": "<p>This is a characteristic of a three-party contract. Unfortunately, I’m not in a position to go into further detail here.</p>",
          "rawMarkdown": "This is a characteristic of a three-party contract. Unfortunately, I’m not in a position to go into further detail here.",
          "votes": 1
        }
      ]
    },
    {
      "id": 3232827,
      "postDate": "2025-06-26T08:46:19.543Z",
      "content": "<p>please explain frequentFlyer </p>",
      "rawMarkdown": "please explain frequentFlyer ",
      "votes": 2,
      "replies": [
        {
          "id": 3232914,
          "postDate": "2025-06-26T09:50:37.380Z",
          "content": "<p>Most of airlines have frequent flier programs, that gives discounts or privileges.  THis column shows  for given user, in which airlines discount programs he participates.</p>",
          "rawMarkdown": "Most of airlines have frequent flier programs, that gives discounts or privileges.  THis column shows  for given user, in which airlines discount programs he participates.",
          "votes": 2,
          "replies": [
            {
              "id": 3232959,
              "postDate": "2025-06-26T10:56:37.603Z",
              "content": "<p>an important point to note here is that in most frequent flyer programs, the participants are individuals. This means that when a company pays for an employee’s business trip, any benefits from the frequent flyer program (such as miles) go to the individual traveler, not the company. As a result, some travelers may prioritize earning more personal miles over saving money for the company, since it's not their own money being spent.</p>",
              "rawMarkdown": "an important point to note here is that in most frequent flyer programs, the participants are individuals. This means that when a company pays for an employee’s business trip, any benefits from the frequent flyer program (such as miles) go to the individual traveler, not the company. As a result, some travelers may prioritize earning more personal miles over saving money for the company, since it's not their own money being spent.",
              "votes": 2
            }
          ]
        }
      ]
    },
    {
      "id": 3267117,
      "postDate": "2025-08-10T13:22:51.490Z",
      "content": "<p>What does BySelf mean? Could you please tell me, is my understanding correct?</p>\n<ul>\n<li>BySelf = true, company gives money limit to passenger, passenger chooses flight and that tells company which tickets he needs to buy.</li>\n<li>BySelf = false, company gives money limit to passenger AND then company travel manager chooses the tickets. The passenger only get the final ticket. Maybe some general passsenger personal preferences are taken into account (like date)</li>\n</ul>",
      "rawMarkdown": "What does BySelf mean? Could you please tell me, is my understanding correct?\n- BySelf = true, company gives money limit to passenger, passenger chooses flight and that tells company which tickets he needs to buy.\n- BySelf = false, company gives money limit to passenger AND then company travel manager chooses the tickets. The passenger only get the final ticket. Maybe some general passsenger personal preferences are taken into account (like date)",
      "replies": [
        {
          "id": 3267129,
          "postDate": "2025-08-10T13:58:12.970Z",
          "content": "<p><a href=\"https://www.kaggle.com/glipko\" target=\"_blank\">@glipko</a> no, your understanding is not correct. </p>\n<p>**bySelf **- whether user books flights independently. Indicator that the flight ticket search was initiated by the user themselves. If False, the ticket is being searched for by a third party (agent, assistant, helper).</p>",
          "rawMarkdown": "@glipko no, your understanding is not correct. \n\n**bySelf **- whether user books flights independently. Indicator that the flight ticket search was initiated by the user themselves. If False, the ticket is being searched for by a third party (agent, assistant, helper)."
        }
      ]
    },
    {
      "id": 3266467,
      "postDate": "2025-08-09T06:43:41.607Z",
      "content": "<p>Could you please explain what the <strong>convenience</strong> label in the raw json data represents and how it is calculated?</p>",
      "rawMarkdown": "Could you please explain what the **convenience** label in the raw json data represents and how it is calculated?",
      "replies": [
        {
          "id": 3266473,
          "postDate": "2025-08-09T07:08:10.940Z",
          "content": "<p>That is a <strong>legacy</strong> default options sorting formula used when smarter recommendations are not available.</p>\n<p>The \"convenience rate\" balances speed vs cost. </p>\n<p>Here's the actual code:</p>\n<pre><code>\n{\n     Math.Sqrt(Math.Pow(.Legs.Sum(l =&gt; l.Duration.TotalMinutes) / minTravelTime, )) + \n           Math.Sqrt(Math.Pow(().Tariffs.Min(p =&gt; p.TotalPrice.Amount) / minPrice, ));\n}\n</code></pre>\n<p>It calculates: normalized_time_ratio + normalized_price_ratio</p>\n<p>Think of it like a \"value for money\" metric - <strong>lower scores are better</strong>. A direct flight might score better than a cheaper connecting flight because the time savings outweigh the extra cost.</p>",
          "rawMarkdown": "That is a **legacy** default options sorting formula used when smarter recommendations are not available.\n\nThe \"convenience rate\" balances speed vs cost. \n\nHere's the actual code:\n```csharp\npublic double GetConvenienceRate(double minTravelTime, double minPrice)\n{\n    return Math.Sqrt(Math.Pow(this.Legs.Sum(l => l.Duration.TotalMinutes) / minTravelTime, 2)) + \n           Math.Sqrt(Math.Pow((double)this.Tariffs.Min(p => p.TotalPrice.Amount) / minPrice, 2));\n}\n```\n\nIt calculates: normalized_time_ratio + normalized_price_ratio\n\nThink of it like a \"value for money\" metric - **lower scores are better**. A direct flight might score better than a cheaper connecting flight because the time savings outweigh the extra cost."
        }
      ]
    },
    {
      "id": 3235725,
      "postDate": "2025-06-29T15:01:04.057Z",
      "content": "<p>legs<em>_segments</em>_cabinClass - Service class: 1.0 = economy, 2.0 = business, 4.0 = premium</p>\n<p>whats 3.0?</p>",
      "rawMarkdown": "legs*_segments*_cabinClass - Service class: 1.0 = economy, 2.0 = business, 4.0 = premium\n\nwhats 3.0?",
      "replies": [
        {
          "id": 3235732,
          "postDate": "2025-06-29T15:06:40.737Z",
          "content": "<p>1 - economy, 2 - comfort, 3 - business, 4 - first </p>",
          "rawMarkdown": "1 - economy, 2 - comfort, 3 - business, 4 - first "
        }
      ]
    },
    {
      "id": 3230707,
      "postDate": "2025-06-23T11:03:14.077Z",
      "content": "<p>Hi <a href=\"https://www.kaggle.com/samvelkoch\" target=\"_blank\">@samvelkoch</a> great competetion.Also could you help me to understand what columns like <strong>legs<em>_segments</em>_departureFrom_airport_iata</strong> , <strong>legs<em>_segments</em>_arrivalTo_airport_iata</strong> and <strong>legs<em>_segments</em>_arrivalTo_airport_city_iata</strong> do. I get the gist of it but unable to understand multiple values of legs(0,1) and segment(0,3) tell us about .</p>",
      "rawMarkdown": "Hi @samvelkoch great competetion.Also could you help me to understand what columns like **legs*_segments*_departureFrom_airport_iata** , **legs*_segments*_arrivalTo_airport_iata** and **legs*_segments*_arrivalTo_airport_city_iata** do. I get the gist of it but unable to understand multiple values of legs(0,1) and segment(0,3) tell us about .",
      "votes": 1,
      "isDeleted": true,
      "replies": [
        {
          "id": 3230747,
          "postDate": "2025-06-23T12:05:18.450Z",
          "content": "<p>Hi <a href=\"https://www.kaggle.com/asteyagaur\" target=\"_blank\">@asteyagaur</a>, thank you 🙏. Great question. Let me break this down:</p>\n<p><strong>Legs (0/1):</strong> These represent the flight directions in a round-trip ticket:</p>\n<ul>\n<li><code>legs0</code> = outbound flight (your initial destination)  </li>\n<li><code>legs1</code> = return flight (back home)</li>\n</ul>\n<p><strong>Segments (0-3):</strong> These represent individual flight segments within each leg:</p>\n<ul>\n<li><strong>Direct flight:</strong> Only <code>segment0</code> (e.g., NYC → London)</li>\n<li><strong>One connection:</strong> <code>segment0</code> + <code>segment1</code> (e.g., NYC → Amsterdam → London)</li>\n<li><strong>Two connections:</strong> <code>segment0</code> + <code>segment1</code> + <code>segment2</code>, and so on</li>\n</ul>\n<p><strong>IATA codes:</strong></p>\n<ul>\n<li><code>airport_iata</code> = specific airport code (e.g., JFK, LGA, EWR for NYC)</li>\n<li><code>airport_city_iata</code> = city code (e.g., NYC for all New York airports)</li>\n</ul>\n<p>So for a trip like \"NYC → Amsterdam → London, then London → Paris → NYC\", you'd have:</p>\n<ul>\n<li><code>legs0</code>: outbound with 2 segments (NYC→AMS, AMS→LON)  </li>\n<li><code>legs1</code>: return with 2 segments (LON→CDG, CDG→NYC)</li>\n</ul>\n<p>Hope this clarifies the structure. Let me know if you need any other details.</p>",
          "rawMarkdown": "Hi @asteyagaur, thank you 🙏. Great question. Let me break this down:\n\n**Legs (0/1):** These represent the flight directions in a round-trip ticket:\n- `legs0` = outbound flight (your initial destination)  \n- `legs1` = return flight (back home)\n\n**Segments (0-3):** These represent individual flight segments within each leg:\n- **Direct flight:** Only `segment0` (e.g., NYC → London)\n- **One connection:** `segment0` + `segment1` (e.g., NYC → Amsterdam → London)\n- **Two connections:** `segment0` + `segment1` + `segment2`, and so on\n\n**IATA codes:**\n- `airport_iata` = specific airport code (e.g., JFK, LGA, EWR for NYC)\n- `airport_city_iata` = city code (e.g., NYC for all New York airports)\n\nSo for a trip like \"NYC → Amsterdam → London, then London → Paris → NYC\", you'd have:\n- `legs0`: outbound with 2 segments (NYC→AMS, AMS→LON)  \n- `legs1`: return with 2 segments (LON→CDG, CDG→NYC)\n\nHope this clarifies the structure. Let me know if you need any other details.",
          "replies": [
            {
              "id": 3230835,
              "postDate": "2025-06-23T14:01:50.410Z",
              "content": "<p>Thanks for quick reply <a href=\"https://www.kaggle.com/samvelkoch\" target=\"_blank\">@samvelkoch</a> . One question looking at below screenshot for <strong>#row 3</strong> the duration (legs0_duration) of flight is 7.25 where the flight 1st go from TLK to OVB which take 2.50.00 hours and then from OVB to KJA which take 1.20 hours. The remaining time from total duration which is 7.25 - 2.50 - 1.20 is waiting time spend by user on OVB airport , Please help me too understand this as I am unable to find waiting time between two flights in dataset .![]![]<br>\nAlso **leg_0arrivalAt **and **leg0_departureAt **seems suspicious  as flight arrived at <strong>\"2024-06-15T14:50:00\"</strong> but departure is <strong>\"2024-06-15T09:25:00\"</strong> at same date ? As per my understanding 14.50 is 2.50 PM and 09.25 is 9.25 AM .</p>\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F9552812%2Fdc924b0390f02a952e1fa38fbc2d416c%2FScreenshot%202025-06-23%20192129.png?generation=1750687337435079&amp;alt=media\" alt=\"\"></p>",
              "rawMarkdown": "Thanks for quick reply @samvelkoch . One question looking at below screenshot for **#row 3** the duration (legs0_duration) of flight is 7.25 where the flight 1st go from TLK to OVB which take 2.50.00 hours and then from OVB to KJA which take 1.20 hours. The remaining time from total duration which is 7.25 - 2.50 - 1.20 is waiting time spend by user on OVB airport , Please help me too understand this as I am unable to find waiting time between two flights in dataset .![]![]\nAlso **leg_0arrivalAt **and **leg0_departureAt **seems suspicious  as flight arrived at **\"2024-06-15T14:50:00\"** but departure is **\"2024-06-15T09:25:00\"** at same date ? As per my understanding 14.50 is 2.50 PM and 09.25 is 9.25 AM .\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F9552812%2Fdc924b0390f02a952e1fa38fbc2d416c%2FScreenshot%202025-06-23%20192129.png?generation=1750687337435079&alt=media)\n",
              "isDeleted": true
            },
            {
              "id": 3230853,
              "postDate": "2025-06-23T14:36:07.880Z",
              "content": "<p>You've spotted some important details. The <code>duration</code> fields represent pure travel time, so your layover calculation is spot on.</p>\n<ol>\n<li>Waiting time calculation:<br>\nThe layover time between connections is embedded in the total duration but not explicitly provided as a separate column. </li>\n</ol>\n<p>For row #3:</p>\n<ul>\n<li>Total duration: 7h 25m</li>\n<li>Segment 0 (TLK→OVB): 2h 50m  </li>\n<li>Segment 1 (OVB→KJA): 1h 20m</li>\n<li>Layover time in OVB: 7:25 - 2:50 - 1:20 = 3h 15m </li>\n</ul>\n<ol>\n<li>Arrival vs Departure times:<br>\nThis is a <strong>timezone difference</strong> issue:</li>\n</ol>\n<ul>\n<li><code>legs0_departureAt</code>: \"2024-06-15T09:25:00\" (9:25 AM TLK local time)</li>\n<li><code>legs0_arrivalAt</code>: \"2024-06-15T14:50:00\" (2:50 PM KJA local time)</li>\n</ul>\n<p>The times are displayed in each airport's local timezone. TLK (Talakan) and KJA (Krasnoyarsk) are in different time zones with 2 hours difference. </p>\n<p>There is no direct information in the train / test regarding timezones. I'll figure out how to add this knowledge to the competition. </p>",
              "rawMarkdown": "You've spotted some important details. The `duration` fields represent pure travel time, so your layover calculation is spot on.\n\n1. Waiting time calculation:\nThe layover time between connections is embedded in the total duration but not explicitly provided as a separate column. \n\nFor row #3:\n- Total duration: 7h 25m\n- Segment 0 (TLK→OVB): 2h 50m  \n- Segment 1 (OVB→KJA): 1h 20m\n- Layover time in OVB: 7:25 - 2:50 - 1:20 = 3h 15m \n\n2. Arrival vs Departure times:\nThis is a **timezone difference** issue:\n- `legs0_departureAt`: \"2024-06-15T09:25:00\" (9:25 AM TLK local time)\n- `legs0_arrivalAt`: \"2024-06-15T14:50:00\" (2:50 PM KJA local time)\n\nThe times are displayed in each airport's local timezone. TLK (Talakan) and KJA (Krasnoyarsk) are in different time zones with 2 hours difference. \n\nThere is no direct information in the train / test regarding timezones. I'll figure out how to add this knowledge to the competition. ",
              "votes": 1
            },
            {
              "id": 3230887,
              "postDate": "2025-06-23T15:07:16.323Z",
              "rawMarkdown": "",
              "isDeleted": true
            },
            {
              "id": 3230911,
              "postDate": "2025-06-23T15:35:17.077Z",
              "content": "<p>thanks <a href=\"https://www.kaggle.com/samvelkoch\" target=\"_blank\">@samvelkoch</a> for helping me out .</p>",
              "rawMarkdown": "thanks @samvelkoch for helping me out .",
              "votes": 1,
              "isDeleted": true
            },
            {
              "id": 3231022,
              "postDate": "2025-06-23T18:43:50.103Z",
              "content": "<p>Hi <a href=\"https://www.kaggle.com/samvelkoch\" target=\"_blank\">@samvelkoch</a> Very Naive Questions </p>\n<p>1)  Total price includes the taxes ?<br>\ntotalPrice = 51125<br>\ntaxes = 2240<br>\nActual Price of Ticket is (51125-2240) ? or 51125 ?</p>\n<p>2) Let say I have cancellation/Exchange<br>\ntotalPrice = 51125<br>\ntaxes = 2240<br>\nCancelPrice = 2300</p>\n<p>Do I need to give 2300 extra to airline which include taxes or 2300 + Tax ?</p>",
              "rawMarkdown": "Hi @samvelkoch Very Naive Questions \n\n1)  Total price includes the taxes ?\ntotalPrice = 51125\ntaxes = 2240\nActual Price of Ticket is (51125-2240) ? or 51125 ?\n\n2) Let say I have cancellation/Exchange\ntotalPrice = 51125\ntaxes = 2240\nCancelPrice = 2300\n\nDo I need to give 2300 extra to airline which include taxes or 2300 + Tax ?\n",
              "isDeleted": true
            },
            {
              "id": 3231039,
              "postDate": "2025-06-23T19:21:05.417Z",
              "content": "<blockquote>\n  <p>I'll figure out how to add this knowledge to the competition.</p>\n</blockquote>\n<p>Here it is.[ Global Airports dataset.](<a href=\"https://www.kaggle.com/datasets/samvelkoch/global-airports-iata-icao-timezone-geo/\" target=\"_blank\">https://www.kaggle.com/datasets/samvelkoch/global-airports-iata-icao-timezone-geo/</a>. Feel free to use as a reference. </p>",
              "rawMarkdown": ">I'll figure out how to add this knowledge to the competition.\n\nHere it is.[ Global Airports dataset.](https://www.kaggle.com/datasets/samvelkoch/global-airports-iata-icao-timezone-geo/. Feel free to use as a reference. "
            },
            {
              "id": 3231052,
              "postDate": "2025-06-23T19:48:53.073Z",
              "content": "<blockquote>\n  <p>Total price includes the taxes ?<br>\n  Yes<br>\n  Do I need to give 2300 extra to airline which include taxes or 2300 + Tax <br>\n  2300 is a total penalty amount, it includes taxes as well. </p>\n</blockquote>",
              "rawMarkdown": " >Total price includes the taxes ?\nYes\n>Do I need to give 2300 extra to airline which include taxes or 2300 + Tax \n2300 is a total penalty amount, it includes taxes as well. "
            },
            {
              "id": 3231470,
              "postDate": "2025-06-24T12:16:04.960Z",
              "content": "<p><a href=\"https://www.kaggle.com/samvelkoch\" target=\"_blank\">@samvelkoch</a> All <strong>TotalPrice</strong> values is in same currency ?</p>",
              "rawMarkdown": "@samvelkoch All **TotalPrice** values is in same currency ?",
              "votes": 1,
              "isDeleted": true
            },
            {
              "id": 3231523,
              "postDate": "2025-06-24T14:31:53.197Z",
              "content": "<p>Yes. <code>totalPrice</code> - same currency</p>",
              "rawMarkdown": "Yes. `totalPrice` - same currency"
            },
            {
              "id": 3243899,
              "postDate": "2025-07-07T16:32:44.510Z",
              "content": "<p>Hi <a href=\"https://www.kaggle.com/samvelkoch\" target=\"_blank\">@samvelkoch</a> There are many ranker_ids which consists large amount of group data . Like <strong>\"00b067c45450432181fbcbdf64a58580\"</strong> consists around 6266 records . does while looking for flights clients get as many options to choose between ?</p>",
              "rawMarkdown": "Hi @samvelkoch There are many ranker_ids which consists large amount of group data . Like **\"00b067c45450432181fbcbdf64a58580\"** consists around 6266 records . does while looking for flights clients get as many options to choose between ?",
              "votes": 1,
              "isDeleted": true
            },
            {
              "id": 3243924,
              "postDate": "2025-07-07T16:46:41.503Z",
              "content": "<p>Hi. Thanks for your question. Yes such a huge amount of flights options often come for heavy loaded routes. For a example sometimes you can observe a flight in every 15-20 minutes on a route.<br>\nClients have an opportunity to scroll all the options or to filter it out or sort it but of course no one wants to choose between several thousands options. The top recommendations usually are in the header. Clickstream data is not available for current competition but next time it will be probably shared in the dataset as well. </p>",
              "rawMarkdown": "Hi. Thanks for your question. Yes such a huge amount of flights options often come for heavy loaded routes. For a example sometimes you can observe a flight in every 15-20 minutes on a route.\nClients have an opportunity to scroll all the options or to filter it out or sort it but of course no one wants to choose between several thousands options. The top recommendations usually are in the header. Clickstream data is not available for current competition but next time it will be probably shared in the dataset as well. "
            },
            {
              "id": 3254498,
              "postDate": "2025-07-26T16:22:35.913Z",
              "content": "<p>Hi <a href=\"https://www.kaggle.com/samvelkoch\" target=\"_blank\">@samvelkoch</a> What does <strong>miniRules0_percentage</strong> or <strong>miniRules1_percentage</strong>equals to <strong>Nan</strong> means . Can we consider it as 0 ?</p>",
              "rawMarkdown": "Hi @samvelkoch What does **miniRules0_percentage** or **miniRules1_percentage**equals to **Nan** means . Can we consider it as 0 ?",
              "isDeleted": true
            },
            {
              "id": 3254537,
              "postDate": "2025-07-26T17:47:43.073Z",
              "content": "<p>Hi <a href=\"https://www.kaggle.com/asteyagaur\" target=\"_blank\">@asteyagaur</a>. It means \"no info\". 0 wouldn't be correct fillna but you can try it. </p>",
              "rawMarkdown": "Hi @asteyagaur. It means \"no info\". 0 wouldn't be correct fillna but you can try it. "
            }
          ]
        }
      ]
    }
  ],
  "comments": [
    {
      "id": 3227034,
      "author_name": "yunsuxiaozi",
      "author_url": "",
      "post_date": "2025-06-18T11:56:44.413000",
      "content": "<p>Thank you for the information you provided. This competition seems very interesting. Why is it held as a community competition? I think this competition can be held as a medal competition.</p>",
      "votes": 3,
      "replies": [
        {
          "id": 3227046,
          "author_name": "Samvel Kocharyan",
          "author_url": "",
          "post_date": "2025-06-18T12:12:50.933000",
          "content": "<p>Organiser team considered Featured Competition as the main option, but due to a combination of several factors, it was decided to hold this 1st competition in the future series as a Community type competition. I hope some limitations of the format will not reduce the interest of the Kaggle community.</p>",
          "votes": 1,
          "replies": []
        }
      ]
    },
    {
      "id": 3229640,
      "author_name": "Antonoof",
      "author_url": "",
      "post_date": "2025-06-21T20:46:23.583000",
      "content": "<p>😧 - My face, when i check data(the large dataset size, the signal-to-noise ratio is quite low. Add to this class imbalance, implicit target, lack of historical data…). CPU out of memory, my brain out of my mind…🥺</p>",
      "votes": 1,
      "replies": [
        {
          "id": 3229645,
          "author_name": "Samvel Kocharyan",
          "author_url": "",
          "post_date": "2025-06-21T20:58:16.553000",
          "content": "<p>Yep… That's is a reality of RecSys in production quite often. 😉</p>",
          "votes": 1,
          "replies": []
        }
      ]
    },
    {
      "id": 3234126,
      "author_name": "just another tuesday",
      "author_url": "",
      "post_date": "2025-06-27T14:33:22.143000",
      "content": "<p>could you explain this feature:<br>\n<code>isAccess3D</code> - Binary marker for internal feature</p>",
      "votes": 2,
      "replies": [
        {
          "id": 3235081,
          "author_name": "Samvel Kocharyan",
          "author_url": "",
          "post_date": "2025-06-28T17:33:23.173000",
          "content": "<p>This is a characteristic of a three-party contract. Unfortunately, I’m not in a position to go into further detail here.</p>",
          "votes": 1,
          "replies": []
        }
      ]
    },
    {
      "id": 3232827,
      "author_name": "Abhishek Lodhi03",
      "author_url": "",
      "post_date": "2025-06-26T08:46:19.543000",
      "content": "<p>please explain frequentFlyer </p>",
      "votes": 2,
      "replies": [
        {
          "id": 3232914,
          "author_name": "Sergey Qt2024",
          "author_url": "",
          "post_date": "2025-06-26T09:50:37.380000",
          "content": "<p>Most of airlines have frequent flier programs, that gives discounts or privileges.  THis column shows  for given user, in which airlines discount programs he participates.</p>",
          "votes": 2,
          "replies": [
            {
              "id": 3232959,
              "author_name": "Samvel Kocharyan",
              "author_url": "",
              "post_date": "2025-06-26T10:56:37.603000",
              "content": "<p>an important point to note here is that in most frequent flyer programs, the participants are individuals. This means that when a company pays for an employee’s business trip, any benefits from the frequent flyer program (such as miles) go to the individual traveler, not the company. As a result, some travelers may prioritize earning more personal miles over saving money for the company, since it's not their own money being spent.</p>",
              "votes": 2,
              "replies": []
            }
          ]
        }
      ]
    },
    {
      "id": 3267117,
      "author_name": "Gleb Kazakov",
      "author_url": "",
      "post_date": "2025-08-10T13:22:51.490000",
      "content": "<p>What does BySelf mean? Could you please tell me, is my understanding correct?</p>\n<ul>\n<li>BySelf = true, company gives money limit to passenger, passenger chooses flight and that tells company which tickets he needs to buy.</li>\n<li>BySelf = false, company gives money limit to passenger AND then company travel manager chooses the tickets. The passenger only get the final ticket. Maybe some general passsenger personal preferences are taken into account (like date)</li>\n</ul>",
      "votes": 0,
      "replies": [
        {
          "id": 3267129,
          "author_name": "Samvel Kocharyan",
          "author_url": "",
          "post_date": "2025-08-10T13:58:12.970000",
          "content": "<p><a href=\"https://www.kaggle.com/glipko\" target=\"_blank\">@glipko</a> no, your understanding is not correct. </p>\n<p>**bySelf **- whether user books flights independently. Indicator that the flight ticket search was initiated by the user themselves. If False, the ticket is being searched for by a third party (agent, assistant, helper).</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 3266467,
      "author_name": "mango",
      "author_url": "",
      "post_date": "2025-08-09T06:43:41.607000",
      "content": "<p>Could you please explain what the <strong>convenience</strong> label in the raw json data represents and how it is calculated?</p>",
      "votes": 0,
      "replies": [
        {
          "id": 3266473,
          "author_name": "Samvel Kocharyan",
          "author_url": "",
          "post_date": "2025-08-09T07:08:10.940000",
          "content": "<p>That is a <strong>legacy</strong> default options sorting formula used when smarter recommendations are not available.</p>\n<p>The \"convenience rate\" balances speed vs cost. </p>\n<p>Here's the actual code:</p>\n<pre><code>\n{\n     Math.Sqrt(Math.Pow(.Legs.Sum(l =&gt; l.Duration.TotalMinutes) / minTravelTime, )) + \n           Math.Sqrt(Math.Pow(().Tariffs.Min(p =&gt; p.TotalPrice.Amount) / minPrice, ));\n}\n</code></pre>\n<p>It calculates: normalized_time_ratio + normalized_price_ratio</p>\n<p>Think of it like a \"value for money\" metric - <strong>lower scores are better</strong>. A direct flight might score better than a cheaper connecting flight because the time savings outweigh the extra cost.</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 3235725,
      "author_name": "just another tuesday",
      "author_url": "",
      "post_date": "2025-06-29T15:01:04.057000",
      "content": "<p>legs<em>_segments</em>_cabinClass - Service class: 1.0 = economy, 2.0 = business, 4.0 = premium</p>\n<p>whats 3.0?</p>",
      "votes": 0,
      "replies": [
        {
          "id": 3235732,
          "author_name": "Samvel Kocharyan",
          "author_url": "",
          "post_date": "2025-06-29T15:06:40.737000",
          "content": "<p>1 - economy, 2 - comfort, 3 - business, 4 - first </p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 3230707,
      "author_name": "",
      "author_url": "",
      "post_date": "2025-06-23T11:03:14.077000",
      "content": "<p>Hi <a href=\"https://www.kaggle.com/samvelkoch\" target=\"_blank\">@samvelkoch</a> great competetion.Also could you help me to understand what columns like <strong>legs<em>_segments</em>_departureFrom_airport_iata</strong> , <strong>legs<em>_segments</em>_arrivalTo_airport_iata</strong> and <strong>legs<em>_segments</em>_arrivalTo_airport_city_iata</strong> do. I get the gist of it but unable to understand multiple values of legs(0,1) and segment(0,3) tell us about .</p>",
      "votes": 1,
      "replies": [
        {
          "id": 3230747,
          "author_name": "Samvel Kocharyan",
          "author_url": "",
          "post_date": "2025-06-23T12:05:18.450000",
          "content": "<p>Hi <a href=\"https://www.kaggle.com/asteyagaur\" target=\"_blank\">@asteyagaur</a>, thank you 🙏. Great question. Let me break this down:</p>\n<p><strong>Legs (0/1):</strong> These represent the flight directions in a round-trip ticket:</p>\n<ul>\n<li><code>legs0</code> = outbound flight (your initial destination)  </li>\n<li><code>legs1</code> = return flight (back home)</li>\n</ul>\n<p><strong>Segments (0-3):</strong> These represent individual flight segments within each leg:</p>\n<ul>\n<li><strong>Direct flight:</strong> Only <code>segment0</code> (e.g., NYC → London)</li>\n<li><strong>One connection:</strong> <code>segment0</code> + <code>segment1</code> (e.g., NYC → Amsterdam → London)</li>\n<li><strong>Two connections:</strong> <code>segment0</code> + <code>segment1</code> + <code>segment2</code>, and so on</li>\n</ul>\n<p><strong>IATA codes:</strong></p>\n<ul>\n<li><code>airport_iata</code> = specific airport code (e.g., JFK, LGA, EWR for NYC)</li>\n<li><code>airport_city_iata</code> = city code (e.g., NYC for all New York airports)</li>\n</ul>\n<p>So for a trip like \"NYC → Amsterdam → London, then London → Paris → NYC\", you'd have:</p>\n<ul>\n<li><code>legs0</code>: outbound with 2 segments (NYC→AMS, AMS→LON)  </li>\n<li><code>legs1</code>: return with 2 segments (LON→CDG, CDG→NYC)</li>\n</ul>\n<p>Hope this clarifies the structure. Let me know if you need any other details.</p>",
          "votes": 0,
          "replies": [
            {
              "id": 3230835,
              "author_name": "",
              "author_url": "",
              "post_date": "2025-06-23T14:01:50.410000",
              "content": "<p>Thanks for quick reply <a href=\"https://www.kaggle.com/samvelkoch\" target=\"_blank\">@samvelkoch</a> . One question looking at below screenshot for <strong>#row 3</strong> the duration (legs0_duration) of flight is 7.25 where the flight 1st go from TLK to OVB which take 2.50.00 hours and then from OVB to KJA which take 1.20 hours. The remaining time from total duration which is 7.25 - 2.50 - 1.20 is waiting time spend by user on OVB airport , Please help me too understand this as I am unable to find waiting time between two flights in dataset .![]![]<br>\nAlso **leg_0arrivalAt **and **leg0_departureAt **seems suspicious  as flight arrived at <strong>\"2024-06-15T14:50:00\"</strong> but departure is <strong>\"2024-06-15T09:25:00\"</strong> at same date ? As per my understanding 14.50 is 2.50 PM and 09.25 is 9.25 AM .</p>\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F9552812%2Fdc924b0390f02a952e1fa38fbc2d416c%2FScreenshot%202025-06-23%20192129.png?generation=1750687337435079&amp;alt=media\" alt=\"\"></p>",
              "votes": 0,
              "replies": []
            },
            {
              "id": 3230853,
              "author_name": "Samvel Kocharyan",
              "author_url": "",
              "post_date": "2025-06-23T14:36:07.880000",
              "content": "<p>You've spotted some important details. The <code>duration</code> fields represent pure travel time, so your layover calculation is spot on.</p>\n<ol>\n<li>Waiting time calculation:<br>\nThe layover time between connections is embedded in the total duration but not explicitly provided as a separate column. </li>\n</ol>\n<p>For row #3:</p>\n<ul>\n<li>Total duration: 7h 25m</li>\n<li>Segment 0 (TLK→OVB): 2h 50m  </li>\n<li>Segment 1 (OVB→KJA): 1h 20m</li>\n<li>Layover time in OVB: 7:25 - 2:50 - 1:20 = 3h 15m </li>\n</ul>\n<ol>\n<li>Arrival vs Departure times:<br>\nThis is a <strong>timezone difference</strong> issue:</li>\n</ol>\n<ul>\n<li><code>legs0_departureAt</code>: \"2024-06-15T09:25:00\" (9:25 AM TLK local time)</li>\n<li><code>legs0_arrivalAt</code>: \"2024-06-15T14:50:00\" (2:50 PM KJA local time)</li>\n</ul>\n<p>The times are displayed in each airport's local timezone. TLK (Talakan) and KJA (Krasnoyarsk) are in different time zones with 2 hours difference. </p>\n<p>There is no direct information in the train / test regarding timezones. I'll figure out how to add this knowledge to the competition. </p>",
              "votes": 1,
              "replies": []
            },
            {
              "id": 3230887,
              "author_name": "",
              "author_url": "",
              "post_date": "2025-06-23T15:07:16.323000",
              "content": "",
              "votes": 0,
              "replies": []
            },
            {
              "id": 3230911,
              "author_name": "",
              "author_url": "",
              "post_date": "2025-06-23T15:35:17.077000",
              "content": "<p>thanks <a href=\"https://www.kaggle.com/samvelkoch\" target=\"_blank\">@samvelkoch</a> for helping me out .</p>",
              "votes": 1,
              "replies": []
            },
            {
              "id": 3231022,
              "author_name": "",
              "author_url": "",
              "post_date": "2025-06-23T18:43:50.103000",
              "content": "<p>Hi <a href=\"https://www.kaggle.com/samvelkoch\" target=\"_blank\">@samvelkoch</a> Very Naive Questions </p>\n<p>1)  Total price includes the taxes ?<br>\ntotalPrice = 51125<br>\ntaxes = 2240<br>\nActual Price of Ticket is (51125-2240) ? or 51125 ?</p>\n<p>2) Let say I have cancellation/Exchange<br>\ntotalPrice = 51125<br>\ntaxes = 2240<br>\nCancelPrice = 2300</p>\n<p>Do I need to give 2300 extra to airline which include taxes or 2300 + Tax ?</p>",
              "votes": 0,
              "replies": []
            },
            {
              "id": 3231039,
              "author_name": "Samvel Kocharyan",
              "author_url": "",
              "post_date": "2025-06-23T19:21:05.417000",
              "content": "<blockquote>\n  <p>I'll figure out how to add this knowledge to the competition.</p>\n</blockquote>\n<p>Here it is.[ Global Airports dataset.](<a href=\"https://www.kaggle.com/datasets/samvelkoch/global-airports-iata-icao-timezone-geo/\" target=\"_blank\">https://www.kaggle.com/datasets/samvelkoch/global-airports-iata-icao-timezone-geo/</a>. Feel free to use as a reference. </p>",
              "votes": 0,
              "replies": []
            },
            {
              "id": 3231052,
              "author_name": "Samvel Kocharyan",
              "author_url": "",
              "post_date": "2025-06-23T19:48:53.073000",
              "content": "<blockquote>\n  <p>Total price includes the taxes ?<br>\n  Yes<br>\n  Do I need to give 2300 extra to airline which include taxes or 2300 + Tax <br>\n  2300 is a total penalty amount, it includes taxes as well. </p>\n</blockquote>",
              "votes": 0,
              "replies": []
            },
            {
              "id": 3231470,
              "author_name": "",
              "author_url": "",
              "post_date": "2025-06-24T12:16:04.960000",
              "content": "<p><a href=\"https://www.kaggle.com/samvelkoch\" target=\"_blank\">@samvelkoch</a> All <strong>TotalPrice</strong> values is in same currency ?</p>",
              "votes": 1,
              "replies": []
            },
            {
              "id": 3231523,
              "author_name": "Samvel Kocharyan",
              "author_url": "",
              "post_date": "2025-06-24T14:31:53.197000",
              "content": "<p>Yes. <code>totalPrice</code> - same currency</p>",
              "votes": 0,
              "replies": []
            },
            {
              "id": 3243899,
              "author_name": "",
              "author_url": "",
              "post_date": "2025-07-07T16:32:44.510000",
              "content": "<p>Hi <a href=\"https://www.kaggle.com/samvelkoch\" target=\"_blank\">@samvelkoch</a> There are many ranker_ids which consists large amount of group data . Like <strong>\"00b067c45450432181fbcbdf64a58580\"</strong> consists around 6266 records . does while looking for flights clients get as many options to choose between ?</p>",
              "votes": 1,
              "replies": []
            },
            {
              "id": 3243924,
              "author_name": "Samvel Kocharyan",
              "author_url": "",
              "post_date": "2025-07-07T16:46:41.503000",
              "content": "<p>Hi. Thanks for your question. Yes such a huge amount of flights options often come for heavy loaded routes. For a example sometimes you can observe a flight in every 15-20 minutes on a route.<br>\nClients have an opportunity to scroll all the options or to filter it out or sort it but of course no one wants to choose between several thousands options. The top recommendations usually are in the header. Clickstream data is not available for current competition but next time it will be probably shared in the dataset as well. </p>",
              "votes": 0,
              "replies": []
            },
            {
              "id": 3254498,
              "author_name": "",
              "author_url": "",
              "post_date": "2025-07-26T16:22:35.913000",
              "content": "<p>Hi <a href=\"https://www.kaggle.com/samvelkoch\" target=\"_blank\">@samvelkoch</a> What does <strong>miniRules0_percentage</strong> or <strong>miniRules1_percentage</strong>equals to <strong>Nan</strong> means . Can we consider it as 0 ?</p>",
              "votes": 0,
              "replies": []
            },
            {
              "id": 3254537,
              "author_name": "Samvel Kocharyan",
              "author_url": "",
              "post_date": "2025-07-26T17:47:43.073000",
              "content": "<p>Hi <a href=\"https://www.kaggle.com/asteyagaur\" target=\"_blank\">@asteyagaur</a>. It means \"no info\". 0 wouldn't be correct fillna but you can try it. </p>",
              "votes": 0,
              "replies": []
            }
          ]
        }
      ]
    }
  ],
  "raw_markdown_by_id": {
    "3227028": "Welcome aboard! Throttle up...  Here are some ideas and insights that might help you navigate this competition.\n\nThe task we'll be working with in this competition might seem relatively simple at first glance. All we need to do is recommend flight options by ranking them from best to worst. On one hand, I suspect your first thought might be that a universal \"best\" answer could be achieved with simple heuristics without ML. Yes, this is indeed a decent baseline - choosing the top-performing option (lowest price, shortest duration, highest popularity, etc.)\n\nBut on the other hand, if we look at the target and historical data, it turns out that the options actually chosen by real users are surprisingly hard to predict with simple rules. The task will be complicated by the fact that, despite the large dataset size, the signal-to-noise ratio is quite low. Add to this class imbalance, implicit target, lack of historical data...\n\nThen there's the specificity of the business travel bias and aviation domains. Here, essentially every flight search by every user represents a self-contained set of options. The same flight can have different prices and options. Different airlines fly the same route on the same day, and the next day the situation can change dramatically. It turns out that even the problem formulation isn't quite classical RecSys.\n\nClassification? Learning-to-Rank? Matrix factorization or content-based filtering, NN? There are many options...\n\nThis toolkit will help you get started in the competition:\n\n- CatBoost, LightGBM, XGBoost - gbdt triade. Every boosting in a list has ranking implementation onboard.  The Feature engineering with current data should boost your score. \n- [RecTools](https://github.com/MobileTeleSystems/RecTools) \n- [Recommenders ](https://github.com/recommenders-team/recommenders)\n- [RePlay](https://github.com/sb-ai-lab/RePlay) \n- [Imlicit](https://benfred.github.io/implicit/)\n- [ACM RecSys video](https://www.youtube.com/@acmrecsys/videos)\n- RecTour ACM RecSys Workshop\n\n- [Global Airports dataset](https://www.kaggle.com/datasets/samvelkoch/global-airports-iata-icao-timezone-geo/)\n\nTBA ...\n\n",
    "3227034": "Thank you for the information you provided. This competition seems very interesting. Why is it held as a community competition? I think this competition can be held as a medal competition.",
    "3229640": "😧 - My face, when i check data(the large dataset size, the signal-to-noise ratio is quite low. Add to this class imbalance, implicit target, lack of historical data…). CPU out of memory, my brain out of my mind...🥺",
    "3234126": "could you explain this feature:\n`isAccess3D` - Binary marker for internal feature",
    "3232827": "please explain frequentFlyer ",
    "3267117": "What does BySelf mean? Could you please tell me, is my understanding correct?\n- BySelf = true, company gives money limit to passenger, passenger chooses flight and that tells company which tickets he needs to buy.\n- BySelf = false, company gives money limit to passenger AND then company travel manager chooses the tickets. The passenger only get the final ticket. Maybe some general passsenger personal preferences are taken into account (like date)",
    "3266467": "Could you please explain what the **convenience** label in the raw json data represents and how it is calculated?",
    "3235725": "legs*_segments*_cabinClass - Service class: 1.0 = economy, 2.0 = business, 4.0 = premium\n\nwhats 3.0?",
    "3230707": "Hi @samvelkoch great competetion.Also could you help me to understand what columns like **legs*_segments*_departureFrom_airport_iata** , **legs*_segments*_arrivalTo_airport_iata** and **legs*_segments*_arrivalTo_airport_city_iata** do. I get the gist of it but unable to understand multiple values of legs(0,1) and segment(0,3) tell us about ."
  }
}