Skip to content

[No QA] Add Save for later odometer details to Distance Expenses help docs#89960

Merged
Julesssss merged 5 commits into
mainfrom
jules-odometerSaveForLaterDocs
May 11, 2026
Merged

[No QA] Add Save for later odometer details to Distance Expenses help docs#89960
Julesssss merged 5 commits into
mainfrom
jules-odometerSaveForLaterDocs

Conversation

@Julesssss
Copy link
Copy Markdown
Contributor

@Julesssss Julesssss commented May 7, 2026

Explanation of Change

With the launch of Odometer project phase 2, we need to add updates the Distance Expenses help site page with information about the Save for later feature for odometer expenses:

  • Adds a Save for later step to the Odometer creation flow

  • Adds two new FAQs covering saving an odometer expense for later and the single-in-progress limit

  • Design Doc plan

Follow up to #86366.

Fixed Issues

$ https://github.com/Expensify/Expensify/issues/571644

Tests

  • N/A — documentation-only change

Offline tests

N/A

QA Steps

N/A

PR Author Checklist

  • I linked the correct issue in the ### Fixed Issues section above
  • I wrote clear testing steps that cover the changes made in this PR
    • I added steps for local testing in the Tests section
    • I added steps for the expected offline behavior in the Offline steps section
    • I added steps for Staging and/or Production testing in the QA steps section
    • I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
    • I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
    • I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).
  • I included screenshots or videos for tests on all platforms
  • I ran the tests on all platforms & verified they passed on:
    • Android: Native
    • Android: mWeb Chrome
    • iOS: Native
    • iOS: mWeb Safari
    • MacOS: Chrome / Safari
  • I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
  • I followed proper code patterns (see Reviewing the code)
    • I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
    • I verified that comments were added to code that is not self explanatory
    • I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
    • I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
      • If any non-english text was added/modified, I used JaimeGPT to get English > Spanish translation. I then posted it in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:
    • I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
    • I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
    • I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
    • I verified the JSDocs style guidelines (in STYLE.md) were followed
  • If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
  • I followed the guidelines as stated in the Review Guidelines
  • I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
  • I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
  • I verified any variables that can be defined as constants (ie. in CONST.ts or at the top of the file that uses the constant) are defined as such
  • I verified that if a function's arguments changed that all usages have also been updated correctly
  • If any new file was added I verified that:
    • The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory
  • If a new CSS style is added I verified that:
    • A similar style doesn't already exist
    • The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))
  • If new assets were added or existing ones were modified, I verified that:
    • The assets are optimized and compressed (for SVG files, run npm run compress-svg)
    • The assets load correctly across all supported platforms.
  • If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
  • If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
  • If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
  • If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
  • If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:
    • I verified that all the inputs inside a form are aligned with each other.
    • I added Design label and/or tagged @Expensify/design so the design team can review the changes.
  • If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
  • I added unit tests for any new feature or bug fix in this PR to help automatically prevent regressions in this user flow.
  • If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native
Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 7, 2026

HelpDot Documentation Review

Overall Assessment

This PR adds a "Save for later" feature to the odometer-based Distance expense workflow. The changes are small and focused: one new optional step in the procedure, three new keywords, and two new FAQ entries. The additions are well-scoped and consistent with the existing article's structure and tone.

Scores Summary

  • Readability: 8/10 - The new step is clearly written and correctly marked as optional. The FAQ answers are concise and direct. Minor issue: the first FAQ answer uses an exclamation mark ("Yes!") which introduces an informal tone inconsistent with the rest of the article, and the phrasing "Enter a reading at the beginning of your trip and you can save the expense until the end" could be slightly clearer about the specific action (selecting Save for later).
  • AI Readiness: 9/10 - New keywords ("save for later", "in-progress odometer", "incomplete odometer") are well-chosen and match realistic search queries. The FAQ headings are question-based and feature-specific, aligning with retrieval optimization rules.
  • Style Compliance: 9/10 - Save for later is correctly bolded as a UI element. Step formatting follows the established pattern. FAQ headings use proper question-word format. One minor note: the second FAQ answer ("Only one in-progress odometer expense can be saved to your device at a time.") does not bold "in-progress" as a UI concept, but this is acceptable since it reads as a descriptive phrase rather than a UI label.

