
A TikTok Shop sample tracking spreadsheet should tell a seller which product went to which creator, whether it arrived, what content is due, and who needs to act next. It also needs to distinguish an unknown result from a confirmed zero.
Start with the fields below, then use a separate content-obligation ID to calculate posting rates. A two-SKU package may require one post, while a duplicate import should add neither cost nor another expected post.
We used this structure in a controlled Navos test with ten fictional records. The reviewed output retained all ten rows, separated eight follow-up tasks, and calculated a 75% posting rate for four eligible obligations. Those numbers describe the supplied example, not seller performance or an industry benchmark.
Copy This TikTok Shop Sample Tracker
Start with this header in Excel, Google Sheets or your team database:
row_id,sample_id,content_obligation_id,creator_id,creator_handle,SKU,sample_type,approval_date,ship_date,tracking_number,delivered_date,confirmed_deadline,extension_or_appeal_state,post_url,post_date,content_evidence_status,attribution_state,gross_attributed_orders,confirmed_refunded_orders,product_cost_usd,packing_cost_usd,shipping_cost_usd,owner,notes
These are the 24 input fields used in the test. Import the header as CSV so each field becomes a column. Keep IDs as text, use ISO dates (
YYYY-MM-DD), and retain UNKNOWN for missing values. The _usd fields are in US dollars; do not mix currencies in a cost total.Keep the imported sheet unchanged. Add review results on a working copy:
duplicate_flag, duplicate_of, lifecycle_status, metric_eligibility, exclusion_reason and next_action. Store as_of_date separately for each review. In the test export, the status column is named lifecycle_status_as_of_2026_10_19; rename it or create a new dated snapshot when reviewing a different day.For live operations, also add source references, measurement start/end dates, product-link checks and content-use permissions. These are recommended extensions to the template; they were not independently verified by the supplied-data test.
Use these field groups:
Group | Minimum fields | Decision it supports |
Identity | row_id, sample_id, content_obligation_id, creator_id, SKU | Is this a new record, another item in the same package, or a duplicate? |
Shipment | ship date, tracking number, delivered date, source reference | Has the creator actually received the product? |
Obligation | sample type, confirmed deadline, extension/appeal state | Is the obligation open, overdue, or under review? |
Content evidence | post URL, post date, evidence status, product-link status | Did qualifying content appear, and when was it checked? |
Cost | product, packing, shipping and replacement cost | What did the evaluated sample cohort cost? |
Attribution | state, gross orders, confirmed refunds, measurement window | Is a commercial result known, zero, or unavailable? |
Action | owner, next action, last update | Who is doing what next? |
Do not replace unknown values with zero.
Delivered date = unknown does not mean the package was lost. Attributed orders = unavailable does not mean the creator generated no orders.Use Native TikTok Shop Records as the Source, Not the Whole Workflow
TikTok Shop already provides native sample operations. In the US guidance reviewed on October 21, 2026, US seller guidance describes workflows for setting up samples, reviewing or automating approvals, arranging shipment, monitoring creator content and reviewing performance in Seller Center and Affiliate Center. Product-level Sample Settings can also control eligible SKUs and automated or manual quotas.
Some capabilities depend on the market, account and rollout. For example, TikTok Shop describes bulk post reminders as a beta feature that is not available to every seller. Its newer Automate Invitations feature is also being released gradually. Do not build your process on a button until it appears in the account your team actually uses.
The spreadsheet therefore should not imitate every platform field. Treat the platform record as the source for request, shipment, content and available performance data. Use the team tracker for the pieces that must travel across functions:
- the internal owner and next action;
- product, packing, shipping and replacement cost;
- content-use permission and expiry;
- exception notes and confirmation source;
- the cohort and measurement window used in a report;
- a decision to follow up, resample, pause or close.
If you need the wider collaboration setup before this operational layer, start with the TikTok Shop affiliate program for sellers. Keep this sheet focused on one job: following a sample from record to decision.
Build the Tracker Around Three IDs
Use stable IDs to connect each imported line to its sample request and content obligation.
row_id: one imported SKU line
Create a unique line ID for every imported SKU or variant line. You can call this field
sample_line_id in your own system, but keep a mapping to the original row_id. A new import ID does not prove a new sample: R06 and R07 in the example have different row IDs but matching sample, creator, SKU and tracking fields. If a creator receives a bottle and a replacement lid in the same parcel, two lines preserve the individual inventory and cost. This is especially important when one line has a replacement cost or a different content permission.sample_id: one request or order
The two SKU lines can share one
sample_id because they belong to the same source request or order. In this example they also share one package. If an order has split shipments, retain separate shipment IDs and tracking records; a sample ID alone does not establish package count.content_obligation_id: one expected content outcome
This is the metric key. If one post fulfills the agreement for both SKUs, both lines share one
content_obligation_id. Count that obligation once in the posting-rate denominator. If the agreement genuinely requires a separate post for each item, create separate obligation IDs and retain the evidence that supports that choice.Without this third ID, a two-SKU package can quietly become two expected posts in the report even when the creator only agreed to one.

