Changelog

What has shipped

Every change that reached production, newest first. Written for people who use the site, so refactors and dependency updates are left out.

Version
0.15.0
Commit
7f0a127
Deployed

The commit above is the one this page was built from, so it is exactly what you are looking at. The API reports its own at /api/version — if the two differ, a deploy is mid-flight or one half failed.

0.15.0

Added

  • A plain-English explainer at `/insights/what-is-a-data-warehouse`: what a data warehouse is, how it differs from an application database and a data lake, the six decisions to write down before building one, and the signs you do not need one yet. It hands off to the BigQuery and dbt tutorial for the build itself.
  • A free analytics engineer job description at `/insights/analytics-engineer-job-description`, with what the role does, when it is the right hire, and a template to copy from the page or download as Markdown. The parts only you can fill in, such as the salary range, are in square brackets.
  • A guide at `/insights/reporting-layer-metrics` on where metric logic should live between the warehouse and the BI tool, how to define each metric once, and the checks that stop dashboards drifting apart.

Changed

  • The BI and reporting service now points at the reporting layer guide and the KPI definition template, the BigQuery tutorial links to the data warehouse explainer, and the first data hire guide links to the job description template.

0.14.0

Added

  • A free worked example at `/insights/star-schema-example` for designing reporting tables before testing or reporting on them. It explains facts, dimensions, keys and grain on one fictional shop's customers, products, orders and order lines, and shows why an order total repeated on each line and summed comes out too high.
  • One BigQuery Standard SQL script to download or copy block by block, with all the fictional data inline. It runs the naive join first, so the inflated revenue (304.95 against a true 190.55) and shipping (29.40 against 14.70) are visible as numbers, then builds customer and product dimensions, an order-line fact and an order fact with their grains written down, and reports revenue by customer and by product. Every result has its expected output next to it. It reads none of your tables.
  • A diagram of the tables and keys, notes on orders with several lines, measures at different grains, unknown customers versus missing orders, current attributes versus history, and when a flat table is enough, plus a worksheet to print for your own fact grain, dimensions and measures. The analytics engineering service and `/insights` now link to it.

0.13.0

Added

  • A free SQL guide at `/insights/sql-data-reconciliation` for when two tables should agree and do not, or agree on the total and you are not sure that means anything. It walks through agreeing grain, key, population and time window, checking keys are unique before any join, comparing totals, finding missing, extra and changed rows, and tracing a difference source → model → report one boundary at a time.
  • One BigQuery Standard SQL script to download or copy block by block. It runs as it is on invented orders, planted with a missing order, an extra one, a duplicate key, a status that is NULL on one side and two amount errors that cancel in the grand total, and every result has its expected output written next to it so you can check a run before adapting it. Duplicate keys are reported and excluded, never quietly deduplicated, and the NULL policy and tolerance are stated in the code. It reads none of your tables.
  • An adaptation worksheet for table names, key, date scope, population, compared measures and tolerances. The analytics engineering service, the reconciliation case study and `/insights` now link to the guide.

0.12.0

Added

  • A free KPI definition template at `/tools/kpi-definition-template` for teams whose dashboards disagree about the same metric. Fill in one definition — name, the decision it informs, the accountable owner, the formula in plain words, unit, grain, sources, who is included and excluded, the reporting window, timezone, freshness and known caveats — and see it as a readable document as you type.
  • Copy or download the definition as Markdown for your team's docs, as CSV for a spreadsheet, or print it and save it as a PDF. Line breaks and quotes in what you type survive every export. Nothing you enter leaves your browser, and there is nothing to sign up for.
  • Two illustrative starting points, net revenue and active customers, each with its assumptions spelled out (refund timing, tax and currency, which actions count and over what window), a worked example of two reasonable definitions giving different numbers from the same data, and a short checklist for getting the definition approved and reconciled. The blank template and both examples are readable without JavaScript, and the blank template downloads as CSV.
  • The analytics engineering service, the reconciliation case study, `/tools` and `/insights` link to it.

0.11.0

Added

  • A free decision guide at `/insights/first-data-hire-vs-fractional-data-lead` for founders choosing a first data hire: how to tell whether you are short of hands or short of direction, and a comparison of a data analyst, an analytics engineer, a data engineer, a full-time head of data and a fractional data lead — what each solves, what it needs in place first, what it does not solve and when it is the wrong choice. It says plainly when the answer is an internal hire or no hire yet.
  • Three illustrative scenarios (invented, not clients) — a reporting backlog, unreliable pipelines and a capable team without direction — each ending in a role choice and what the first 90 days should deliver, plus a short decision worksheet.
  • A free hiring brief template to download as CSV, with rows for the problem, evidence, role, first-90-days outcomes, dependencies and decision owner. No sign-up needed, and the guide prints cleanly or saves as a PDF.
  • The fractional data lead service and `/insights` link to it.

0.10.0

