Android · Open source · Offline-first

Track fuel and EV charges without the noise.

Log fill-ups and charges, measure mileage, predict the next stop, and see cost trends. Small, offline-first, data stays on your device.

FuelLog fuel log screen showing average mileage, next fill-up prediction, and fill history
Fuel log Tap to zoom
Jetpack Compose Room DB Offline-first ~1.2 MB APK MIT License

Features

Everything in the app is built around daily logging: record what you bought, see how far it took you, and know when you should stop again.

  • Multiple vehicles Cars, bikes, buses, trucks, jeeps, scooters — each with its own history, units, and capacity.
  • Fuel and EV Petrol, diesel, CNG, or electric. EV uses kWh, battery capacity, and charge wording.
  • Fill-up logging Odometer, volume, cost, date, full-tank flag, optional pump name.
  • Auto cost calc Any two of volume, rate, cost — the third is computed from your receipt.
  • Mileage Efficiency per fill from the previous odometer. Newest fill stays empty until that tank finishes.
  • Insights Average, best, worst mileage, price trend, costs, monthly summary.
  • Next fill prediction Recency-weighted mileage + tank state. Odometer check-ins shorten remaining range.
  • Reserve threshold Prediction targets when you hit reserve, not theoretical empty.
  • Capacity learning Median of full-tank pairs suggests tank size. Apply manually — never auto-overwrites.
  • Per-pump stats Compare efficiency after fills at each station.
  • Trip cost Planned distance → energy and cost from recent mileage and last rate.
  • Nearby pumps OpenStreetMap stations within 7 km. Go opens your maps app. No map SDK.
  • Units and currency km/mi, L/gal/kWh. Unit changes convert history. Global currency.
  • Odometer check-ins Log distance without buying fuel so predictions stay honest.
  • Backup and CSV Transactional JSON restore (failed import keeps data). CSV for spreadsheets.
  • Offline-first Room on device, Compose UI, no account required for logging.

Screens

Real screenshots from the app. Click any card for the full screen.

FuelLog vehicles list with Dio scooter and Santro Magna car
Vehicles list Click to enlarge
Dio fuel log with average mileage, next fill-up prediction, and fill history
Fuel log and prediction Click to enlarge
Add Fuel Entry dialog with odometer, full tank, pump, and auto cost modes
Add fuel entry Click to enlarge
Odometer Logs list with dated distance check-ins
Odometer logs Click to enlarge
Log Odometer Reading dialog without a fuel purchase
Log odometer reading Click to enlarge
Insights monthly summary and mileage trend chart
Monthly summary and trend Click to enlarge
Insights average mileage, fuel, cost, distance, and fuel price trend
Insights statistics Click to enlarge
Mileage by fuel pump and tank capacity suggestion
Pump stats and tank learning Click to enlarge
Goma Ganesh pump detail with mileage stats, trend, and fill-up history
Fuel pump detail page Click to enlarge
Nearby fuel pumps list from OpenStreetMap with Go buttons
Nearby fuel pumps Click to enlarge
Trip cost dialog estimating fuel and cost for planned distance
Trip cost calculator Click to enlarge
Add Vehicle form with vehicle type, fuel energy, units, and capacity
Add vehicle and EV options Click to enlarge

How the algorithms work

Calculators are pure functions in the codebase. They run on device data only; nothing is sent to a server for mileage or prediction.

Per-fill mileage

  1. Sort fuel entries for a vehicle by odometer.
  2. For each pair of consecutive entries, take the odometer difference.
  3. Divide that distance by the volume or energy added at the later fill.
  4. Show that value on the earlier fill; the newest fill has no finished segment yet.
mileage = (odometer[i] − odometer[i−1]) / volume[i]

Recency-weighted efficiency

  1. Build the list of valid adjacent mileage pairs.
  2. Apply an exponentially weighted moving average (EWMA).
  3. Recent tanks influence the average more than old ones.
EWMA = α · mileage[t] + (1 − α) · EWMA[t−1]
α = 2 / (window + 1), default window = 5

Next fill prediction

  1. Estimate fuel or energy in the tank after the last fill.
  2. Full fill sets level to capacity; partial fills add volume up to capacity.
  3. Subtract reserve once so prediction targets your reserve zone.
  4. Subtract distance driven since the last fill using the latest odometer point.
  5. Projected date uses average distance per day over the last 30 days of points.
usable = capacity − reserve
remaining = usable × EWMA_mileage − distance_since_fill

Tank capacity learning

  1. Take consecutive full-tank fills.
  2. Volume added at the second fill approximates how much was used.
  3. Use the median of those volumes as the suggestion.
  4. Confidence rises with more full-tank pairs; apply manually if you want.
capacity ≈ median(volume added between full fills)

Trip cost

  1. Read recent mileage (EWMA) and the last rate you paid.
  2. Energy needed is planned distance divided by mileage.
  3. Cost is energy times rate, rounded to two decimal places.
energy = distance / mileage
cost = round(energy × rate, 2)

Nearby pumps

  1. Request device location permission and a single location fix.
  2. Query OpenStreetMap Overpass for amenity=fuel within 7 km.
  3. Sort by haversine distance.
  4. Open the system maps app for navigation; FuelLog does not embed a map engine.
Overpass around:7000 · sort by haversine metres

Stack

UI

Jetpack Compose and Material 3

Data

Room with explicit schema migrations

Logic

MVVM with Kotlin Flows and pure calculators

Maps data

OpenStreetMap Overpass HTTP only

Get FuelLog

Download the latest APK, or install via Obtainium from GitHub releases.

Direct download

Newest GitHub release asset app-release.apk.

Download APK https://github.com/ChandanShakya/FuelLog/releases/latest/download/app-release.apk

Obtainium

On your phone, tap Open Obtainium (or open the link below). If the browser asks, open it with Obtainium. Manual fallback: Obtainium → Add app → paste the source URL.

Deep link (preferred):

obtainium://add?url=https%3A%2F%2Fgithub.com%2FChandanShakya%2FFuelLog

Manual source URL for Obtainium → Add app: https://github.com/ChandanShakya/FuelLog