Calculate mileage reimbursement
calculate_mileage_reimbursementUse this when the user asks for a mileage reimbursement calculator, mileage deduction, or the IRS mileage rate 2026 applied to a number of miles ("how much can I deduct for 4,200 business miles", "my employer pays 0.70 a mile how much do I get", "odometer 41230 to 46890 how many business miles"). Applies the IRS standard mileage rate for the date driven (2025: 70 cents; Jan-Jun 2026: 72.5 cents; Jul-Dec 2026: 76 cents per business mile; medical/moving 21, 20.5, 23.5 cents; charity 14 cents), splits miles across the July 1, 2026 rate change, compares a custom employer rate with the IRS rate, and turns odometer readings into miles. Does not build a trip-by-trip log (use generate_mileage_log), look up distances, or give tax advice.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | When the miles were driven, YYYY-MM-DD or YYYY-MM, e.g. "2026-08-15" or "2026-03". Picks the IRS rate for that date. Default: today. | |
| miles | No | Miles to reimburse or deduct, e.g. 4200. Leave out when odometer_start and odometer_end are given. | |
| category | No | business (default), medical, moving (Armed Forces only) or charity. | |
| segments | No | Miles split by date when they straddle a rate change, e.g. [{"miles":1800,"date":"2026-05"},{"miles":2400,"date":"2026-09"}]. | |
| odometer_end | No | Odometer reading at the end, e.g. 46890. | |
| odometer_start | No | Odometer reading at the start, e.g. 41230. | |
| personal_miles | No | Personal or commuting miles inside the odometer range to subtract, e.g. 900. | |
| custom_rate_per_mile | No | Employer or contract rate in US dollars per mile, e.g. 0.70 or 0.60. The IRS amount is shown next to it. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| lines | Yes | ||
| miles | Yes | ||
| notes | Yes | ||
| amount | Yes | ||
| custom | Yes | ||
| category | Yes | ||
| odometer | Yes | ||
| irs_amount | Yes | ||
| rate_basis | Yes | ||
| amount_text | Yes | ||
| alternatives | Yes |