Benchvale

Changelog

What changed and when. Fixes say what was actually wrong rather than only that something was corrected, because if a tool gave you a bad number last week you should be able to find out. Jump to tools and fixes or policy and disclosures.

Tools and fixes · Policy and disclosures

Tools and fixes

Calculators, pages, and behavior visitors use. Newest first.

Every tool is named on the homepage

· Change · The site

The homepage now lists every live tool by name, grouped under the hub headings. Color tools, date and time tools, and home project calculators say what they are. Two tool titles now lead with the plain name of what the tool does: the developer tool chain and the color contrast grid.

A BTU calculator for room cooling and heating

· New · BTU calculator

The new /home/btu-calculator estimates BTU per hour for one room or several, in cooling or heating, and prints each factor, its source and the working.

A fence calculator for posts, rails, pickets and concrete

· New · Fence calculator

The new /home/fence-calculator counts posts by role for joined runs, then rails, pickets, fasteners and bags of post concrete, and prints the spacing each run gets.

A drywall calculator for sheets, screws, mud and tape

· New · Drywall calculator

The new /home/drywall-calculator counts sheets for every length from 4 x 8 to 4 x 16, plus screws, ready-mixed compound, tape and corner bead, from the rooms you enter or from one total area.

A deck board calculator with a cut plan

· New · Deck board calculator

The new /home/deck-board-calculator counts boards by stock length for one or more rectangles, plans each splice onto a joist, and adds screws or clips plus bagged concrete from the footing size you enter.

A wallpaper calculator that names leftover on the last roll

· New · Wallpaper calculator

The new /home/wallpaper-calculator packs floor-to-ceiling drops onto shared rolls. It prints the cut length, last-roll remainder, and extra rolls the match type costs against free match. Openings come off papered area and do not change the roll count.

A paint calculator that will not assume the ceiling

· New · Paint calculator

The new /home/paint-calculator asks walls only or walls and ceiling before it shows a purchase count. Room dimensions, known wall area, and I have paint are the three entry modes. Coverage defaults and can sizes are footnoted as unsourced.

A tile calculator that returns cut sizes, not only a waste percentage

· New · Tile calculator

The new /home/tile-calculator lays a rectangular room at your tile size and grout gap. Straight grid and brick/offset are simulated. Diagonal, herringbone and chevron stay sourced estimates and say so.

How we build tools no longer says OCR needs a server

· Fix · How we build tools

The page said optical character recognition on a scanned document cannot be done in a browser. Browser OCR exists, but a capable engine is a large download and none of our tools carries one yet. The sentence now says that, and still says a model too large to download needs a server.

About now matches the homepage on how new tool sections open

· Fix · About

About said a new section of the site opens with all of its tools at once. The homepage already said a section opens with its main tool first and the rest follow, which is how the site actually works. About now uses that sentence.

The JSON formatter's page summary names RFC citations

· Change · JSON formatter

The title already cites the RFC section for each rewrite. The short page summary that shows under the link in search results and some link previews only mentioned parse failures. It now names RFC citations for rewrites that lose information, and still names the line and column when a document fails to parse. The title is unchanged.

Sibling pages no longer call the strength checker an entropy checker

· Fix · Password strength

The page headline moved to Password strength checker. Links from the password generator, passphrase generator, hash generator, and developer hub still said entropy checker. They now use the same name as the headline.

How we build tools names two pages to run the network-tab check on

· Change · How we build tools

How we build tools described the offline test and did not send you to a tool. It now points at the JSON paste-safety and password-generator-safety articles, and at the two tools those articles send you to.

The lead now opens with the Facebook example the title already uses

· Change · Why UTM names split your reports

The title names Facebook and facebook. The lead used to start with the general exact-string rule. It now opens with those three spellings so the tab title, headline, and first sentence agree.

Homepage names who maintains the tools and how offline is tested

· Change · The site

The homepage explained why another tools site exists and what is coming, and did not name the maintainer or point at How we build tools from that page. It now names Aaron Wilson, links that page for the offline test (which applies once a page has loaded), and points at three articles that show the same rule in different jobs.

A 10 by 10 by 4 slab is worked on the page, with refusals

· Change · Concrete calculator

The calculator stated bag yields and overage without working one complete example. It now shows 1.235 cubic yards and 56 bags of QUIKRETE 1101 at 80 lb for a 10 by 10 by 4 inch slab, names leftover because counts round up, and lists footings, circles, and ready-mix as out of scope.

