# FACTS · menu-qr-fix

All checked Wed Oct 21, 2026 (PT). "Read directly" means the page was loaded and read from the box. "Snapshot" means search-index text only.

| ID | Claim as used | Source URL | Checked | How |
|---|---|---|---|---|
| Q1 | Scanworthy (May 23, 2026): "Today, the QR code stopped working — it now shows a 'subscribe to continue' page instead of your website." A dynamic code encodes the generator's short URL. "In almost every case, your trial ended." "Most QR code platforms offer a 7-day or 14-day 'free trial'." Options: "Pay the subscription (often $180+/year, with annual billing)" or reprint. A server-side redirect "only works if the QR encoded a URL on a domain you control, which most don't." | https://www.scanworthy.com/blog/why-printed-qr-codes-stop-working | 2026-10-21 | Read directly. Note: Scanworthy sells QR codes, so it's an interested source. Both quotes contain the source's own em dash. |
| Q2 | QR Code Generator Pro Starter: $9.99 a month billed annually ($119.88 a year) for 2 dynamic codes and 10,000 scans. Competitors list scan tracking as a paid feature. | https://www.honestqr.net/compare/qr-code-generator-pro | 2026-10-21 | Read directly. Secondary (a competitor's comparison page). Internal context only. Not in public copy. |
| Q3 | Single and Bulk Redirects need the hostname's traffic proxied by Cloudflare. They're available on all plans. Free plan: 10 Single Redirect rules per zone; Bulk: 15 rules, 5 lists, 10,000 URL redirects per account. Dashboard path: Rules > Overview > Create rule > Redirect Rule, with match options Wildcard / All incoming requests / Custom filter expression, a status code setting and Preserve query string. If a matched hostname has no DNS record, Cloudflare offers to create a proxied one, tagged `rules`, with the comment "Created during Cloudflare Rules deployment process for <RULE_NAME>". Cloudflare Trace troubleshoots rules. | https://developers.cloudflare.com/rules/url-forwarding/ ; https://developers.cloudflare.com/rules/url-forwarding/single-redirects/create-dashboard/ ; https://developers.cloudflare.com/rules/reference/troubleshooting/ | 2026-10-21 | Read directly (docs updated May 5 and Aug 14, 2026) |
| Q4 | Bulk Redirects: create a list (manual or CSV), then a rule that enables it. Lists and rules live at the account level. A source URL can't include a query string. The scheme is optional (it matches http and https). Parameters: Subpath matching, Include subdomains, Preserve query string, Preserve path suffix (all default false). Status code values: 301, 302, 307, 308 (default 301). With Preserve query string on, any query string on the target is discarded. | https://developers.cloudflare.com/rules/url-forwarding/bulk-redirects/create-dashboard/ ; https://developers.cloudflare.com/rules/url-forwarding/bulk-redirects/reference/parameters/ | 2026-10-21 | Read directly |
| Q5 | The `_redirects` file (Pages and Workers static assets) uses the format `[source] [destination] [code?]`. The default code is 302. Limit: 2,000 static plus 100 dynamic redirects. Static entries go before dynamic ones. It isn't applied to requests served by Pages Functions or Worker code. | https://developers.cloudflare.com/pages/configuration/redirects/ ; https://developers.cloudflare.com/workers/static-assets/redirects/ | 2026-10-21 | Read directly |
| Q6 | RFC 9110: "A 301 response is heuristically cacheable" (§15.4.2), and 308 likewise. §15.4.3 (302) and §15.4.8 (307) have no such statement. | https://www.rfc-editor.org/rfc/rfc9110 | 2026-10-21 | Read directly (text grep) |
| Q7 | QR quiet zone: 4 modules on every side. Error correction: L about 7%, M 15%, Q 25%, H 30%. Versions run from 21x21 to 177x177 modules, so more data means more modules. | https://www.qrcode.com/en/howto/code.html ; https://www.qrcode.com/en/about/error_correction.html ; https://www.qrcode.com/en/about/standards.html | 2026-10-21 | **Snapshot.** qrcode.com timed out (504) from the box and from WebFetch. The figures come from the search index of those pages and match ISO/IEC 18004. Re-open in a browser before publishing. |
| Q8 | The segno library writes SVG, PDF and PNG with `border=4` and `error="m"`. It was tested on the box (a 2-M symbol for `https://theirsite.com/menu`). | https://pypi.org/project/segno/ | 2026-10-21 | Tested locally |
| Q9 | JKCA care from $69 a month. | https://jkca.studio/notes/ | 2026-10-21 | Read directly |

## JKCA choices (not facts; label them as house spec)
- Minimum print widths (1 in for menus and tents, 2 in for windows and posters), error level M, no center logo, 9 pt URL line, 0.125 in bleed, the 14-day change window, and the 10-code cap. These are studio decisions for Critic and json, not industry figures.

## Not verified
- **r/restaurantowners 1svjq2o and r/restaurateur 1wjtcji**: Reddit blocks the box. Search snapshots only. Not quoted.
- **Bitly Core $10/month** (from the research): bitly.com/pages/pricing loaded, but the box couldn't read a price. Not used.
- **Local demand in Seal Beach and Belmont Shore**: unsourced (no local complaint found). Not claimed.
