A Cumulus template is ordinary text plus markers the station program replaces. The marker <#temp> is the first one most authors type. This page is a short glossary of the names a first template actually needs—enough to label a station page honestly, not a catalog of every token Cumulus has ever shipped.
The visitor-facing explanation of why a number on a page is a field sits at /aboutus.wxtags. The operator vocabulary—grammar, families, extra sensors, versioning—sits at /tnetwebtags.php. Extra processed files and PHP includes are the TNET web-tags project. Official behavior is the Cumulus Wiki Webtags page (last checked 13 August 2026). TNET does not maintain a fork of the tag list.
Historical context
The slash URL /aboutus/wxtags reads as a reference under About: tags as a documented topic for people building pages, not as a CMS login and not as a ZIP of extras. Community templates copied the same twenty names into headers, WAP decks, and banners. Those names are still the ones that, if wrong, make a site scientifically unusable even when the layout is pretty.
This article does not rehost a scraped tag table. MX can write WebTags.txt for the running build (from 3.12.0). Use that file plus the wiki when you need completeness.
How to read each entry
Each row is a binding: the name claims a quantity, an aggregation, and a clock. Processing is substitution at file-generation time. The output is a snapshot. Unknown tags in MX become error strings, not empty fields (Cumulus Wiki: Webtags).
Units are often sibling tags, not embedded in the number. Derived indices are not extra thermometers. Software forecast numbers are scenarios.
Temperature, humidity, and indoor
| Tag | Meaning a template should label |
|---|---|
| <#temp> | Outside air temperature, current packet |
| <#intemp> | Inside temperature, a different instrument |
| <#hum> | Outside relative humidity |
| <#inhum> | Inside relative humidity |
| <#dew> | Dewpoint, derived from temperature and humidity in the station program |
| <#temptrend> | Documented as a three-hour average rate of change, not “now minus one minute” |
| <#tempTH> / <#tempTL> | Today’s high / low temperature (values) |
| <#TtempTH> / <#TtempTL> | Times of those extremes—a different clock from packet time |
Author pitfall. Printing <#temp> and <#intemp> both as “temperature” without “outside” and “inside” makes a loft sensor look like the Stevenson screen. Printing <#TtempTH> next to the current temperature without the word “at” makes the day’s high look like the present.
Wind
| Tag | Meaning |
|---|---|
| <#wspeed> | Average wind speed (the page must say “average”) |
| <#wlatest> | Latest wind sample, not the average |
| <#wgust> | Gust field (in the classic realtime layout, a 10-minute high gust) |
| <#wdir> | Direction as a compass point or similar text token |
| <#avgbearing> | Average bearing in degrees (pair it with a speed) |
| <#beaufort> | Beaufort number, a derived scale |
| <#windrun> | Wind run over the configured period, not instantaneous speed |
Author pitfall. Labeling all three of average, latest, and gust as “wind” is a binding error. Direction without speed is incomplete; speed without saying which speed is incomplete.
Pressure and rain
| Tag | Meaning |
|---|---|
| <#press> | Sea-level pressure as the program is configured to show it |
| <#presstrendval> | Tendency value (commonly a three-hour change)—label the window |
| <#pressTH> / <#pressTL> | Today’s pressure high / low |
| <#rrate> | Rain rate, not a total |
| <#rfall> | Rain today, reset at the station rollover |
| <#rhour> | Rain last hour |
| <#rmonth> / <#ryear> | Month-to-date / year-to-date totals |
| <#rfallY> | Yesterday’s rain (the “Y” is yesterday; it is not applied uniformly on every tag name) |
Author pitfall. Aliasing every rain tag to $rain in a PHP include destroys the window. “Today” is the station’s meteorological day, not necessarily the visitor’s calendar.
Units, clocks, and software identity
| Tag | Meaning |
|---|---|
| <#tempunitnodeg> | Temperature unit without the degree glyph—pair with <#temp> |
| <#windunit> / <#pressunit> / <#rainunit> | Sibling unit strings for those quantities |
| <#timehhmmss> | Current packet time, not the time of an extreme |
| <#date> | Date as formatted by the program’s locale settings |
| <#version> / <#build> | Software identity so a consumer can version-gate the rest |
| <#SensorContactLost> | Quality flag: contact with the wireless sensors, not a weather variable |
Author pitfall. A template that prints <#temp> without a unit is an incomplete record. A template that uses packet time as the caption for today’s high is a clock error. Always emit version and build on any public include you expect to parse next year.
Indices and forecasts (label or omit)
| Tag | What it is |
|---|---|
| <#wchill> | Wind chill, derived |
| <#heatindex> | Heat index, derived |
| <#humidex> | Humidex, derived |
| <#apptemp> | Apparent temperature, derived |
| <#feelslike> | MX feels-like field, derived (realtime field 59 from MX 3.7.0 in the wiki’s field history) |
| <#forecastnumber> | Station-program forecast index (Zambretti-style scenario), not an NWS product |
| <#isdaylight> | Location-based daylight flag, not a pyranometer |
Author pitfall. Putting <#forecastnumber> in the same visual weight as <#temp> teaches visitors that a rule-of-thumb index is an official forecast. For warnings, link NWS or the national service with authority at the site.
A first-page set that is complete enough
A public current-conditions block that stays honest can be small:
<#temp>plus<#tempunitnodeg><#hum><#wspeed>,<#wgust>,<#windunit>, and a direction tag<#press>plus<#pressunit><#rfall>plus<#rainunit>, with rollover stated in prose once<#timehhmmss>and<#date><#version>and<#build>
That set is a current observed packet (plus unit strings and software identity). Add today’s high/low only if you also print their event times. Add solar and extra-sensor tags only when the hardware exists; an empty solar field is not midnight if there is no sensor.
Do not add extra tokens here because a banner project wants them. Cadence splitting and PHP includes belong on the extra-token project page. Do not paste the full wiki list into a realtime file because the names exist.
Output modifiers (decimals, decimal point versus comma, date formats) are documented on Webtags/Parameters. MX’s rc=y forces a decimal point for parsers. This glossary does not replace that page.
Modern relevance
MX still substitutes the same core names in extra files, SQL, and HTTP POST bindings. JSON packs for the default site serialize overlapping fields. The glossary problem is unchanged: a first template fails when it treats average wind as gust, rain rate as rain today, or packet time as the time of the high.
Field identity, units, and freshness are data-source problems. TNET’s public account is data sources, quality controls, and methodology. Observed versus derived labeling is how the service works. The Cumulus hub indexes related historical pages. For software choice rather than tag names, use choosing station software.
Sources
- Cumulus Wiki: Webtags (last checked 13 August 2026)
- Cumulus Wiki: Webtags/Parameters (last checked 13 August 2026)
- Cumulus Wiki: realtime.txt (last checked 13 August 2026)
- NWS
- TNET, Data sources, quality controls and methodology
- TNET, How the service works