Fair-pick shows a three-name round and refuses a wheel

· Change · Name picker

The picker described no-repeat rounds without a worked call sequence. It now walks Avery, Jordan, and Sam through one round, states it is not a spinning wheel, and points at the Wheel of Names alternatives article. Delete saved list is documented as the shared list used by groups and seats.

January 31 plus one month is worked, with the span explainers linked

· Change · Date calculator

Constrain overflow lived in the how-we-count box. The supporting copy now walks January 31 plus one month to February 28 or 29, notes the reverse trip is not a round trip, and links Does the end date count and What 5 to 7 business days means from both this page and days between dates.

An 85 with a 30 percent final toward a 90 is worked on the page

· Change · Final grade calculator

The formula was published without a worked example. Enter 85, 30, and 90 and the required score is 101.67 percent, the ceiling is 89.5, and the floor if you skip is 59.5. The title is one phrase, Final Grade Calculator: What Do I Need, instead of two stacked labels.

Duplicate source and fragment tags have pasteable examples

· Change · UTM validator

Duplicate keys and fragment placement were described. The page now gives two URLs to paste: one with two utm_source values, and one with the tags after the hash, which a browser will not send.

URL encoder and base64 walk one string each, and headlines match the titles

· Change · Developer tools

The URL encoder now works hello world/foo?x=1 through component, form-body, and encodeURI side by side. Base64 works >>> as Pj4+ versus Pj4- and an unsigned JWT with algorithm none. The JSON formatter headline now matches its RFC title while the lead still names line and column parse failure. Password strength, GPA, UTM naming, and flooring waste headlines no longer contradict their titles.

GPA calculator title no longer implies weighted-only

· Change · GPA calculator

The title and headline said weighted GPA even though the page already computes weighted and unweighted side by side. They now name both, and the calculator links the GPA scale article for the letter-to-points table.

Cached preview copy no longer says only a debugger can refresh it

· Fix · Metadata and Open Graph generator

The page said a stored card would keep serving until someone ran that platform's debugger. Cache lifetimes and refresh options differ, and some caches expire without a debugger. The copy now says platforms may reuse cached metadata, to consult the platform's documentation or debugger where available, and that this page cannot refresh a platform cache.

The worked title now flags only the Facebook card

· Fix · Metadata and Open Graph generator

The example used a 75-character title and said X would cut it while LinkedIn and Facebook might keep it. LinkedIn and X share a 70-character budget and Facebook uses 65, so all three cards noted truncation. The example is now 66 characters: only Facebook notes it. LinkedIn, X, and Slack stay quiet. The four titles still share one two-line clamp.

Local cards show truncation, not a live platform cache

· Change · Metadata and Open Graph generator

The page said the four previews were approximate and did not fetch the destination, then stopped. It now walks a too-long title across those cards, names the fetches and cache purges it will not perform, and points at the explainer for a preview that stays wrong after the tags are right.

Inspect names Nil and Max instead of decoding them as versions

· Change · UUID generator

Nil and Max were mentioned as exceptions. The page now tells you to paste both RFC 9562 special values and shows what the inspect panel prints for each, and it lists versions 1, 2, 3, and 5 as missing on purpose rather than only refusing version 1 in one sentence.

Chain shows every step, and a share link can be a recipe with no paste

· Change · Tool chain

Each step now prints its full output, the specification or behavior it implements, and any diagnostic. Reorder and remove buttons name the step they act on. Copy final output copies only the last panel and stays off when there is no answer. A share link with steps and no paste omits the in key, so a recipient gets the recipe and supplies their own text; typing then deleting restores the empty string, which is a different state.

Password strength checker shows both numbers and which one applies

· Change · Password strength

The page now scores a typed password two ways: how guessable it is, and what a password of the same shape would be worth if a generator had made it. A radio says which figure applies to you. Score a shape estimates length and character classes with no password typed. Crack times name the scenario and the guess rate, and they use the full search space.

URL encoder names each encode set and decodes with a pass ceiling

· Change · URL encode

Encode still shows encodeURI, encodeURIComponent and form-urlencoded, now with the set name beside each row and a one-line note that the first of those three is not a WHATWG set. Decode is one row, with both plus readings labeled, recursive decode up to 16 passes, and a notice when the input already contains a percent-escape. Per-line and LF or CRLF rewrite the input before encoding. A malformed escape or a lone surrogate clears the result instead of leaving the previous answer on screen.

JSON formatter names the error line with a caret, and Format is a mode

· Change · JSON formatter