Key Findings

  • The new step 6 is properly integrated into the numbered sequence with correct renumbering of subsequent steps.
  • Keywords additions are relevant and support discoverability for the new save-for-later functionality.
  • Both FAQ entries follow the question-based heading convention required by governance rules.
  • The first FAQ answer ("Yes! Enter a reading at the beginning of your trip and you can save the expense until the end. Or simply take a photo and attach them both once the trip is complete.") would benefit from referencing the exact UI action (Save for later) for consistency with the procedural step and to reinforce UI-exact terminology per naming conventions.
  • The exclamation mark in "Yes!" should be removed to maintain the neutral, deterministic tone required by the authoring guidelines.

Recommendations

  1. Remove the exclamation mark from "Yes!" in the first FAQ answer -- use "Yes." to match the tone of other FAQ answers in the article.
  2. Consider referencing Save for later by name in the first FAQ answer body to reinforce UI-exact terminology (e.g., "Yes. Enter your start reading before the trip, then select Save for later. After the trip, reopen the expense to enter the end reading.").
  3. No structural or metadata issues found -- the changes are ready to merge after addressing the minor tone and terminology items above.

Files Reviewed

  • docs/articles/new-expensify/reports-and-expenses/Distance-Expenses.md — New optional step for saving odometer expenses, two new FAQ entries, and updated keywords. Changes are well-structured with minor tone refinements recommended.

Comment thread docs/articles/new-expensify/reports-and-expenses/Distance-Expenses.md Outdated
Comment thread docs/articles/new-expensify/reports-and-expenses/Distance-Expenses.md Outdated
@OSBotify
Copy link
Copy Markdown
Contributor

OSBotify commented May 7, 2026

A preview of your ExpensifyHelp changes have been deployed to https://d0b488d6.helpdot.pages.dev ⚡️

Updated articles:

@Julesssss Julesssss requested a review from a team as a code owner May 7, 2026 19:04
@melvin-bot
Copy link
Copy Markdown

melvin-bot Bot commented May 7, 2026

Concierge reviewer checklist:

  • I have verified the accuracy of the article
    • The article is within a hub that makes sense, and the navigation is correct
    • All processes, screenshots, and examples align with current product behavior.
    • All links within the doc have been verified for correct destination and functionality.
  • I have verified the readability of the article
    • The article's language is clear, concise, and free of jargon.
    • The grammar, spelling, and punctuation are correct.
    • The article contains at least one image, or that an image is not necessary
  • I have verified the formatting of the article
    • The article has consistent formatting (headings, bullet points, etc.) with other HelpDot articles and that aligns with the HelpDot formatting standards.
    • The article has proper text spacing and breaks for readability.
  • I have verified the article has the appropriate tone and style
    • The article's tone is professional, friendly, and suitable for the target audience.
    • The article's tone, terminology, and voice are consistent throughout.
  • I have verified the overall quality of the article
    • The article is not missing any information, nor does it contain redundant information.
    • The article fully addresses user needs.
  • I have verified that all requested improvements have been addressed

For more detailed instructions on completing this checklist, see How do I review a HelpDot PR as a Concierge Team member?

cc @jliexpensify

@melvin-bot melvin-bot Bot requested review from arosiclair and jliexpensify and removed request for a team May 7, 2026 19:04
@melvin-bot
Copy link
Copy Markdown

melvin-bot Bot commented May 7, 2026

@arosiclair @jliexpensify One of you needs to copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button]

@Julesssss Julesssss force-pushed the jules-odometerSaveForLaterDocs branch from d99d927 to 1f6b4bc Compare May 7, 2026 19:05
@Julesssss
Copy link
Copy Markdown
Contributor Author

@jliexpensify @stephanieelliott I applied some feedback from the AI reviewer. Please let me know how it looks.

Copy link
Copy Markdown
Contributor

@jliexpensify jliexpensify left a comment

Choose a reason for hiding this comment

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

LGTM!

5. (Optional) Select the image icon next to each reading to attach a photo of your odometer.
6. Select **Next**.
7. On the confirmation screen, review and confirm:
6. (Optional) To finish creating the expense later, select **Save for later** to keep the expense in progress on your device. After your trip, return to **➕ Create** > **Track distance** > **Odometer** to resume the saved expense and enter the end reading.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Step clarity / sequential flow: This step combines two distinct actions — saving the expense now and resuming it later after the trip. Per the step formatting standard (Section 5), steps must be sequential and aligned with the actual UI flow. The "After your trip, return to..." portion describes a separate future action that breaks the sequential flow of the current procedure.

