78309: Added top Spenders default report#78410
Conversation
|
Hey, I noticed you changed If you want to automatically generate translations for other locales, an Expensify employee will have to:
Alternatively, if you are an external contributor, you can run the translation script locally with your own OpenAI API key. To learn more, try running: npx ts-node ./scripts/generateTranslations.ts --helpTypically, you'd want to translate only what you changed by running |
Codecov Report✅ Changes either increased or maintained existing code coverage, great job!
|
|
@mananjadhav Please 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] |
|
@mananjadhav have you had a chance to do an initial review? |
|
🚧 @puneetlath has triggered a test Expensify/App build. You can view the workflow run here. |
This comment has been minimized.
This comment has been minimized.
|
I was out sick, I'll start reviewng the PR . |
mananjadhav
left a comment
There was a problem hiding this comment.
Left small comments.
|
@abbasifaizan70 Can you confirm if it is working for all the platforms? I can see the screencasts are missing for all except web. |
|
@mananjadhav added screenshots for other platforms and resolved feedback as well. Thanks |
|
@abbasifaizan70 Responded to the comments. |
|
@mananjadhav solved feedback. |
|
@abbasifaizan70 I think you missed my comment here and here |
@mananjadhav Really sorry, I missed your comment earlier—I’ve replied in the thread now. Thanks! |
|
@abbasifaizan70 Thanks for the changes. Checking. But quick things:
I think it'll be best to add videos instead for all the platforms and not just screenshots. |
Sure, let me update all with Vidoes. Thanks |
|
Right, the Top Spenders report should remain sorted by the groupTotal when you change the other filter. 👍 |
|
@puneetlath @trjExpensify Update the short-by consistency issue. Please have a look. Thanks for your feedback. Screen.Recording.2026-01-07.at.2.28.34.PM.mov |
|
Video looks good to me 👍 |
|
@mananjadhav can you give the PR a review? |
|
I reviewed the code. I am currently testing it. Basic test on web looks okay. I'll finish the checklist by IST morning. |
|
Great, thanks! |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppandroid-top-spenders.movAndroid: mWeb Chromemweb-chrome-top-spenders.moviOS: HybridAppios-top-spenders.moviOS: mWeb Safarimweb-safari-top-spenders.mov |
|
Nice job! |
|
🚀 Deployed to staging by https://github.com/puneetlath in version: 9.2.96-1 🚀
|
|
@abbasifaizan70 Should be with unreported expenses? Think about unreported expenses not being displayed on “Top Spender” is that only admin/approver of a workspace is able to see that section and that section only appears with workspace creation |
|
@lanitochka17 No, unreported expenses shouldn't show in "Top Spenders" - and that's intentional. |
|
@abbasifaizan70 thanks for your clarifying |
|
🚀 Deployed to production by https://github.com/arosiclair in version: 9.2.96-6 🚀
|
|
🚀 Deployed to production by https://github.com/arosiclair in version: 9.2.96-6 🚀
|
|
🚀 Deployed to production by https://github.com/arosiclair in version: 9.2.96-6 🚀
|

Explanation of Change
This PR will add a new default report called Top Spenders to the Reports page.
Fixed Issues
$ #78309
PROPOSAL: #78309 (comment)
Tests
Test 1: Verify Role-Based Visibility and Section Display
Test 2: Verify Top Spenders Query Execution and Data Display
Test 3: Verify Empty State and Cross-Platform Compatibility
Offline tests
same as tests.
QA Steps
same as tests.
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectioncanBeMissingparam foruseOnyxtoggleReportand notonIconClick)src/languages/*files and using the translation methodSTYLE.md) were followedAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))npm run compress-svg)Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.ScrollViewcomponent to make it scrollable when more elements are added to the page.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Android: Native
Screen.Recording.2026-01-01.at.7.41.38.PM.mov
Android: mWeb Chrome
Screen.Recording.2026-01-01.at.7.36.30.PM.mov
Screen.Recording.2026-01-01.at.7.37.25.PM.mov
iOS: Native
Screen.Recording.2026-01-01.at.7.26.24.PM.mov
Screen.Recording.2026-01-01.at.7.27.14.PM.mov
iOS: mWeb Safari
Screen.Recording.2026-01-01.at.6.59.48.PM.mov
Screen.Recording.2026-01-01.at.6.59.07.PM.mov
MacOS: Chrome / Safari
Test Case # 01
Screen.Recording.2026-01-05.at.4.15.10.PM.mov
Test Case # 02
Test Case # 03