Illustrative allocation from the test: keep both SKU costs without doubling the posting obligation.
Give Every Sample One Evidence-Based Status
A single “pending” label hides too many different problems. Use a small status dictionary tied to evidence:
Team status | Evidence required | Next decision |
Approved, not shipped | Approved request; no shipment confirmation | Assign shipment owner and due date |
In transit | Tracking event; no confirmed delivery | Monitor carrier record |
Delivery unknown | Shipment exists, but no reliable arrival date | Verify tracking or creator receipt before starting a deadline |
Within posting window | Confirmed delivery and a future confirmed deadline | Wait or send an eligible reminder |
Exception review | Extension, appeal, damage or product issue is unresolved | Confirm current obligation before escalation |
Posted, unverified | A link was supplied but not checked | Verify content, date and product link |
Posted, verified | Evidence checked as of a stated date | Close content obligation; review permissions and outcome |
Overdue, no verified post | Confirmed deadline passed; no unresolved exception | Follow up or close under team policy |
Closed | Final evidence and decision recorded | Preserve the audit trail |
For US free samples, the current TikTok Shop guide says the creator generally has 14 days after receiving the product to publish qualifying content. The Sample Integrity Policy also describes a one-time seven-day extension and an appeal path for a defective or unsatisfactory sample. Crucially, the current policy says sellers do not receive a notification when a creator requests an extension.
That means your sheet should not calculate every deadline from delivery and label the result final. Keep
confirmed_deadline and extension_or_appeal_state separate. If the state is unclear, route the record to exception review.Do not apply the free-sample posting rule to refundable samples or to a separate negotiated creator agreement. Record the sample type and the platform or contract terms that govern that row.

Calculate Rates Only After the Cohort Is Ready
A rate needs a numerator, a denominator, a review date and an exclusion list. Without all four, it is only a number.
Define evaluated free-sample obligations
For a simple internal follow-through report, start with unique, nonduplicate free-sample obligations that have a known delivery date and either:
- a verified post by the fixed review date; or
- a confirmed deadline before the review date and no verified post.
Exclude obligations still inside the posting window without a verified post, plus those with unknown delivery, an unresolved extension or appeal, or a different sample type. A verified early post can enter this internal evaluated cohort. Record the fixed date as
as_of_date so the same batch can be reproduced later.This is an internal reporting definition, not TikTok Shop's own fulfillment-rate formula. Because it admits early completions while leaving unfinished open-window obligations out, it is a snapshot rather than an unbiased comparison between creators. For comparisons over time, use consistent intake periods, sample types, maturity rules and attribution windows; do not rank creators on this four-obligation example.

