{
  "title": "Fuel economy log",
  "human_url": "https://happytails.ai/en/calculators/fuel-economy-log/",
  "agent_url": "https://happytails.ai/agents/en/calculators/fuel-economy-log/",
  "language": "en",
  "markdown_url": "https://happytails.ai/en/calculators/fuel-economy-log.md",
  "content": "Fuel economy log\nCalculate consumption across full and partial fill-ups, with complete intervals and pending fills kept separate.\nHow can we improve this tool?\nReport a problem or share an idea.\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\nHow to use Fuel economy log\nChoose odometer and fuel units, then enter fill-up CSV with dates, fuel amounts, cost and fullTank true or false.\nMark comparable full tanks accurately and keep all partial fills in date and odometer order.\nReview completed-interval consumption and pending fills. Download the full log to keep your records.\nUseful next steps\nParking cost calculator\nScooter charging calculator\nFuel grade cost comparison\nHandle partial tanks without guessing consumption\nThe first full tank establishes a baseline. Every later full tank closes an interval that includes all intervening partial fills and the closing fill. Earlier purchases and the baseline fill remain in the export but are excluded from interval fuel totals. Trailing partials remain pending.\nKeep a complete, consistent log\nFull tanks need comparable fill levels. Missing fill-ups, odometer rollover or inconsistent tank levels invalidate the model. Overall L/100 km uses total completed-interval litres divided by total completed distance, multiplied by 100. Download your data to keep it: this tool does not automatically persist records or store receipts.",
  "content_format": "text/plain",
  "visibility": "public",
  "links": [
    {
      "name": "Parking cost calculator",
      "url": "https://happytails.ai/en/calculators/parking-cost-calculator/"
    },
    {
      "name": "Scooter charging calculator",
      "url": "https://happytails.ai/en/calculators/scooter-charging-calculator/"
    },
    {
      "name": "Fuel grade cost comparison",
      "url": "https://happytails.ai/en/calculators/fuel-grade-cost-comparison/"
    }
  ],
  "tool": {
    "id": "fuel-economy-log",
    "category": "calculators",
    "built": true,
    "requirements": "The first full tank establishes the baseline. Its purchase and earlier records are exported but excluded from consumption. Every later full tank closes an interval that includes all intervening partial fills and the closing fill. Trailing partials remain pending. Full-tank levels must be comparable; missing fills and odometer rollover/replacement invalidate the model. Reports normalize to km and litres and calculate weighted complete-interval consumption. Costs are purchases, not the value of fuel consumed. Download to keep your log: this tool does not automatically save data between sessions or store receipts. Processing stays on your device in a cancellable worker with a 10-second timeout. Maximum 500000 combined input characters and 2000 records, with 30 tariffs or grades, 30 tiers per tariff and 100 depreciation years. Guided decimals allow up to six places without thousands separators. Full JSON and JSON Pointer CSV include all source inputs, units, assumptions and results; each file is capped at 2000000 characters and CSV at 200000 leaf records. All tariff totals precede the first 200 detail rows in the parking preview; other tables preview 200 rows. Software bounds are not vehicle capability claims. Results use floating-point arithmetic.",
    "implementation": {
      "fields": [
        {
          "key": "distanceUnit",
          "label": "Odometer distance unit",
          "value": "km",
          "type": "select",
          "values": [
            "km",
            "mi"
          ],
          "labels": {
            "km": "Kilometres",
            "mi": "Miles"
          }
        },
        {
          "key": "fuelUnit",
          "label": "Fuel volume unit",
          "value": "L",
          "type": "select",
          "values": [
            "L",
            "US gal",
            "Imp gal"
          ],
          "labels": {
            "L": "Litres",
            "US gal": "US gallons",
            "Imp gal": "Imperial gallons"
          }
        },
        {
          "key": "currency",
          "label": "Currency label",
          "value": "EUR",
          "type": "text",
          "maxLength": 3,
          "help": "Three uppercase letters. All entered prices use this currency."
        },
        {
          "key": "recordsCsv",
          "label": "Fill-up records CSV",
          "value": "date,odometer,fuel,cost,fullTank,note\n2026-01-01,100,40,60,true,Baseline full tank\n2026-01-03,300,15,24,false,Partial fill\n2026-01-04,600,25,40,true,Closes interval\n2026-01-05,700,10,17,false,Pending partial fill",
          "type": "textarea",
          "maxLength": 500000,
          "help": "Headers: date,odometer,fuel,cost,fullTank,note. Dates: YYYY-MM-DD in nondecreasing order. Odometer values cannot decrease. fullTank is exactly true or false. Fuel must be greater than zero. Leave note empty if unused. Quote cells with commas or newlines; escape a quote as two quotes."
        }
      ],
      "input": false,
      "presentation": "metrics",
      "note": "The first full tank establishes the baseline. Its purchase and earlier records are exported but excluded from consumption. Every later full tank closes an interval that includes all intervening partial fills and the closing fill. Trailing partials remain pending. Full-tank levels must be comparable; missing fills and odometer rollover/replacement invalidate the model. Reports normalize to km and litres and calculate weighted complete-interval consumption. Costs are purchases, not the value of fuel consumed. Download to keep your log: this tool does not automatically save data between sessions or store receipts. Runs locally without uploads. Limit: 500000 combined input characters, 2000 records, 30 tariffs or grades, 30 tiers per tariff and 100 depreciation years. Complete JSON and JSON Pointer CSV exports are each capped at 2000000 characters and CSV at 200000 leaf records. Preview shows 200 report rows. Calculations stop after 10 seconds. Copy result copies the report text; downloads include source inputs, units, assumptions and complete results.",
      "inputMaxLength": 500000,
      "inputErrorCode": "VEHICLE_INPUT",
      "example": {
        "input": "",
        "options": {
          "distanceUnit": "km",
          "fuelUnit": "L",
          "currency": "EUR",
          "recordsCsv": "date,odometer,fuel,cost,fullTank,note\n2026-01-01,100,40,60,true,Baseline full tank\n2026-01-03,300,15,24,false,Partial fill\n2026-01-04,600,25,40,true,Closes interval\n2026-01-05,700,10,17,false,Pending partial fill"
        }
      },
      "experience": {
        "automatic": false,
        "single": false,
        "inputMaxLength": 500000,
        "inputMode": "text",
        "label": "Your text",
        "placeholder": "Type or paste your input…",
        "help": "Up to 500,000 characters. Review the settings before running.",
        "action": null
      },
      "mode": "explicit",
      "interactive": false
    },
    "execution": "Browser interface",
    "api": null,
    "browser_agent": {
      "supported": true,
      "name": "run_current_tool",
      "discovery": "WebMCP on the human page in a supporting browser",
      "verification": "See audit/API-AUDIT.md; availability is not verification"
    }
  },
  "markdown": "# Fuel economy log\n\n- Human page: https://happytails.ai/en/calculators/fuel-economy-log/\n- Markdown: https://happytails.ai/en/calculators/fuel-economy-log.md\n- Structured JSON: https://happytails.ai/agents/en/calculators/fuel-economy-log/index.json\n- Visibility: public\n\n## Tool capabilities\n\n| Property | Value |\n| --- | --- |\n| Tool ID | `fuel-economy-log` |\n| Category | calculators |\n| Implementation | Registered implementation. Registration alone is not a production-quality guarantee. |\n| Browser execution | Use the visible action or interactive controls. |\n| Browser processing | Browser; see tool notes for network behavior. |\n| HTTP API | Not callable through HTTP. |\n| Browser-agent interface | run_current_tool |\n\n### Implementation notes\n\nThe first full tank establishes the baseline. Its purchase and earlier records are exported but excluded from consumption. Every later full tank closes an interval that includes all intervening partial fills and the closing fill. Trailing partials remain pending. Full-tank levels must be comparable; missing fills and odometer rollover/replacement invalidate the model. Reports normalize to km and litres and calculate weighted complete-interval consumption. Costs are purchases, not the value of fuel consumed. Download to keep your log: this tool does not automatically save data between sessions or store receipts. Runs locally without uploads. Limit: 500000 combined input characters, 2000 records, 30 tariffs or grades, 30 tiers per tariff and 100 depreciation years. Complete JSON and JSON Pointer CSV exports are each capped at 2000000 characters and CSV at 200000 leaf records. Preview shows 200 report rows. Calculations stop after 10 seconds. Copy result copies the report text; downloads include source inputs, units, assumptions and complete results.\n\n### Inputs and settings\n\nNo free-text input is required. Use the file inputs and/or settings below.\n\n| Setting | Meaning | Control type | Default | Constraints |\n| --- | --- | --- | --- | --- |\n| `distanceUnit` | Odometer distance unit | select | \"km\" | Allowed: km, mi |\n| `fuelUnit` | Fuel volume unit | select | \"L\" | Allowed: L, US gal, Imp gal |\n| `currency` | Currency label | text | \"EUR\" |  |\n| `recordsCsv` | Fill-up records CSV | textarea | \"date,odometer,fuel,cost,fullTank,note\\n2026-01-01,100,40,60,true,Baseline full tank\\n2026-01-03,300,15,24,false,Partial fill\\n2026-01-04,600,25,40,true,Closes interval\\n2026-01-05,700,10,17,false,Pending partial fill\" |  |\n\n### Browser-agent workflow\n\n1. Open the human page in a browser that supports WebMCP.\n2. Discover the interface exposed by that page; use its actual schema.\n3. Select files on the page first when the tool requires files.\n4. Call `run_current_tool` with valid input and settings.\n5. Inspect the returned result or error and the displayed output. Retrieve files from the displayed download links.\n\nCalls do not automatically copy or download results. Browser permissions still apply. Interface availability alone is not proof of successful execution.\n\n### Planning specification\n\nThe first full tank establishes the baseline. Its purchase and earlier records are exported but excluded from consumption. Every later full tank closes an interval that includes all intervening partial fills and the closing fill. Trailing partials remain pending. Full-tank levels must be comparable; missing fills and odometer rollover/replacement invalidate the model. Reports normalize to km and litres and calculate weighted complete-interval consumption. Costs are purchases, not the value of fuel consumed. Download to keep your log: this tool does not automatically save data between sessions or store receipts. Processing stays on your device in a cancellable worker with a 10-second timeout. Maximum 500000 combined input characters and 2000 records, with 30 tariffs or grades, 30 tiers per tariff and 100 depreciation years. Guided decimals allow up to six places without thousands separators. Full JSON and JSON Pointer CSV include all source inputs, units, assumptions and results; each file is capped at 2000000 characters and CSV at 200000 leaf records. All tariff totals precede the first 200 detail rows in the parking preview; other tables preview 200 rows. Software bounds are not vehicle capability claims. Results use floating-point arithmetic.\n\nThis describes intended requirements. Use the implementation notes, interface schema and observed output to determine current support.\n\n### Complete machine-readable capability record\n\n```json\n{\n  \"id\": \"fuel-economy-log\",\n  \"category\": \"calculators\",\n  \"built\": true,\n  \"requirements\": \"The first full tank establishes the baseline. Its purchase and earlier records are exported but excluded from consumption. Every later full tank closes an interval that includes all intervening partial fills and the closing fill. Trailing partials remain pending. Full-tank levels must be comparable; missing fills and odometer rollover/replacement invalidate the model. Reports normalize to km and litres and calculate weighted complete-interval consumption. Costs are purchases, not the value of fuel consumed. Download to keep your log: this tool does not automatically save data between sessions or store receipts. Processing stays on your device in a cancellable worker with a 10-second timeout. Maximum 500000 combined input characters and 2000 records, with 30 tariffs or grades, 30 tiers per tariff and 100 depreciation years. Guided decimals allow up to six places without thousands separators. Full JSON and JSON Pointer CSV include all source inputs, units, assumptions and results; each file is capped at 2000000 characters and CSV at 200000 leaf records. All tariff totals precede the first 200 detail rows in the parking preview; other tables preview 200 rows. Software bounds are not vehicle capability claims. Results use floating-point arithmetic.\",\n  \"implementation\": {\n    \"fields\": [\n      {\n        \"key\": \"distanceUnit\",\n        \"label\": \"Odometer distance unit\",\n        \"value\": \"km\",\n        \"type\": \"select\",\n        \"values\": [\n          \"km\",\n          \"mi\"\n        ],\n        \"labels\": {\n          \"km\": \"Kilometres\",\n          \"mi\": \"Miles\"\n        }\n      },\n      {\n        \"key\": \"fuelUnit\",\n        \"label\": \"Fuel volume unit\",\n        \"value\": \"L\",\n        \"type\": \"select\",\n        \"values\": [\n          \"L\",\n          \"US gal\",\n          \"Imp gal\"\n        ],\n        \"labels\": {\n          \"L\": \"Litres\",\n          \"US gal\": \"US gallons\",\n          \"Imp gal\": \"Imperial gallons\"\n        }\n      },\n      {\n        \"key\": \"currency\",\n        \"label\": \"Currency label\",\n        \"value\": \"EUR\",\n        \"type\": \"text\",\n        \"maxLength\": 3,\n        \"help\": \"Three uppercase letters. All entered prices use this currency.\"\n      },\n      {\n        \"key\": \"recordsCsv\",\n        \"label\": \"Fill-up records CSV\",\n        \"value\": \"date,odometer,fuel,cost,fullTank,note\\n2026-01-01,100,40,60,true,Baseline full tank\\n2026-01-03,300,15,24,false,Partial fill\\n2026-01-04,600,25,40,true,Closes interval\\n2026-01-05,700,10,17,false,Pending partial fill\",\n        \"type\": \"textarea\",\n        \"maxLength\": 500000,\n        \"help\": \"Headers: date,odometer,fuel,cost,fullTank,note. Dates: YYYY-MM-DD in nondecreasing order. Odometer values cannot decrease. fullTank is exactly true or false. Fuel must be greater than zero. Leave note empty if unused. Quote cells with commas or newlines; escape a quote as two quotes.\"\n      }\n    ],\n    \"input\": false,\n    \"presentation\": \"metrics\",\n    \"note\": \"The first full tank establishes the baseline. Its purchase and earlier records are exported but excluded from consumption. Every later full tank closes an interval that includes all intervening partial fills and the closing fill. Trailing partials remain pending. Full-tank levels must be comparable; missing fills and odometer rollover/replacement invalidate the model. Reports normalize to km and litres and calculate weighted complete-interval consumption. Costs are purchases, not the value of fuel consumed. Download to keep your log: this tool does not automatically save data between sessions or store receipts. Runs locally without uploads. Limit: 500000 combined input characters, 2000 records, 30 tariffs or grades, 30 tiers per tariff and 100 depreciation years. Complete JSON and JSON Pointer CSV exports are each capped at 2000000 characters and CSV at 200000 leaf records. Preview shows 200 report rows. Calculations stop after 10 seconds. Copy result copies the report text; downloads include source inputs, units, assumptions and complete results.\",\n    \"inputMaxLength\": 500000,\n    \"inputErrorCode\": \"VEHICLE_INPUT\",\n    \"example\": {\n      \"input\": \"\",\n      \"options\": {\n        \"distanceUnit\": \"km\",\n        \"fuelUnit\": \"L\",\n        \"currency\": \"EUR\",\n        \"recordsCsv\": \"date,odometer,fuel,cost,fullTank,note\\n2026-01-01,100,40,60,true,Baseline full tank\\n2026-01-03,300,15,24,false,Partial fill\\n2026-01-04,600,25,40,true,Closes interval\\n2026-01-05,700,10,17,false,Pending partial fill\"\n      }\n    },\n    \"experience\": {\n      \"automatic\": false,\n      \"single\": false,\n      \"inputMaxLength\": 500000,\n      \"inputMode\": \"text\",\n      \"label\": \"Your text\",\n      \"placeholder\": \"Type or paste your input…\",\n      \"help\": \"Up to 500,000 characters. Review the settings before running.\",\n      \"action\": null\n    },\n    \"mode\": \"explicit\",\n    \"interactive\": false\n  },\n  \"execution\": \"Browser interface\",\n  \"api\": null,\n  \"browser_agent\": {\n    \"supported\": true,\n    \"name\": \"run_current_tool\",\n    \"discovery\": \"WebMCP on the human page in a supporting browser\",\n    \"verification\": \"See audit/API-AUDIT.md; availability is not verification\"\n  }\n}\n```\n\n## Page guide\n\nCalculate consumption across full and partial fill-ups, with complete intervals and pending fills kept separate.\n\nHow can we improve this tool?\n\nReport a problem or share an idea.\n\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\n\n### How to use Fuel economy log\n\n1. Choose odometer and fuel units, then enter fill-up CSV with dates, fuel amounts, cost and fullTank true or false.\n2. Mark comparable full tanks accurately and keep all partial fills in date and odometer order.\n3. Review completed-interval consumption and pending fills. Download the full log to keep your records.\n\n## Useful next steps\n\n- [Parking cost calculator](https://happytails.ai/en/calculators/parking-cost-calculator/) ([Markdown](https://happytails.ai/en/calculators/parking-cost-calculator.md))\n\n- [Scooter charging calculator](https://happytails.ai/en/calculators/scooter-charging-calculator/) ([Markdown](https://happytails.ai/en/calculators/scooter-charging-calculator.md))\n\n- [Fuel grade cost comparison](https://happytails.ai/en/calculators/fuel-grade-cost-comparison/) ([Markdown](https://happytails.ai/en/calculators/fuel-grade-cost-comparison.md))\n\n## Handle partial tanks without guessing consumption\n\nThe first full tank establishes a baseline. Every later full tank closes an interval that includes all intervening partial fills and the closing fill. Earlier purchases and the baseline fill remain in the export but are excluded from interval fuel totals. Trailing partials remain pending.\n\n### Keep a complete, consistent log\n\nFull tanks need comparable fill levels. Missing fill-ups, odometer rollover or inconsistent tank levels invalidate the model. Overall L/100 km uses total completed-interval litres divided by total completed distance, multiplied by 100. Download your data to keep it: this tool does not automatically persist records or store receipts.\n"
}