Last modified: 2026-11-05 16:37:15 (PST)
Effective organization helps readers navigate your scientific paper and understand your findings. The structure of your paper should guide readers logically from your research question through your methods to your results and conclusions.
Write down a question or an idea as soon as you have it, before you search for an answer. Writing it down helps you in these ways:
The computer scientist Leslie Lamport argues that a person who thinks without writing only thinks that they are thinking (Lamport 2019).
Most scientific papers follow the IMRaD structure:
Some papers combine Results and Discussion into a single section.
The Results section presents your findings clearly and logically. How you organize this section depends on your research design and the complexity of your analyses.
When analyzing a single primary outcome, organize results by:
When analyzing multiple outcomes separately, group your results section by outcome rather than by analysis type. This organization improves clarity and readability by keeping all information about each outcome together.
Grouping by outcome helps readers:
For each outcome, present:
Structure:
Results
├── Outcome 1: Mortality
│ ├── Descriptive statistics
│ ├── Main analysis
│ ├── Sensitivity analyses
│ └── Subgroup analyses
├── Outcome 2: Hospital readmission
│ ├── Descriptive statistics
│ ├── Main analysis
│ ├── Sensitivity analyses
│ └── Subgroup analyses
└── Outcome 3: Quality of life
├── Descriptive statistics
├── Main analysis
├── Sensitivity analyses
└── Subgroup analyses
Don’t group by analysis type when outcomes are analyzed separately:
Results (POOR ORGANIZATION)
├── Descriptive statistics
│ ├── Mortality
│ ├── Hospital readmission
│ └── Quality of life
├── Main analyses
│ ├── Mortality
│ ├── Hospital readmission
│ └── Quality of life
└── Sensitivity analyses
├── Mortality
├── Hospital readmission
└── Quality of life
This forces readers to jump back and forth between sections to understand the complete story for any single outcome.
If your descriptive statistics apply to all outcomes (for example, baseline characteristics in a clinical trial), present them once at the beginning before discussing individual outcomes.
In a reading copy (a website, a preprint, or a draft circulated to coauthors), place figures and tables near the relevant text that describes them. A journal submission often needs a different layout (Section 4.3). Either way, number figures and tables sequentially and reference them in the text before they appear.
Each figure and table should have a clear, informative caption that allows readers to understand it without reading the main text.
A figure or table is read by people, not by the code that made it. Replace every variable name from the data with a label a reader understands:
Use the same label for a variable in every figure, table and paragraph, so a reader can match them up.
Example 1 (Relabeling axes and a legend)
❌ x-axis
age_yrs, y-axissbp, legendtrt_grp:ctrl,tx✅ x-axis “Age (years)”, y-axis “Systolic blood pressure (mm Hg)”, legend “Treatment group”: “Control”, “Treatment”
In R with ggplot2, set the axis and legend titles with labs(), and recode the category levels before plotting, for example with forcats::fct_recode().
Give every figure and table a numbered caption, including those in the supplementary material. A table without a caption is incomplete, even when its contents are correct.
Attach each caption to its figure or table with your writing tool’s caption feature (in Quarto, the last line of a #fig- or #tbl- div), not as a section heading.
Poor caption: a section heading that reads “Supplementary Figure S43: Distribution of follow-up time”, placed above the figure
Better caption: “Distribution of follow-up time”, written as a caption attached to the figure, with its label and number generated by your writing tool rather than typed by hand (a supplementary “S” prefix may need extra setup in the tool)
A heading posing as a caption usually appears in the table of contents, takes on heading styling, and is not attached to its figure. Its number is typed by hand, so it falls out of step with the real numbering when figures are added, removed, or reordered.
Many journals ask for figures and tables to follow the main text of a submitted manuscript rather than appear inline. Unless the journal’s instructions say otherwise, lay out a submission manuscript as follows:
In Quarto, the {{< pagebreak >}} shortcode inserts a page break in PDF and Word output, and a ::: {#refs} div places the references where you put the div instead of at the end of the document. Write the figures and tables after that div.
Captions, page breaks, and figure placement are properties of the rendered document’s layout. Problems with them are easy to miss when reading the source, and a check of the text and numbers alone will not catch them. Before calling a rendered manuscript reviewed, page through the PDF or Word output and check its layout, not only its text and numbers:
Use descriptive subsection headings to guide readers through your results. Headings should clearly indicate the content of each section.
Poor heading: “Analysis 1”
Better heading: “Association between treatment and mortality”
Best heading: “Treatment reduced mortality by 30%” (when appropriate and not overstating findings)
Write each heading as a verb phrase that names what the section does, such as “Interpreting the coefficients”, or as a plain statement of the result, as in the best heading above. Prefer the verb to a noun made from it: “Interpreting the coefficients” rather than “Interpretation of the coefficients”. A heading is not a question and does not tease the answer. Do not begin a heading, or a phrase after its colon, with who, what, when, where, why, how or which.
Poor headings:
Better headings:
A page’s title is not a numbered level, so the sections of the page start at level 1. A page whose sections start at level 2 numbers them 0.1, 0.2 and so on under number-sections: true. Each heading is at most one level deeper than the heading before it. Three mistakes break this outline:
### heading directly after a # heading leaves a missing level 2, so the table of contents shows a gap and section numbers can read 1.0.1.page.html#sec-newton, keep that link working with an empty anchor such as []{#sec-newton} at the top of the page. The anchor adds an empty paragraph, and a Quarto @sec-newton reference does not resolve through it, so a page that uses such a reference keeps its heading instead.The #### title of a definition, example or exercise div is not a heading in this sense.
The check-heading-levels workflow in Morrison-Lab/gha flags these three mistakes on the heading lines a pull request adds.
A forward reference points the reader to content they have not reached yet. Common forms are:
The reader must hold an unresolved pointer while reading the sentence that depends on it.
Fix a forward reference by moving the content ahead of the pointer, so that each definition or result precedes the sentences that use it. Then change “below” to “above”, or delete the directional word. Do not fix a forward reference by removing the hyperlink to the later definition or theorem while leaving the term in the sentence: the sentence still uses a concept the reader has not encountered, and the reader also loses the link to its definition.
If moving the content would break the order of the argument, keep the pointer, and make it a working link. Say what the link points to and where it is, as in “Table 2 (later in this section)”, with “Table 2” linked to the table. Do not delete the link and leave only the name. The reader then loses both the warning and the jump.
Example 2 (Removing a forward reference)
❌ The adjusted estimates, discussed in the next section, differ from the crude estimates. The adjustment, described below, uses age and sex.
✅ The adjustment uses age and sex. The adjusted estimates differ from the crude estimates.
In the ❌ version, both pointers send the reader to content that comes later, so the reader sees “adjusted” before the paper says what was adjusted. In the ✅ version, the sentence that defines the adjustment comes first, so neither pointer is needed.
Three cases are not forward references to fix:
A word such as “below” in an ordinary comparison, as in “values below the detection limit”, is not a pointer at all.
When you insert or move a section, check the references that name a position, such as “the two sections above”, “the previous section”, or “the next exercises”. Name the target instead, as in “the sections on mortality and morbidity”, so that a later insertion does not make the position wrong. When the target has a cross-reference label, link it instead of describing its position: write “Exercises @exr-a through @exr-b establish the properties”, not “The next exercises establish the properties”.
Put each link to a video, podcast, demo or other external material in a short note right after the text the material supports. Do not collect the links in a list at the end of the document. If the material covers several sections, put the note after the first section the material supports. If the text the note supports is a question followed by its answer, put the note after the answer, not between them.
A reader who has just finished a section is ready to use material about it. The same reader at the end of the document must guess which link goes with which section, and may never reach the list.
For each link:
Link public sites freely. Anyone can open them, so a link costs the reader nothing. Do not link private repositories, such as ones that hold graded homework or exams.