Calculate verified posting rate
Use obligations, not sheet rows:
Verified posting rate = unique evaluated obligations with a verified post ÷ all unique evaluated obligations
Always print the count beside the percentage. “75%” is less useful than “3 of 4 evaluated obligations as of October 19.”
Calculate cost per verified post
For the cost definition used here, add
product_cost_usd + packing_cost_usd + shipping_cost_usd for every unique line in the evaluated cohort. If you need a broader cost measure, add separately evidenced replacement, creator-fee or other costs and label the expanded definition. Do not assume missing costs are zero. Include the cost of evaluated samples that produced no post; removing those rows hides the cost of the program.Cost per verified post = total sample cost for the evaluated cohort ÷ verified posted obligations
If the cohort has no verified posts, report the spend and
N/A. A division-by-zero error is not an operating insight.Keep commercial outcomes separate
A verified post is a content outcome, not a profit result. Keep these fields distinct:
- gross attributed orders;
- confirmed refunded orders;
- measurement start and end dates;
- attribution state: available, not yet measured, unavailable, or not applicable;
- the source and time of the export.
When definitions and windows match, you can state:
Known net attributed orders = gross attributed orders − confirmed refunded orders
This example uses the supplied refund count. If an export already excludes refunded orders, do not subtract them again. If cancellations and refunds overlap in your source, reconcile at order level before combining them.
Do not call that ROI. A profit calculation also needs revenue, COGS, fulfillment, commissions, platform fees, discounts and other relevant costs. If one evaluated sample lacks attribution, report attribution completeness and keep the cohort-level commercial conclusion open.
Route Exceptions Instead of Hiding Them in “Pending”
An exception queue turns incomplete data into work.
Delivery date unknown
Do not start the posting clock from the ship date. Check the platform order, carrier event or an authorized creator confirmation. Until then, use
DELIVERY_UNKNOWN and assign an owner.Duplicate rows
Compare source order, creator, SKU and tracking number. Keep the suspected duplicate visible, record
duplicate_of, and exclude it from totals. Deleting it immediately removes the evidence that explains why two people saw different counts.One creator, multiple SKUs
A repeated creator is not automatically a duplicate. The same creator may receive a different product, a later sample, or several SKU lines in one package. Check the IDs and source reference before merging anything.
Posted, attribution unavailable
If the post is verified, it can count in the content result. Its order value remains unknown. Do not write
0 merely to make a formula run.Returns after attributed orders
Preserve the gross order count and the return count. A report that overwrites four gross orders with two net orders loses the ability to explain what changed.
Extension or appeal under review
Move the record out of the overdue denominator until its current obligation is confirmed. This is especially important because the platform’s current US policy says sellers may not receive extension notifications.
What Our Navos Test Produced from Ten Sample Records
We tested a supplied-data workflow in Navos with ten fictional rows and a fixed review date of October 19, 2026. The reviewed V2 files were returned on October 21. Every creator, product, tracking number, content URL and amount was simulated.
VERIFIED_FOR_TEST was an input label, not a claim that Navos opened or verified a real TikTok post.The test produced an HTML report, a normalized tracker CSV and an exception-queue CSV. The reviewed tracker preserved all 240 original field values, including the notes, and added six analysis fields. It kept ten rows visible while excluding the suspected duplicate from totals. The exception export contained eight tasks; a sample can have more than one task, so task count is not sample count.
The input supplied the ID definitions, calculation rules and notes identifying several edge cases. This tested whether the workflow could apply those instructions consistently; it was not a blind test of issue discovery.
How the example was reconciled
The eight sample IDs corresponded to eight content obligations in this fixture. Seven were free samples and one was refundable. Their treatment was:
Source rows | Content obligation | Treatment at the review date | Cost included in evaluated free-sample cohort |
R01 | OBL-1001 | Confirmed deadline passed; no verified post. Count in denominator, not numerator. | $14.00 |
R02 | OBL-1002 | Posting window still open; no verified post. Exclude for now. | — |
R03 + R04 | OBL-1003 | Two SKU lines, one verified content obligation. Sum both line costs; count one post. | $14.00 |
R05 | OBL-1004 | Delivery unknown. Resolve delivery before evaluating. | — |
R06 | OBL-1005 | Verified for the test; attribution unavailable. Include in posting and cost metrics. | $24.00 |
R07 | Same OBL-1005 | Suspected duplicate of R06 with a different owner. Preserve for review; exclude from totals. | — |
R08 | OBL-1006 | Appeal or extension unresolved. Exclude pending confirmation. | — |
R09 | OBL-1007 | Verified for the test; four gross attributed orders and two confirmed refunds. | $13.00 |
R10 | OBL-1008 | Refundable sample. Track separately from the free-sample cohort. | — |
A dash means the cost is excluded from this calculation, not that the sample cost nothing. R03 contributes $12 and R04 contributes $2; the shipping charge was already assigned to R03. R04's zero shipping cost is a valid allocation, not a missing value.
The checked results
Metric | Calculation | Result |
Evaluated free-sample obligations | OBL-1001, OBL-1003, OBL-1005, OBL-1007 | 4 |
Verified posting rate | 3 posted obligations / 4 evaluated obligations | 75.0% |
Evaluated sample cost | $14 + $14 + $24 + $13 | $65.00 |
Sample cost per verified post | $65 / 3 | $21.67 |
Attribution completeness | 3 evaluated obligations with available order/refund data / 4 | 75.0% |
Known net orders, available subset | 0 + (5 − 1) + (4 − 2) | 6 |
The refundable sample contributed one known net attributed order separately. It was not added to the free-sample total. Its cost remained unknown.
The $65 includes the no-post sample and only the product, packing and shipping costs defined for this test. It is not total marketing spend. The $21.67 remains calculable despite missing attribution for OBL-1005 because its cost and posting status are known. Whole-cohort net orders, cost per order and ROI remain unavailable.

What needed human review
The first output required corrections to its follow-up language and metric explanations. Missing attribution had been described as affecting cost per post; the refund note went beyond the available evidence; and a valid multi-SKU cost allocation had been put in the exception queue. The revised files corrected those points. Two final report wording edits clarified an unmeasured attribution state and directed readers to the CSV for complete original notes; they did not change the CSVs or calculations.
For a seller, the useful outcome is a reviewable queue. In this example, the delivery record needs confirmation, the unresolved appeal needs a decision, and the duplicate needs an owner check. The two confirmed refunds call for a reason check; they do not establish creator misconduct.

Use the same approach on your records
If your current Navos Square library includes Ecommerce Hacks → Ecommerce Growth Creator Commerce Funnel, check that card before supplying your batch. The availability of that entry and its export options may differ from this test.
- Keep a source copy of the rows and choose a fixed review date. Remove personal addresses and other details the analysis does not need.
- Provide the ID definitions, cost allocation and sample types with the data. State that unknowns must remain unknown and that no store actions are authorized.
- Ask Navos to retain the original fields, flag duplicates, produce a separate exception queue and show each metric's included IDs and exclusions.
- Review the resulting CSVs and report against the original rows. Check both the arithmetic and the proposed next actions before using them.
A compact instruction for your own batch is:
Analyze only the sample rows I provide, as of [review date]. Preserve the original fields and notes. Use content_obligation_id to count posting obligations; keep separate SKU costs and exclude duplicate imports from totals. Evaluate only free samples with known delivery and either a verified post by the review date or a confirmed deadline before it. Exclude unresolved appeals/extensions and unfinished open-window obligations. Keep refundable samples separate. Return a normalized tracker, an owner-assigned exception queue and formulas with included/excluded IDs. Preserve unknown attribution, dates and costs; do not infer ROI or take platform actions. Provide CSVs and an HTML report if supported, and state any export limitation.
This test demonstrates the reviewed output for a small supplied dataset. It does not verify a shop integration, live shipment or content checks, automated messaging, approvals, or improved commercial results.
Run a Daily Exception Queue and a Weekly Review
The tracker is useful only when it changes the next action.
Each day:
- refresh shipment and platform evidence for records that changed;
- resolve delivery-unknown and damaged-item exceptions first;
- check approaching deadlines without treating an open window as a failure;
- verify new content URLs and product links;
- update one owner, one next action and one timestamp per open obligation.
Once a week:
- freeze the
as_of_dateand source exports;
- deduplicate rows while preserving the audit trail;
- separate open, exception and evaluated cohorts;
- calculate only metrics with complete definitions and evidence;
- decide which creators or products need follow-up, a new brief, a pause or a separate commercial review.
For the communication step, use a consistent influencer outreach SOP rather than letting different teammates send overlapping messages. If a future collaboration adds flat fees or usage rights, keep those terms in the influencer rate negotiation guide, not in an overloaded sample-status cell.
Frequently Asked Questions
What should a TikTok Shop sample tracker include?
Include an imported line ID (
row_id), source sample/order ID, content obligation ID, creator ID, SKU, sample type, shipment and delivery evidence, confirmed deadline, exception state, post evidence, cost, attribution state, owner and next action.When does the free-sample posting window start?
Current US TikTok Shop guidance ties the free-sample content obligation to receipt of the product. Use the confirmed delivery date and current platform record, not the approval or ship date. Check current account guidance because policies and interfaces can change.
Should I count samples still inside their posting window?
Keep unfinished open-window obligations out of the internal evaluated rate used here. A verified early post may enter it. For a fully matured cohort comparison, wait until all included obligations have reached their confirmed deadlines and resolve exceptions consistently.
How do I handle one package with several SKUs?
Use one line per SKU, retain the shared sample ID, and define the content obligation separately. Count one obligation when one post covers the package; count more only when the documented agreement requires more.
Does TikTok Shop already track creator samples?
Yes. Current US seller documentation describes native request, approval, shipping, content monitoring and performance workflows, plus several automation options. A team spreadsheet should add internal ownership, costs, permissions, exceptions and decision history rather than claiming the platform has no tracking.
Can a spreadsheet prove sample ROI?
Not by itself. It can organize the cost and attribution inputs, but ROI needs complete, consistently defined revenue, returns, COGS, fees, commissions and other costs. Missing attribution must stay visible.
Can Navos approve samples or message creators automatically?
Those actions were not tested here. The reviewed Navos files cover supplied-record analysis: a normalized CSV, an exception CSV and an HTML report. They do not establish live store access, sample approvals, creator messaging or live attribution.
Review One Batch Before Sending the Next
Copy the fields, choose a review date and reconcile one batch. Check the shared IDs before calculating a rate, preserve unknowns, and assign an owner to each unresolved action. If you use Navos to prepare the tables, review its interpretation and totals against the source before acting on the queue.