When a document does not parse, the page names the line and the column, reprints that line, and points a caret at the character. Jump to error moves the caret there. Format, minify, and sort keys are a mode selector; the pane updates as you type. Sort keys orders top-level keys only. You can open a .json or .txt file up to 5 MB. Validate against RFC 8259 or RFC 4627. Tree view collapses containers deeper than two.

UUID generator inspects a pasted value and formats a batch without redrawing it

· Change · UUID generator

Paste a UUID to see its version, variant nibble, RFC 9562 section, and for version 7 the timestamp in UTC and local time. Uppercase, braces, hyphens, and the batch separator re-format the current batch without drawing new identifiers. Count goes to 1000. Version 1 is not offered because it embeds a MAC address.

Passphrase generator now publishes its list and prints checkable arithmetic

· Change · Passphrase generator

The wordlist is a 2,048-word subset of EFF's large list, published at /dev/wordlist-2048.txt with the rule that produced it. Word count now goes to 24. The separator is free text. Bits, the arithmetic line, and a crack-time at 100 billion guesses a second recompute as you change settings; Generate is what draws a new phrase. A trailing digit is worth 3.32 bits, not 3.3.

HMAC keys accept hex and base64, and an expected digest can be verified

· Fix · Hash generator

The HMAC key field only accepted UTF-8, so published RFC 4231 test vectors could not be entered as the RFCs write them. Key and message now each have a UTF-8, hex, or base64 encoding. An expected-value field reports Match or No match against the rendered digest. A self-test panel on the page runs the published vectors with a citation. Typing then deleting now shows the empty-string digests; Clear still returns the page to an empty output.

Printing blanked most pages, homepage cards had a stray shadow, and one published contrast ratio was wrong

· Fix · The site

A print rule meant for the school tools hid everything on every page, so printing from roughly fifty other pages produced a blank sheet. It now applies only on school pages that show a result. The section cards on the homepage lost a hover shadow that clashed with the flat style used everywhere else on the site. The accent-colors article now calculates its published color-pair ratios with the same WCAG formula the contrast tools use, every time the site is updated, so a mistyped ratio cannot be published again. Only /privacy and /how-we-build-tools moved their updated dates, to 2026-08-20, when the offline photograph was added.

We published claims about other products that we cannot back up

· Fix · The site

Three places on this site said or implied that no competing tool does something. We have no way to check that from inside our own product, and at least one of those claims was wrong: chained client-side tools have existed for years elsewhere (GCHQ CyberChef among them). The tool chain description and the contrast checker description now say what our pages do and stop there. A search entry that promised building a palette from an image was removed, because the page has no image input and never did. The 14 August 2026 developer tools entry still contains one of these claims, in the sentence beginning "Nothing else in this category offers that". It is left as written because this log is a record of what we said at the time, and quietly rewriting it would be worse than leaving it visible next to its withdrawal band. Treat that sentence as withdrawn.

Open the withdrawn entry

Date calculator is live

· New · Dates

The date calculator adds or subtracts days, weeks, months, or years from one start date, discloses constrain overflow and years-then-months-then-days order, exposes a February 29 toggle, and reuses weekend-only business days with custom holidays.

Days between dates calculator is live

· New · Dates

The days-between-dates tool counts calendar spans with exclusive default and an include-end-date toggle, shows year-month-day and total week breakdowns, optional business days with custom holidays only, and a how-we-count panel in the served HTML. The shared dates engine uses integer calendar triples rather than Date or Temporal.

Flooring waste factor article is live

· New · Home projects

The how-much-waste-to-add article publishes Cavalieri layout ranges, states that the 2025 NWFA Installation Guidelines contain no waste percentage, and links to the flooring calculator for box arithmetic.

Mulch and flooring calculators are live

· New · Home projects

The mulch calculator treats depth as the variable with Extension guidance cited, shows thirteen point five versus fourteen bags distinctly, and renders a two through four inch depth series. The flooring calculator sums up to ten room areas, applies Cavalieri layout waste presets, prints leftover on every result, and lists the full waste taxonomy in one table.

The home hub and concrete calculator are live

· New · Home projects

The /home/ hub opens with the concrete calculator: slab length, width, and thickness drive cubic yards and QUIKRETE bag counts, a thickness series table lists three through six inch pours with forty, sixty, and eighty pound yields, optional overage is labeled as trade convention, and share links keep dimensions in the URL fragment only.

Time zone meeting planner opens the date and time tools

· New · Dates

