Skip to content

[Odometer] [Tracking] Add Odometer mileage to NewDot #71841

@Julesssss

Description

@Julesssss

DESIGN DOC ➡️

Slack Room: #migrate

Implementation issues:

Main Flow Phase 1: Add Odometer expense type

Bugs/Improvements:

Main Flow Release 2: Add 'Save for later' feature

  • Add Save for later button to the Odometer expense page
  • Add ability for Odometer readings and image data to be saved to device storage
  • Modify Odometer expense tab to detect and retrieve draft expense data
  • Create test cases and update Help Doc pages regarding the Save for later feature
  • Announce the feature in the next product announcement video

Bugs/Improvements:

Related to Odometer Not blocking

Related:

Proposal

Add Odometer mileage expenses to NewDot

Background

Expensify is completing the migration from Classic to NewDot. Feature parity is essential for retaining users during this migration, and odometer tracking is one of the few remaining blockers to achieving this. Manual odometer tracking is necessary for users who prefer explicit control over mileage entries rather than automatic GPS tracking, particularly for those who drive frequently for work and need precise records for tax purposes and reimbursement.

Problem

When users track distance expenses via odometer readings in Classic, if they are migrated to NewDot, then they must either manually calculate total distance (losing odometer proof and audit trail) or abandon NewDot to stay in classic or switch to a competing application.

Solution

Introduce odometer mileage as a distance tracking method in NewDot with feature parity to Classic. Users will be able to:

  • Select the new Odometer tab in the Track Distance page
  • Manually enter start and end mileage readings
  • Attach photos of each reading
  • View calculated odometer readings and submit as a distance expense

For compatibility and parity, the feature will use the same NVP storage approach (odometerStart, odometerEnd) and validation logic (preventing negative distances, requiring both readings for submission) as Classic.

Tasks

  • Post Proposal (full Problem/Solution statement) in #whatsnext
  • Wait at least one full business day, and until the post has a majority (2/3) of positive reactions (👍)
  • Paste Proposal in the space above with a link to the Slack thread
  • Email strategy@expensify.com and paste in the Proposal
  • Host a pre-design meeting (example) in an appropriate slack channel to discuss any necessary details in public before filling out the High-level of proposed solution section.
  • Fill out the High-level overview of the problem, Timeline, Terminology, and High-level of proposed solution sections of the Design Doc
  • Email strategy@expensify.com (continue the same email chain as before - your last message should be the WN Proposal) with the link to your Design Doc containing your high-level problem and solution
  • Add the DesignDocReview label to get the High-level overview of the problem and High-level of proposed solution section reviewed
  • Respond to any questions or concerns and bring up blockers in Slack to get a consensus if necessary
  • Confirm that the doc has the minimum necessary number of reviews before proceeding
  • Host another pre-design meeting in the appropriate slack channel to ask for engineering feedback on the technical solution.
  • Fill out the Detailed implementation of the solution and related sections.
  • Re-add the DesignDocReview label to this issue
  • Respond to any questions or concerns and bring up blockers in Slack to get consensus if necessary
  • Confirm that the doc has the minimum necessary number of reviews before proceeding
  • Email strategy@expensify.com one last time to let them know the Design Doc is moving into the implementation phase
  • Implement the changes
  • Add regression tests so that QA can test your feature with every deploy (instructions)
  • Confirm any related help site updates have been published
  • Send out a follow up email to strategy@expensify.com once everything has been implemented and do a Project Wrap-Up retrospective that provides:
    • Summary of what we accomplished with this project
    • What went well?
    • What could we have done better?
    • What did we learn?

Metadata

Metadata

Type

No type

Projects

Status

Tracking

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions