Independent travel itineraries in Japan for Korean travelers · Tokyo · Osaka
Start planning with your destination, trip start and end dates, group size, and travel pace. You don't need a flight ticket, flight number, or flight departure date to begin. Your destination must be supported, and other planning checks still apply.
The arrival airport is determined before the user confirms. If the destination isn't one of the four listed above, itinerary creation doesn't proceed. We don't advertise destinations we don't support.
The input is a boarding pass, not a search box. Arrivals are limited to NRT, HND, KIX and ITM.
Every itinerary below is a real page. None of them is a mock-up.
Every itinerary below is a live page. Each one includes one hotel, daily destinations and times, 2–3 meals a day, travel between stops, and booking priorities.
People reviewed the placement of every itinerary built from pipeline data. We don't publish automated output as-is. The reviewer and review date are listed at the bottom of each page.
Individual itinerary pages generated by users from their own flight tickets are on a separate path and are not indexed by search engines. The only public content submitted for review is the editorially reviewed version in this list.
Partner products sit inside itinerary slots, not in a sidebar.
Partner products are placed in itinerary slots, not banner ads. This site has no sidebar ad placements or sections listing partner logos.
10:00–11:00 센소지
12:00–13:00 점심 슬롯 · 동선상 배치
┗ [예약] 2인 · 12:00 · 도쿄
→ 파트너 사이트에서 최종 가격을 확인합니다
16:00–16:40 나카미세 거리
숙박 호텔 1곳
┗ [예약] 2인 1실 · 3박 · KRW
→ 파트너 사이트에서 최종 가격을 확인합니다A hotel isn't a list. We present one hotel for the whole itinerary and explain why it was selected. This screen doesn't send users between twenty options. If they don't like it, they can ask for an alternative, and the result will still be one hotel.
[Book] The link opened by the button is prefilled with the city, check-in, check-out, guests, currency, and locale. Users arriving at the partner site don't need to fill in the search form again. The parameters passed are fixed by the contract schema.
entityId · checkIn · checkOut · partySize · locale · currency
| EXACT_PRODUCT | Direct to the product page |
|---|---|
| PREFILLED_SEARCH | Search results with filters filled in |
| CATEGORY_LANDING | The city's category page |
| UNAVAILABLE | We don't show a booking button when there's no link that can be opened. |
We believe showing users a button that doesn't open is worse for a partner's brand. That's why the fourth step is set to “don't display.”
SELECTED → LINK_READY → OPENED_PARTNER → BOOKED_UNVERIFIED → CONFIRMED
BOOKED_UNVERIFIED Subsequent itinerary slots are locked from automatic replacement. Even if the schedule is recalculated, hotels and tours you've already booked won't be replaced with other products. We won't prompt users who have completed a booking with “Would you like to switch to a cheaper option?”
TripNaru doesn't issue tickets or process payments on your behalf. We don't claim to offer the lowest prices. Check the final price and remaining availability on the partner's website.
Hours, prices and coordinates come from observed sources. The model may only touch naming and tags.
In this service, the language model is not the authority on facts. This is the real data that passes through as each place is saved.
[1] Collection — exactly as provided by the source
"名称": "東京国立博物館" "営業時間": "9:30〜17:00" "定休日": "月曜日" "緯度": "35.7188" "経度": "139.7766"
[2] Normalization — rules only. No model is called at this stage
Operating hours · days closed · prices · coordinates are structured here.
[3] Classification — coordinates, times, and prices are not sent to the model
돌려받는 것: verdict · confidence · tags
[4] Refinement — labels only
돌려받는 것: displayName · nameLanguage · confidence
[5] Save
좌표 · 운영시간 · 요금 ← [2] 규칙에서만 표기 · 태그 ← [3][4] 에서만
The model response schema has no fields for coordinates, times, or prices. There is structurally no way to overwrite facts. Items with low confidence aren't automatically passed through; they're sent to a human review queue.
| LIVE | Structured real-time and near-real-time data |
|---|---|
| WATCH | Official notices and monitored items — incorporated after verifying the evidence |
| SCHEDULE | Static opening hours — for planning only. Not shown as “open now” |
| ESTIMATED | Rule- and statistics-based ranges — shown only as ranges, not as confirmed facts |
Data sources — disclosed first
The current corpus is modeled directly on the CSV format used for municipal tourism open data as fixture data This is the stage where we validate the pipeline above. Coordinates are based on real locations, but haven't been verified by us. Once a live public-data integration is added, its values will overwrite these according to the source authority hierarchy. Fixture-derived values are accompanied on each screen by FIXTURE We add a badge and do not publish unverified prices or operating hours. Once the live integration is complete, the same normalized code will run unchanged.
| OpenStreetMap | Under the ODbL terms, storing coordinates in our database makes it a derivative database; making it publicly available then obligates us to provide even the refined results free of charge. There is no way around this, so we do not use it at all. |
|---|---|
| Wikipedia article text | Because of CC BY-SA, share-alike obligations propagate. We do not take narrative text. |
| Wikidata | The CC0 license itself was not the problem. The problem was what we found when we actually loaded and checked the data: we loaded 1,592 records, but found 0 opening hours, 0 prices, and 0 photos. Confidence in the results was structurally low, so we could not fill any cards. Regardless of license, we decided not to use sources that do not provide the facts we need (operating hours, prices, and photos). |
For partners, this means one thing: incidents where users are sent to nonexistent hotels, closed restaurants, or incorrect operating hours and then contact a partner's customer support are prevented at the structural level, not just by operating rules.
Commission is stored but never fed into the recommendation score. It is a tie-breaker only.
Rather than make promises, we quote the comments in the code repository verbatim.
packages/contracts/src/partner.ts
/** * 수수료 정보는 저장하되 RecommendationScore 에 직접 반영하지 않는다. * 동일 품질·가격·취소조건일 때만 tie-breaker 로 사용한다. (ADR-007) */ commissionType: z.enum(['PERCENT', 'REVSHARE', 'CPA', 'UNKNOWN']).optional(), commissionRate: z.number().optional(),
We store commission rates, but they are not included in score calculations. They are used to break a tie only when quality, price, and cancellation terms are exactly the same; otherwise, they do not affect ranking.
The separation above is the structure in the current code. However, the claim that ‘commission rates and placement rankings are uncorrelated’ is a post hoc validationthat can only be calculated after partnerships are approved and commission-rate data has actually accumulated. Stating that figure now would mean giving a number we have never calculated. As soon as data becomes available, we will make this validation a release gate and publish the results as they are.
For partners, this means two things. The bad news: raising your commission will not improve your ranking. The good news: products appear on our screens because they suit the trip, not because they paid more; therefore, this is not traffic that leads to worse reviews and refunds. We will discuss rates based on coverage and matching accuracy, not ranking.
Zero traffic today. We would rather send you a real number in ninety days than an invented one now.
We will not inflate the numbers. We state things as they are now.
What exists
| Arrival airport gate | NRT · HND · KIX · ITM · ICN · GMP · PUS |
|---|---|
| Separation of facts and judgments | The model response schema has no coordinate, time, or fare fields |
| Four levels of deep-link quality | EXACT_PRODUCT / PREFILLED_SEARCH / CATEGORY_LANDING / UNAVAILABLE |
| Lock against automatic replacement after booking | After BOOKED_UNVERIFIED |
| Policy documents | About · Contact · Privacy · Partnership disclosure · Editorial policy · English version |
What does not yet exist
| Monthly visitors | 0 |
|---|---|
| App downloads | 0 |
| Partner booking performance | 0 |
| Live integration with public data | The current corpus is fixture-grade |
| Mobile app launch | The web version will operate first |
We are applying with zero traffic. We believe it is better for both sides to share actual figures after three months than to give you made-up numbers. We accept all probation periods, volume limits, and interim reviews you apply to new partners, and will not object if you decide to discontinue us for falling short of your standards.
We add a sub-ID to every outbound link for the page, city, partner, and slot. Thirty days after publishing the first link, we will fill in the table below and send it to you first. There are column headings, but no values yet.
surface city slot clicks bookings — — — — —
Every number on this page can be reproduced by running the process again. If one can't be reproduced, we'll correct this page.