Scientific Laboratory Observation Log Markdown Table Template
A lab observation log in Markdown is the readable summary of a set of runs: which sample was run under which conditions, what it produced, and what the experimenter saw. It lives in a group wiki, a repository README for an analysis project, or the supplementary notes of a paper, and it lets a colleague see at a glance which conditions were tried, which were replicated, and where something went wrong.
Edit This Template
Edit cells, add rows, or sort — the Markdown updates livePaste cells from Excel or Google Sheets into the first header to replace the table · Tab / Enter / arrows move · Shift+F10 opens row & column actions
When to Use This Table
Its readers are the people who will repeat or build on the work: a lab mate taking over a project, a PI reviewing progress, a reviewer checking that a claimed trend is backed by replicates. The decisions it supports are practical — which temperature to scale up at, whether a result is reproducible enough to report, which run should be excluded and why. For that, every number must carry its unit and every row must trace back to the primary record in the notebook or electronic lab notebook.
What separates a good log from a weak one is honesty and traceability. A good log records failed and odd runs alongside successful ones, keeps measurement precision consistent with the instrument, puts units in the headers, and uses sample IDs that encode the condition. A weak log reports only the best yields, rounds inconsistently, and offers notes like “looked good” that nobody can act on six months later.
Formatting This Table in Markdown
A scientific laboratory observation log table puts a few things in cells that Markdown treats as syntax. These are the ones to watch so it renders correctly on GitHub, GitLab, Obsidian and docs sites.
Type °, ± and µ as Unicode characters
Write
°C,±1%andµLwith the real characters; stand-ins likedeg,+/-or^olook wrong and are harder to search. The micro sign µ (U+00B5) and Greek mu μ (U+03BC) look identical, but a plain-text search for one does not find the other, so use one throughout.Use sub and sup tags where Unicode runs out
Unicode covers H₂O and Ca²⁺, but its subscript letters are limited to a few. For cases like
K<sub>sp</sub>or<sup>13</sup>C, GitHub renders the tags inside cells, but only outside code spans; in backticks they print as text.Write trial numbers without a leading hash
In GitHub issue, pull request and comment bodies,
#1or#2in a cell becomes a link to that issue or PR (files in a repository are not auto-linked). Keep the#in the header, as in Trial #, and write plain1and2, with IDs likeSMP-A1in code spans.Show missing readings and ranges explicitly
GFM allows empty cells, but a blank Yield cell looks like a rendering error; write — or
n/aand give the reason in the notes column. Use an en dash for ranges (22–25) so they are not mistaken for a subtraction.
What Goes in Each Column
| Column | Alignment | What to put here |
|---|---|---|
| Sample ID | center :---: | A unique identifier in a code span that matches the label on the vial and the notebook entry, such as SMP-B2. Encode the condition group in the prefix (B = 35 °C series) so related runs sort together. Centered as a short code. |
| Trial # | center :---: | The replicate number within a condition, starting at 1 for each new condition. Combined with the Sample ID it shows how many replicates back each result. Centered because it is an index, not a quantity to compare. |
| Temperature (°C) | right ---: | The measured reaction temperature, not just the setpoint, to the precision your probe supports (usually one decimal place). Right-aligned with consistent decimals so 22.5 and 35.0 line up and drifts are visible. |
| Reaction Time (s) | right ---: | Elapsed time from a defined start event — reagent addition, reaching temperature — to quench or endpoint, in seconds as the header states. Define t = 0 once in the methods, then record whole seconds right-aligned. |
| Yield (%) | right ---: | Percent yield: isolated product mass divided by theoretical yield, times 100. The header already carries the unit, so cells can hold the bare number. Keep one decimal place across rows and right-align for comparison. |
| Quality Assessment | left :--- | A short, factual observation: appearance, purity result, byproducts, deviations from protocol. Name the measurement behind any claim (“HPLC purity 98.1%”) rather than adjectives, and note anything that might justify excluding the run. |
How to Fill It In
- 1Copy values from the primary record — the bound notebook page, ELN entry, or instrument export — never from memory or a draft slide. Add the notebook page or ELN entry ID somewhere on the page so each row can be traced.
- 2Recalculate derived numbers. Recompute percent yield from the recorded masses and the limiting reagent before entering it; a yield above 100% usually means residual solvent or impurity and deserves a note, not a correction.
- 3Check precision against the instrument. If the thermometer reads to 0.1 °C and the balance to 0.1 mg, the table should not show more digits than that implies, and every row should use the same number of decimals.
- 4Enter every run, including failed or aborted ones, with a reason in Quality Assessment. Excluded runs stay in the log; you exclude them from analysis, not from the record.
- 5When replicates are complete, add a summary table or move to the hypothesis testing template to report whether differences between conditions are statistically meaningful.
Ready-to-Paste Variations
Replicate summary by condition
Collapses the per-run rows into one line per condition. Values here are computed from the template’s sample runs; SD is the sample standard deviation.
| Condition | Temperature (°C) | n | Mean Yield (%) | SD (%) |
| :--- | ---: | :---: | ---: | ---: |
| Series A | 22.5 | 2 | 84.7 | 0.6 |
| Series B | 35.0 | 2 | 92.1 | 0.4 |
| Series C | 50.0 | 1 | 71.0 | n/a |Traceable run log with setpoint and measured values
Adds the fields an auditor or new lab member needs: date, operator, reagent lot, and the gap between what was set and what was measured.
| Run | Date | Operator | Reagent Lot | Setpoint (°C) | Measured (°C) | Notebook Ref |
| :---: | :---: | :--- | :--- | ---: | ---: | :--- |
| `R-014` | 2026-03-02 | J. Okafor | `LOT-2291` | 35.0 | 35.1 | NB3 p. 42 |
| `R-015` | 2026-03-02 | J. Okafor | `LOT-2291` | 35.0 | 34.8 | NB3 p. 43 |
| `R-016` | 2026-03-04 | M. Silva | `LOT-2307` | 50.0 | 50.3 | NB3 p. 45 |Microbiology plate count log
The same structure adapted for serial dilution plating. CFU/mL = colonies ÷ (dilution × volume plated); plates outside the 30–300 colony range are flagged rather than used.
| Plate | Dilution | Volume Plated (mL) | Colonies | CFU/mL | Note |
| :---: | :---: | ---: | ---: | ---: | :--- |
| `P-1` | 10⁻⁵ | 0.1 | 152 | 1.52 × 10⁸ | Within countable range |
| `P-2` | 10⁻⁶ | 0.1 | 18 | — | Too few to count, excluded |
| `P-3` | 10⁻⁴ | 0.1 | >300 | — | Too numerous to count |Common Mistakes
Repeating the unit in every cell, such as
84.2%under a Yield (%) header.Units belong in the header once. Bare numbers sort, align, and export to CSV cleanly; percent signs and unit suffixes in cells have to be stripped before any analysis.
Logging the setpoint as if it were the measured temperature.
Record what the probe read during the run, or add separate setpoint and measured columns. Temperature drift is one of the first things anyone checks when a replicate does not match.
Leaving out failed runs to keep the table tidy.
Silent omission makes results look more reproducible than they are. Keep the row, state what failed, and mark it excluded with a reason so readers can judge the decision.
Writing vague quality notes like “good” or “some impurity”.
Name the observation and its source: “pale yellow solid; TLC shows one minor spot at Rf 0.4” is useful to the next person, “some impurity” is not.
Reporting more decimal places than the measurement supports.
Match the precision of the least precise input. A yield calculated from a mass weighed to 0.1 mg on a 200 mg product supports about one decimal place in the percentage, not three.
Related Markdown Table Templates
Browse all 50 templatesHypothesis Testing & Statistical Analysis
Summarize inferential statistical hypotheses, sample sizes, degrees of freedom, test statistics, p-values, and empirical conclusions.
Trigonometric & Mathematical Constants Table
Reference table for standard trigonometric circle angles, radians, exact fractions, and decimal approximations for math and physics.
Security Advisory & CVE Vulnerability Matrix
Track security advisories, CVE identifiers, CVSS v3 ratings, affected library versions, patched releases, and remediation guidance.
Scientific Laboratory Observation Log: Frequently Asked Questions
Can a Markdown table replace a lab notebook?
No. The notebook or a validated ELN is the primary, dated, attributable record. A Markdown table is a convenient summary for sharing and version control, and each row should point back to the page or entry where the raw data lives.
How many replicates should each condition have?
Enough to estimate variability: at least two, and three or more if you plan to compare conditions statistically. The right number depends on the expected effect size and the run-to-run variation, which a power calculation can estimate from pilot data.
Why would percent yield exceed 100%?
Almost always because the isolated product still contains solvent, water, or byproducts, or because the theoretical yield was miscalculated. Dry the product to constant mass and check purity before reporting; leave the original value in the log with a note.
How do I show chemical formulas or equations in the table?
Unicode subscripts (H₂O) work everywhere. On GitHub you can also use inline math with dollar signs inside cells; see the math and LaTeX syntax page for the delimiters and the pipe-escaping rules that apply inside formulas.