Observed since 20 Oct, 17:06 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
AA Upwell Fuel - Alliance Auth Plugin
Fuel planning for Upwell structures in Alliance Auth.
Answers one question for leadership: how much fuel do our structures need over the next N days, and how much of it still has to be bought?
Alerting is deliberately out of scope — aa-structures already notifies when a structure is running low. This is the planning view that sits next to it.
Burn rates are measured, not modelled. Each structure's fuel bay contents
divided by the time until its fuel_expires_at gives the rate the game is
actually charging it, which already accounts for every hull bonus, rig and
service combination without this app modelling any of them.
That matters, because modelling it is genuinely error-prone. A hull's
structureServiceRoleBonus only applies to service modules matching the hull's
role: a Raitaru discounts manufacturing but not a clone bay, an Athanor
discounts reprocessing but not moon drilling. And citadels measurably burn
7.0 blocks/hour for a clone bay where the −25% in dogma predicts 7.5.
The modelled rates in upwellfuel/fuel/catalog.py are therefore only a
fallback, used for structures that are not currently burning fuel — where the
question is what refuelling one would cost. Those rows are marked as estimates
on the page. The catalog's discount rules were validated against measured rates
across a live 41-structure fleet.
Two figures on the page are estimates by necessity:
This app reads aa-structures' data and stores nothing of its own. It adds no models, no migrations, no ESI calls and no scheduled tasks — the report is computed per request and is exactly as fresh as aa-structures' last sync.
pip install aa-upwell-fuel
Add to INSTALLED_APPS in local.py:
INSTALLED_APPS += ["upwellfuel"]
There are no migrations to run. Restart Auth and the entry appears in the menu.
The cost column needs market prices, which nothing loads by default. Add eveuniverse's price task to your schedule:
CELERYBEAT_SCHEDULE["eveuniverse_update_market_prices"] = {
"task": "eveuniverse.tasks.update_market_prices",
"schedule": crontab(minute=0, hour=3),
}
Until it runs, the page shows the fuel figures and hides the cost column.
This app defines none of its own. It is a different view onto data aa-structures already owns, so it reuses that app's access model:
| Permission | Effect |
|---|---|
structures.basic_access | Can reach the page |
structures.view_corporation_structures | Sees their corporation's structures |
structures.view_alliance_structures | Sees their alliance's structures |
structures.view_all_structures | Sees everything |
A user with basic_access but no viewing permission gets an empty table
explaining why.
| Setting | Default | Description |
|---|---|---|
UPWELLFUEL_DEFAULT_PERIOD_DAYS | 30 | Planning period selected on load |
UPWELLFUEL_PERIOD_CHOICES | [7, 14, 30, 60, 90] | Options in the period picker |
UPWELLFUEL_MAX_PERIOD_DAYS | 365 | Upper clamp on a period from the URL |
UPWELLFUEL_MAGMATIC_GAS_PER_HOUR | 55.0 | Gas burned per Metenox drill |
UPWELLFUEL_DEFAULT_FUEL_BLOCK_TYPE_ID | 4312 | Block priced when the bay is empty |
MIT
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.1.1 | 18 Aug 2026 | 7 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 17:06 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:750e1c841c6780280cfe4086821c1372822e47aa268042823969a9439f76c008