The meeting planner is the first of the date and time tools. A typing-speed test is still postponed. The planner builds a multi-city day grid with work-hour overlap, applies daylight saving from IANA zones in the browser, and shares the plan in the URL fragment.

Final-grade, GPA, and classroom mode

· New · School tools

The final-grade calculator always shows the required score, the maximum still achievable, and the floor if the final is skipped, plus a multi-target table. The GPA calculator shows weighted and unweighted results together with editable bumps, a stated rounding rule, and an explicit F-in-weighted-course policy. Both keep grades in the browser and in the URL fragment only. Classroom list tools gain Classroom mode (hide chrome, enlarge the board, Escape to exit), group-by-size, a front-of-room seating label, duplicate notices, print on every mode, and shareable group or column settings.

Fair-pick claims, ad-free school pages, and a Wheel of Names comparison

· Fix · School tools

The name picker answer said a round reset only when the list was exhausted, which was false once editing cleared the round. School tool pages no longer reserve an advertising slot under the result. The picker now shows already-called and waiting names with a reset control, supporting copy differs per tool, and a Wheel of Names alternatives article states their real strengths before contrasting third-party load and fair-pick behavior.

Classroom tools: fair name picker, groups, and seating chart

· New · School tools

One browser-local class list drives a no-repeat name picker, balanced groups, and a printable classroom seating chart. Saving is optional with a visible delete control. Share links keep names in the fragment.

Benchvale launches with color, developer, and marketing tools

· New · The site

Three sections go live together: the palette contrast grid and the rest of the color tools, the developer tools including the tool chain, and the marketing tools for campaign URLs, metadata, and slugs. School tools followed the same day. The pages explaining how the site works, the privacy policy and this changelog go up at the same time rather than being added once there was traffic to justify them. Search indexing is open; advertising is not configured yet and will land after AdSense approval.

The developer tools, and the tools can be chained

· New · Developer tools

Withdrawn August 20, 2026. The sentence beginning "Nothing else in this category offers that" is withdrawn. GCHQ's CyberChef has chained client-side operations for years, at a much larger operation count. The rest of this entry stands.

Ten tools and an article: JSON, diffs, base64, URL encoding, UUIDs, hashes, passwords and passphrases. The one worth pointing at is the tool chain, which runs several of them in sequence on a single paste. Nothing else in this category offers that, because chaining on a hosted tool site means uploading the intermediate result at every step.

Campaign URL tools without an account

· New · Marketing tools

Builder, validator, naming-consistency checker, metadata and Open Graph, and slugs. Structural validation stays separate from naming consistency. Nothing is uploaded.

Site search and hub cards match UUID v7, HMAC, and four-platform previews

· Change · Developer hub, marketing Open Graph generator

The site's own search and the tool cards on each hub described older versions of the UUID, hash, contrast, JSON, and Open Graph tools. They now describe what those tools actually do.

Clearer controls and accurate developer hub descriptions

· Change · Developer hub, JSON formatter, contrast grid, hash generator, Open Graph generator

The developer hub now names UUID v7 and hash HMAC/file modes. Jump to error stays visible with a reason when disabled. Separate contrast lists scroll the summary into view. HMAC refuses an empty key and can show the key. Open Graph previews note likely truncation per platform.

Graphics-only colors are now named in the summary

· Change · Contrast grid

A color that can reach 3:1 against some partner and never 4.5:1 against any is the usual palette mistake. The summary listed pass fractions. It now also lists those color names, so the graphic-versus-text flag is a list rather than only a mode switch. The palette generator can send the current palette to the grid in one step.

A finished URL now hands off to the validator and the naming checker

· Change · UTM builder

The builder linked to those tools as empty pages. The result now rides in the fragment, the same way developer tools chain a paste, so you do not retype a campaign URL to check it.

Why Facebook and facebook split campaign reports

· New · Marketing tools

A supporting article for the naming-consistency checker. Campaign parameters are exact strings, so Facebook and facebook become two sources. The page explains that as the data model rather than a product bug, then hands the reader to the local checker.

The script size figure counted development-only files

· Fix · The site

On our development copy of the site, the Script figure at the top of each tool page added up every script the browser loaded, including helper files that exist only while we work on the site and never reach the live pages. That showed hundreds of KB against the published 100 KB limit. Those files are now left out, and the figure says when it was measured on a development copy rather than on the live site, where the 100 KB limit is enforced.

Control+Enter runs Format and Generate

· Change · Developer tools