Added

  • A free Snowflake warehouse cost calculator at `/tools/snowflake-warehouse-cost-calculator`: for up to five warehouses, put in the size, Gen 1 or Gen 2, clusters, hours of queries and resumes a day, and the auto-suspend, and see the credits and cost a month for each and in total, plus storage. It shows how much of the bill is idle time before the warehouse suspends (with the 60-second minimum per resume applied), what auto-suspend at 60 seconds would save, and what one size down would cost if queries took twice as long. Prices are Snowflake's on-demand list prices in AWS US East for Standard, Enterprise and Business Critical, or your own contract price, each linked to its source with the date it was checked. A result can be shared as a link.
  • One copy-paste query on the same page reads `SHOW WAREHOUSES`, `WAREHOUSE_METERING_HISTORY` and `WAREHOUSE_EVENTS_HISTORY` and returns every warehouse's inputs, its last 30 days of credits and measured idle share, with a link that opens the calculator filled in.
  • The method, the credits-per-size table, a worked example and an FAQ are written out on the page, so it reads without JavaScript.
  • The three warehouse cost guides, the data stack audit and the warehouse cost estimator link to it.

0.9.0

Added

  • A free BigQuery cost calculator at `/tools/bigquery-cost-calculator`: put in the TiB your queries bill a month, the slots they keep busy, or both, and see the monthly cost on-demand and on Standard, Enterprise and Enterprise Plus, with or without a 1- or 3-year slot commitment, plus storage. It gives the break-even point in TiB and in average slots and a one-line verdict, and a result can be shared as a link. Prices are Google's US multi-region list prices, each linked to its source with the date it was checked.
  • One copy-paste query on the same page reads your last 30 days from `INFORMATION_SCHEMA.JOBS` and opens the calculator with your real numbers.
  • The method, the formulas and a worked example are written out on the page, so it reads without JavaScript.
  • The spend guide, the data stack audit, the warehouse cost governance case study and `/insights` link to it.

0.8.0

Added

  • `/insights/warehouse-cost-from-query-history`: copy-paste SQL for BigQuery, Snowflake and Redshift Serverless that reads your own query history and returns the estimator's inputs, including your measured Snowflake scan speed in place of the 3–8 GB a minute assumption. Every query ends in a link that opens the estimator with your numbers, and a second query per platform prices what you were actually billed so you can check the estimate. Code blocks have a Copy button.
  • The comparison, the spend guide and the estimator's scan-speed inputs link to it.

0.7.0

Added

  • `/insights/bigquery-vs-snowflake-vs-redshift-cost`: three illustrative workloads, from an early-stage product to a mid-market data platform, priced on BigQuery, Snowflake and Redshift Serverless at list price, each next to the same workload with incremental models and slower dashboard refreshes. Every figure comes from the same code as the estimator, every rate links to its source, and each workload opens in the estimator so you can change it.
  • The estimator links to the comparison as a starting point, and its analytics event now records which page on this site a visitor came from, so estimates started from the comparison can be counted.

0.6.0

Added

  • A free warehouse cost estimator at `/tools/warehouse-cost-estimator`: describe your data, scheduled jobs, dashboard refreshes and ad-hoc queries, and see a monthly estimate for BigQuery, Snowflake and Redshift Serverless at list price, split by where the money goes, with what incremental models and slower refreshes would save. Every rate links to the vendor's pricing page with the date it was checked. It runs in your browser, and a result can be shared as a link.
  • `/tools`, a home for free tools like it, linked from the header and footer.

0.5.0

Added

  • A form at `/new_app` for starting a new project: describe the idea, pick the capabilities it needs, and it files a ticket that an automated session turns into a repository, a deployed site and a working deploy pipeline.
  • `/changelog` — this page — with the version and commit currently in production.

Changed

  • Naming help on `/new_app` no longer calls a language model. It checks the names you are considering against GitHub and DNS instead, which costs nothing and needs no API key; the deeper market research happens in the session that picks up the ticket, which can search the web.

Fixed

  • Subdomains of `lp-data.cloud` with nothing behind them were serving an unrelated website. They now redirect to HTTPS and fail honestly.
  • Merges to `main` deploy for real. The deploy workflow had been reporting success without deploying anything since it was written in August.
  • Changes to the shared proxy configuration are now actually applied on deploy. They were being written to the server and silently ignored by the running container.

0.4.0

Changed

  • A merge only deploys once its build and checks have passed. Previously both started at the same time, so a broken build could still reach production.

0.3.0

Added

  • The site can be installed to a phone or desktop home screen and opened like an app, with its own icon and no browser chrome.

0.2.0

Added

  • `/capabilities`, an interactive map of what this practice covers.
  • A dashboard for tracking enquiries through a pipeline, with an activity log and reminders, behind a login.

Fixed

  • Feedback submissions are listed by their title rather than by the submitter's email address.
  • Enquiries were being accepted, answered with a success message, and then lost because the storage volume was not writable. Nothing reached the inbox and nothing reported an error.

0.1.0

Added

  • First public release: services, selected work, long-form guides, an about page, a contact form and a booking page.
  • A feedback form that files a report directly, and social preview cards for every page.

Security

  • Analytics default to consent denied, with advertising signals off.