
This guide helps you prepare that table. It does not promise that Instagram Insights, an export, or a third party can recover missing history. Instagram Insights means account statistics available to an authorized account owner. Whether an existing owner record answers your question depends on its metric, dates, identity, and scope.
What does “over six months” mean?
One public question asks: “I need average likes, comments, views, shares over 6 months.” That wording gives a useful starting point. It does not define which posts, which observation dates, or which kind of average the report needs. It is one question record, not evidence of demand volume or product use. Public reporting question, retrieved August 11, 2026; one question record only.
A metric is the quantity you measure, such as likes or comments. Before searching for records, separate three possible requests:
- Counts observed at each month end.
- Interactions gained during each month.
- Current counts for posts published during a six-month period.
These requests need different evidence. An old post with a count collected today can support the third request. Its publication date does not make today's count a past month-end reading.
An average also needs a defined group and a known number of included records. Missing readings can change that group. Do not quietly replace a six-month request with an average of the few records you found.
Public counts and owner-only statistics also have different scopes. Check each requested metric separately. Finding usable public likes does not establish usable shares, views, or comments for the same dates.
1. Write the exact request before searching
A boundary is the exact time at which a requested period starts or ends. “January month end” needs a defined time and time zone before you can judge a real record against it.
Write a short request sheet with these details:
- List the requested accounts.
- Define the posts included in the report.
- Name each metric separately.
- List the six requested month boundaries and their year.
- State the time zone.
- State whether the request needs boundary counts, monthly activity, or current counts.
- State whether the result must contain exact counts.
Keep a known-post list when the request concerns individual posts. Save each post's account identity and post identity. If you cannot prove that the list covers every requested post, state that limit.
For account-level records, keep their account-level scope. Do not turn an account total into individual post readings. Likewise, a few known posts do not establish full account coverage.
Historical backfill means filling earlier report cells from existing evidence. It must preserve the original question. If you later propose a smaller period or fewer posts, describe that as a revised deliverable. Do not change the requested unit while filling the table.
2. Search existing owner records and earlier reports
Start with records that could already contain the required history. A new collection of public counts cannot supply an observation that nobody saved.
Use this search order:
- Review existing owner exports and saved owner reports.
- Review dated screenshots with their supporting context.
- Review earlier authorized reports and saved public readings.
- Keep the original files and record where each came from.
- Check each candidate record against the request sheet.
An observation is a reading made at a known time. Check the observation time separately from the file's creation time. A file created in October can contain a January report. Its creation time alone does not prove when the displayed metric was observed.
For each record, check the metric label, account, post identity, period, and observation time. Record the source's stated scope. Do not assume a report includes every post because its title names an account.
Also distinguish a lifetime count from an activity-period total. A lifetime count is the count accumulated through an observation time. An activity-period total covers activity within a stated period. Two records labeled “likes” can still describe different quantities.
If a record has a number but lacks the time needed for your request, retain it as partial evidence. Do not discard its useful context. Do not promote it to a supported month-end reading either.
3. Build the availability table
Create one row for each requested account, metric, and boundary. Add a separate post identity when the request concerns individual posts. For six boundaries on one post and one metric, the table needs six rows even if you find only two readings.
The following are proposed fields for your report. They are not native output fields from the Instagram Metrics Scraper.
| Saved field | What to record |
|---|---|
| `account_identity` | The requested account and the identity supported by the source |
| `post_identity` | The requested post identity, when the request is post-level |
| `requested_boundary` | The requested date, time, and time zone |
| `source_record` | The original file or report reference and its location within that record |
| `source_observation_time` | The time the source proves, or an explicit unknown value |
| `metric_label` | The source's metric name and its meaning |
| `metric_value` | The supported number, or a missing value |
| `precision` | Whether the value is exact, rounded, unavailable, or unresolved |
| `identity_check` | Whether the source matches the requested account and post |
| `usable_for_request` | Whether the evidence supports this specific requested reading |
| `gap_reason` | Why the reading is missing or cannot yet be used |
Precision means how exactly a value is known. A rounded display is not an exact count. Keep the original display where it helps explain the limit.
Do not use an empty cell to mean several things. Distinguish no record, unknown time, wrong metric, unresolved identity, and unavailable count. These states need different follow-up work.
Zero is a numerical reading. Missing means you do not have the required reading. Enter zero only when evidence supports zero for the requested metric and time.
Keep source values separate from your decision about their use. A record can contain a valid number while failing the requested time check. That number remains source evidence, but it does not belong in the requested historical count cell.
4. Decide which records support the request
Use three evidence groups:
- Usable historical evidence: The record supports the requested identity, metric, time, and required precision.
- Partial evidence: The record contains useful information but lacks a required check.
- Missing evidence: No available record supports the requested reading.
Review each row on its own. A good January record does not validate a March record from another source. A correct post identity does not prove the observation time. A known observation time does not resolve a different metric label.
For a requested monthly change, you need compatible readings at both boundaries. Alternatively, an owner period total may support the request if its definition matches the required activity period. Check that definition before using it.
Do not estimate a missing social count by drawing a line between known readings. Do not work backward from today's cumulative count. Neither action creates evidence of the missing boundary.
Counts also do not automatically measure people. In particular, a public view count is not a count of unique people. Keep the report's unit attached to each value.
If the request later needs monthly changes, use the guide to separating old and new Instagram posts in a monthly view report. It explains the checks for saved boundary pairs. First finish this availability review so you know which readings actually exist.
5. Work through six requested boundaries
The following example is original fiction. It is not a platform test, Actor result, or customer result.
The request is six month-end public-like readings for one known post, P1, from January through June. The example treats two records as usable for their requested boundaries. It does not supply timestamp strings or precision flags. Do not invent those details when adapting the table to real records.
| Requested boundary | Existing evidence | Usable historical likes | Decision |
|---|---|---|---|
| January month end | Dated owner record with matching metric and ID | 100 likes | Usable boundary reading |
| February month end | No record | Missing | Keep the gap |
| March month end | Dated matching public snapshot | 180 likes | Usable boundary reading |
| April month end | No record | Missing | Keep the gap |
| May month end | Screenshot contains a count, but its observation time is unproven | Missing for this boundary | Retain as partial evidence |
| June month end | No record | Missing | Keep the gap |
A snapshot is a saved reading at one observation time. The March snapshot supports March only because the example states that it matches the requested boundary and identity.
The May screenshot is different. It contains a count, but the example does not supply that number or prove its observation time. Do not copy an invented number into the table. Keep the screenshot reference and state that its timing remains unresolved.
Check the requested boundary count:
2 usable boundary readings + 1 timing-unresolved record + 3 missing records = 6 requested boundaries.
Now check the unsupported part:
1 timing-unresolved boundary + 3 boundaries with no record = 4 unsupported boundaries.
These units are boundary readings and requested boundaries. They are not people, posts, or monthly increases.
Suppose a new October observation shows 300 likes for P1. That number remains an October reading. It fills none of the four unsupported historical boundaries. It also does not resolve the May screenshot's date.
The supported decision is to deliver the January reading of 100 likes and the March reading of 180 likes, together with all four unsupported boundary rows. Do not report six exact month-end counts. Do not claim an unsupported monthly increase.
The two supported readings also do not establish a six-month average of month-end likes. Such a result would require evidence for the requested set of readings. An average based only on available records would answer a different question and would need its own clear label.
6. Use current public collection only for current context
A current check can help match a known public post to its returned identity. Keep that reading in a separate current-observation table. It must not fill a historical boundary cell.
An Actor is a hosted program that collects data. The Instagram Metrics Scraper's checked public contract documents direct content inputs and public metric fields. This is documented fit for a current collection step. No collection run or historical recovery test was performed for this guide. Instagram Metrics Scraper, contract checked October 25, 2026; documented public collection fit only, no runtime test.
Use the supplied small input as the starting form:
{"maxItems":1,"mode":"contentUrls","startUrls":["https://www.instagram.com/reel/DIwcCZgxVZP/"]}JSON is a text format for structured data. In this input, `mode` selects input handling. The value `contentUrls` selects direct post or Reel URLs. A Reel is an Instagram video format. The field `startUrls` holds the content addresses. The field `maxItems` sets the maximum number of metric rows.
Follow these steps if you choose to make a current check:
- Replace the sample URL with one known public post or Reel URL.
- Replace the sample list rather than adding your URL beside it.
- Keep `mode` set to `contentUrls` and `maxItems` set to 1 for this one-item check.
- Compare the returned `postId` and `postUrl` with the intended post.
- Inspect `status`, `statusReason`, and the relevant `postMetricStatus` entry.
- Save `scrapedAt` with the current reading.
- Keep the result outside the historical boundary table.
The field `publishedAt` describes publication time. The field `scrapedAt` describes collection time. An old `publishedAt` value cannot turn a new collection into an old observation.
The documented output includes public likes, comments, views, identities, collection time, and status information. Its schema has no private reach, saves, shares, or historical boundary count field. That scope does not establish what another authorized owner source may contain. Public build 1.0.35, checked October 25, 2026; static input and documented output evidence, no paid run.
The public contract also supports profile discovery, which finds public recent content from profile inputs. That does not prove complete account history. This method uses a known content URL instead.
A Task is a saved input preset. The public Instagram Brand Campaign Metrics Task can provide a starting page. The supplied check established page presence only. It did not verify authenticated saved settings or run the preset. Instagram Brand Campaign Metrics, checked October 25, 2026; public page presence only, saved settings and runtime unverified.
7. Check the report before delivery
Deliver the supported historical readings and a register of all missing or unresolved boundaries. The register is part of the result. It shows what the evidence cannot support.
Use these final checks:
- Confirm that every requested account, post, metric, and boundary has a row.
- Confirm that every usable value points to an original source record.
- Confirm that observation times support the requested boundaries and time zone.
- Confirm that metric labels describe the same requested quantity.
- Confirm that exact results exclude unresolved or rounded values.
- Confirm that missing values remain missing rather than becoming zero.
- Confirm that current observations appear separately from historical readings.
- Confirm that the number of usable, partial, and missing rows equals the number requested.
Treat a wrong identity, unknown observation time, incompatible metric, or inadequate precision as a failed acceptance check. Keep the reason visible. A failed check does not mean the source has no value; it means the source does not yet support that requested cell.
State the exact covered accounts, posts, metric, and windows in the delivery note. List unresolved checks. Do not describe a selected-post report as complete account history.
If the full six months remain unsupported, offer a smaller supported deliverable. In the fictional example, that means two historical readings and four explicit gaps. Do not call those two readings a continuous six-month history.
After documenting the gap, plan future saves. The guide to saving Instagram metric snapshots without duplicate imports explains how to preserve later observations. Future storage protects future reports; it does not repair the missing past.
Sources & further reading
- Public six-month analytics question, retrieved August 11, 2026; one public question, no demand estimate or verified product use
- Instagram Metrics Scraper, contract checked October 25, 2026; documented public collection scope, no runtime or historical recovery test
- Public default build 1.0.35, checked October 25, 2026; input schema and documented output fields only, no paid run
- Instagram Brand Campaign Metrics Task, checked October 25, 2026; public page presence only, saved settings not authenticated and preset not run
By Chronometrica · Updated
Back to top ↑