The developer tools had no keyboard shortcuts. Format on the JSON formatter and Generate on the UUID, password, and passphrase tools now run from Control+Enter, or Command+Enter on a Mac, when focus is inside the tool. Space is left alone so it still scrolls the page.

Some form fields showed the browser's default style

· Fix · The site

The stylesheet only styled text and URL fields. Fields with no declared type, password fields, and search fields fell back to the browser default: 21px tall, in Arial, below the 24px minimum target size in WCAG 2.5.8. The UTM builder, Open Graph generator, password strength checker, and site search results page were the ones hit. They now use the same control styles as every other field.

Empty ad reservations and a buried tool on phones

· Fix · The site

Every tool page reserved a 280px dashed box for advertising that is not configured yet, which read as a broken layout. The slot stays out of the page until a publisher id is set. On phones the first tool control also sat around 600px down the page; the header, answer block, and a 520px tool min-height are tightened under 700px so the control is reachable sooner.

Lock buttons failed contrast on mid-tone swatches

· Fix · Palette generator

A single muted border cannot hold 3:1 against every generated color. Lock controls now use a light-and-dark dual ring so the control boundary stays visible on both dark and light swatches, and the tap target is at least 28px.

Policy and disclosures

Privacy, analytics, and disclosure notes. Newest first. These stay in the log because it is a record of what we said at the time.

Helpful button on tool pages

· Policy · The site

Tool pages outside the classroom clusters now have a Helpful button. A press sends the page's address and nothing you typed. The counts refresh at least once a day. What is kept, and for how long, is on the privacy page.

Google Analytics 4 is live

· Policy · The site

Google Analytics 4 is live on every page except /school/ and /dev/password-strength. Visitors in the EEA and the UK get no analytics cookies. Classroom pages are not measured. The hosts it contacts are listed and enforced. Nothing typed into a tool is sent.

Privacy describes Google Analytics 4 before any tag is installed

· Policy · Privacy

The analytics section still states that no analytics script is installed today, and still invites you to search the source for a tag. It now also names Google Analytics 4 and Google Funding Choices as what will be installed, states that GA4 is not cookieless, sets retention at 14 months, states Google signals off as a deliberate choice, lists the hosts the tag will contact, and keeps the hash-fragment tool promise central. Nothing about collection uses present tense until a later changelog entry records that the tag is live. This change installs no analytics tag.

The privacy page stopped naming an analytics product it does not run

· Policy · The site

The analytics section said there was none installed, which was accurate, and then promised that when analytics arrived it would be a named product that is cookieless and needs no consent banner. The plan for which product to use has since changed, so that promise was one we had decided not to keep. The section now describes only what is true today, no analytics script loads on any page and no page-view is reported, and commits to describing whatever is chosen here, in the present tense, before it goes live rather than after.

An AdSense application was submitted, and the site now publishes ads.txt

· Policy · The site

No ads run and no advertising code loads. Applying requires proving we own the domain, so the site now serves an ads.txt file naming Google as an authorized seller and carries an ownership verification tag in every page source. Neither loads a script, makes a request, or shows anything to a reader, and the reserved ad area stays absent from every page until ads actually serve. If the application is approved, the privacy page is rewritten before the first ad runs.

If analytics ever arrives, it will not see your tool state

· Policy · The site

There is still no analytics on this site. The install is built and switched off, and it is written so that the part of the URL after the hash, where every tool keeps its shareable state, is stripped before anything is reported. The build now runs a check with analytics forced on, opens every page at a URL that already carries tool state, and fails if any of it leaves the page. That check was written before a vendor was installed rather than after, because afterwards the failure would be silent.

The offline claim is enforced by the build

· Policy · The site

Every build now loads each page in a real browser, types a marker into every field, clicks every button, and fails if any page makes an unexpected network request or if that marker appears in one. The claim that nothing you type leaves your browser stops depending on anyone remembering it.

Found something wrong?

Tell us. Fixes land here with the date, so you can check whether a report was acted on without waiting for a reply.

What counts as a change worth listing

Anything that could change a number you relied on, plus new tools and corrections to the method behind one. Cosmetic work does not get an entry. The rules for what gets published and how it gets corrected are in the editorial policy. Each tool explains its own method on its own page, and how we build tools covers the shared method, the contrast formula, and the privacy test every tool page must pass. The tools are grouped into seven sections: Color , Developer tools , Marketing tools , School tools , Homeschool tools , Dates , and Home projects .

Last updated . The changelog lists what changed across the site, and when.