Consider trimming this step to the immediate action only:

Suggested change
6. (Optional) To finish creating the expense later, select **Save for later** to keep the expense in progress on your device. After your trip, return to **➕ Create** > **Track distance** > **Odometer** to resume the saved expense and enter the end reading.
6. (Optional) To finish creating the expense later, select **Save for later** to keep the expense in progress on your device.

The resumption instructions are already covered in the FAQ ("Can I save an odometer expense for later?"), so they don't need to be duplicated here.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 9, 2026

HelpDot Documentation Review Summary

Overall Score: 9/10

Category Scores

Category Score Notes
Metadata & Keywords 10/10 Three relevant keywords added (save for later, in-progress odometer, incomplete odometer) that reflect realistic search queries. No issues with existing YAML fields.
Heading Compliance 10/10 Both new FAQ headings start with question words ("Can I..."), which satisfies the task-based heading requirement. # FAQ exemption is respected.
Step Formatting 9/10 New step 6 is clear, action-oriented, and fits logically into the existing sequence. Step renumbering is correct. One minor note: step 6 packs two actions (selecting Save for later and the return path) into a single step, which is dense but acceptable since it is marked optional.
UI Terminology & Naming 9/10 Save for later is bolded correctly. Navigation path uses the established > convention consistent with the rest of the article. Minor observation: confirm that "Save for later" matches the exact UI button text (including capitalization).
Cross-linking 10/10 No new cross-links introduced. Existing cross-link structure is unaffected. No links placed inside numbered steps.
AI Retrieval Optimization 9/10 New FAQ entries use full feature names and are phrased as natural questions users would ask. The internalScope field was not updated to mention the save-for-later capability, which would marginally improve retrieval scoping.

Strengths

  • Clean, minimal change that adds a single new capability to an existing well-structured article.
  • The new optional step is placed at the correct point in the procedural flow (after entering readings, before finalizing).
  • FAQ entries are concise and directly answer the questions posed.
  • Keywords added are realistic search terms that users would actually type.
  • Step renumbering is handled correctly throughout.

Issues Found

  • The internalScope field could be updated to mention the save-for-later / in-progress odometer workflow, since it now covers this capability. This is a minor gap -- the current scope statement ("Covers creating Distance expenses using GPS tracking, map-based routes, manual entry, and odometer readings") is broadly accurate but does not explicitly call out the new save-for-later behavior.
  • Step 6 contains both the action ("select Save for later") and the resumption path ("return to ... to resume"), making it information-dense for a single step. Consider splitting the resumption instructions into a separate sub-bullet for scannability, e.g.:
    6. (Optional) To finish creating the expense later, select **Save for later** to keep the expense in progress on your device.
       - After your trip, return to **+ Create** > **Track distance** > **Odometer** to resume the saved expense and enter the end reading.
    
  • The FAQ answer for "Can I have multiple incomplete odometer expenses at the same time?" does not begin with "Yes" or "No", which breaks the pattern established by every other FAQ answer in this article. Starting with "No." before the explanation would improve consistency.

Recommendations

  1. Add "No." prefix to the last FAQ answer: "No. Only one in-progress odometer expense can be saved to your device at a time."
  2. Consider splitting step 6 into action + sub-bullet for the resumption path, improving scannability.
  3. Optionally update internalScope to mention save-for-later capability for better AI retrieval precision.

Files Reviewed

  • docs/articles/new-expensify/reports-and-expenses/Distance-Expenses.md -- 13 lines added, 4 removed. Adds save-for-later odometer functionality documentation (new step, new keywords, two new FAQ entries).

Generated with Claude Code

5. (Optional) Select the image icon next to each reading to attach a photo of your odometer.
6. Select **Next**.
7. On the confirmation screen, review and confirm:
6. (Optional) To finish creating the expense later, select **Save for later** to keep the expense in progress on your device. After your trip, return to **➕ Create** > **Track distance** > **Odometer** to resume the saved expense and enter the end reading.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Readability / step formatting: This step combines two distinct actions across different timeframes (saving now, resuming later) into a single numbered step. Per the authoring guidelines, steps must be "sequential, clear, action-oriented, aligned with actual UI flow." Consider splitting this into a focused instruction for the current action only:

Suggested change
6. (Optional) To finish creating the expense later, select **Save for later** to keep the expense in progress on your device. After your trip, return to **➕ Create** > **Track distance** > **Odometer** to resume the saved expense and enter the end reading.
6. (Optional) To finish creating the expense later, select **Save for later** to keep the expense in progress on your device.

The resumption instructions ("After your trip, return to...") are already covered in the FAQ entry below and don't belong in the procedural step sequence, which should describe the current UI flow in order.


## Can I have multiple incomplete odometer expenses at the same time?

Only one in-progress odometer expense can be saved to your device at a time.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Readability: The question asks "Can I have multiple incomplete odometer expenses at the same time?" but the answer does not begin with a direct "Yes" or "No." Other FAQ answers in this article consistently lead with "Yes" or "No" before elaborating. Consider starting with "No." for consistency and clarity:

Suggested change
Only one in-progress odometer expense can be saved to your device at a time.
No. Only one in-progress odometer expense can be saved to your device at a time.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 9, 2026

HelpDot Documentation Review

Overall Assessment

This PR adds "Save for later" functionality documentation to the Distance Expenses article. The changes are well-scoped: three new keywords in the YAML frontmatter, a new optional step in the odometer workflow, and two new FAQ entries. The additions are clean, consistent with the existing article style, and align well with governance standards.

Scores Summary

  • Readability: 9/10 - The new step and FAQ entries are clear, concise, and scannable. Step 6 is well-structured as an optional action with a follow-up instruction. The FAQ answers are direct and to the point.
  • AI Readiness: 9/10 - New keywords ("save for later", "in-progress odometer", "incomplete odometer") match realistic search queries. The FAQ headings use question-word format, which supports retrieval. The internalScope field was not updated to mention the new "save for later" workflow, which is a minor gap.
  • Style Compliance: 9/10 - Save for later is correctly bolded as a UI element. Navigation path formatting (using > separators with bolded create button) is consistent with the rest of the article. FAQ structure follows the governance pattern correctly.

Key Findings

  • The new step 6 correctly uses "(Optional)" prefix and Save for later bold formatting, matching button naming standards.
  • The navigation path in step 6 and the FAQ answer are identical, which provides good consistency but also means any future path change must be updated in two places.
  • The two new FAQ entries follow the established pattern: question-word headings at ## level, concise direct answers.
  • The keywords added are realistic search phrases that users would actually type, satisfying the metadata requirements.
  • Minor observation: The internalScope metadata was not updated to mention the "save for later" or "in-progress odometer" capability. Consider appending something like "including saving odometer expenses for later" to the internalScope value for completeness.

Recommendations

  1. Consider updating internalScope - The internalScope field could be expanded to mention the "save for later" workflow, since it now covers more than just creating odometer expenses. This helps AI retrieval systems understand the full scope of the article.
  2. No structural, formatting, or compliance issues were found. The changes are ready to merge from a documentation quality perspective.

Files Reviewed

  • docs/articles/new-expensify/reports-and-expenses/Distance-Expenses.md - Keywords, step insertion, and FAQ additions all comply with governance standards. Clean, well-integrated changes.

Review performed against docs/HELPSITE_NAMING_CONVENTIONS.md, docs/HELP_AUTHORING_GUIDELINES.md, and docs/TEMPLATE.md governance files.

@Julesssss Julesssss merged commit 0ff9a3f into main May 11, 2026
29 checks passed
@Julesssss Julesssss deleted the jules-odometerSaveForLaterDocs branch May 11, 2026 17:30
@OSBotify
Copy link
Copy Markdown
Contributor

🚀 Deployed to staging by https://github.com/Julesssss in version: 9.3.70-0 🚀

platform result
🕸 web 🕸 success ✅
🤖 android 🤖 failure ❌
🍎 iOS 🍎 success ✅

Bundle Size Analysis (Sentry):

@OSBotify
Copy link
Copy Markdown
Contributor

🚀 Deployed to staging by https://github.com/Julesssss in version: 9.3.72-0 🚀

platform result
🕸 web 🕸 success ✅
🤖 android 🤖 success ✅
🍎 iOS 🍎 success ✅

Bundle Size Analysis (Sentry):

@OSBotify
Copy link
Copy Markdown
Contributor

🚀 Deployed to production by https://github.com/lakchote in version: 9.3.72-1 🚀

platform result
🕸 web 🕸 success ✅
🤖 android 🤖 success ✅
🍎 iOS 🍎 success ✅

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants