Updated November 2026 · Written and maintained by the Progression Agency strategy team
A care label on a jacket says where it was sewn and little else, and the law that decides whether the next container clears asks about the cotton. For a software company in Portland, a place Greater Portland Inc calls the epicenter of apparel and outdoor gear, the real project is the set of records that connects a finished jacket to the fiber in it. This page follows one jacket upstream, tier by tier, and shows what each tier’s record has to hold, then what the work costs. Progression is based in New York, builds for Portland companies remotely, and offers on-site sessions on request.
On this page · 11 sections
- One care label, four missing layers
- What a software company in Portland is really building for a brand
- Tier 1: the factory that sewed it
- Tier 2: the mill that wove the fabric
- Tier 3: the spinner and the yarn
- Tier 4: the bale
- Why do the records thin out the further upstream they sit?
- What this software costs
- Holding the records together
- What software companies in Portland, Oregon should ask before building this
- Related services and guides
Outside the niche If your Portland company has never imported a thing, take the idea and leave the tariff law: any system worth building can answer who touched this and when. Our software development company page covers the general work.
The statutes are described as written, as of November 2026, and the regional figures are the ones Greater Portland Inc and Prosper Portland publish. Nothing here is legal or customs advice, and no software proves that a shipment is clear: ask customs counsel. No brand named here is a Progression client.
One care label, four missing layers
Turn a jacket inside out and the label gives a fiber content, a care symbol and one country. That is the whole paper trail a shopper sees. Behind it sit a factory, a mill, a spinner and a farm or a gin, and the label names none of them.
The label is an illustration, and the gap is the point. A rule about imports that asks where the cotton was grown cannot be answered from a label. It can only be answered from records that someone kept at each tier and linked to the next.
- The factory knows the style and the lot it sewed.
- The mill knows the fabric lot, and which yarn went into it.
- The spinner knows the yarn batch, and which fiber went into it.
- No one tier holds the whole chain unless a system links them.
What a software company in Portland is really building for a brand
A brand that sells apparel or footwear usually has a product system, an ordering system and a pile of supplier files. What it often lacks is the layer between them: a record that says this finished item came from this fabric, which came from this yarn, which came from this fiber.
The region is full of brands that need it. Greater Portland Inc describes the region as the epicenter for apparel and outdoor gear, and its fast facts list 23,000 employees and 518 establishments in the industry. Prosper Portland puts the number of jobs at more than 20,000 in the Portland metro area, including the metro headquarters of Columbia and Nike.
The records matter because of what customs law asks. Under section 3 of Public Law 117-78, the Uyghur Forced Labor Prevention Act, U.S. Customs and Border Protection applies a presumption that goods made wholly or in part in the Xinjiang Uyghur Autonomous Region, or by an entity on the statute’s lists, are barred from entry under section 307 of the Tariff Act. Section 2 of the same law names cotton, tomatoes and polysilicon as high-priority sectors for enforcement.
Section 307 itself, codified at 19 U.S.C. 1307, says goods made wholly or in part by forced labor in any foreign country are not entitled to entry. This page describes those laws as written. How they apply to a given shipment is a question for customs counsel.
Does software prove a garment is clean?
No. Software holds the records. The importer and its counsel carry the case. A good system makes the records complete, linked and easy to hand over, which is a different job from deciding what they prove.
Tier 1: the factory that sewed it
The first record is the one closest to the brand, and it is usually the best one. The brand placed the order and knows the factory’s name.
- Store the purchase order number against every style and lot.
- Record the factory’s legal name and the site address, since one company can run several sites.
- Keep the dates the order moved from cut to sewn to shipped.
- Save the name of the person who signed each release.
- Tie each style and lot to the fabric lot that was used.
A form the factory fills in is better than a spreadsheet it emails. The form can refuse a blank fabric lot, and a spreadsheet cannot.
Tier 2: the mill that wove the fabric
The mill sits one step behind the factory and one step further from the brand. Its record is the link between a fabric lot and the styles cut from it.
| Field | Why it is there | Who enters it |
|---|---|---|
| Fabric lot number | It joins this tier to the factory’s style and lot | The mill |
| Weave or knit type and width | It identifies the fabric a factory says it used | The mill |
| Yarn lots used | It joins this tier to the spinner behind it | The mill |
| Dates of production | It shows the lot existed before the order it served | The mill |
| Attached documents | Invoices and certificates tied to the lot | The mill, checked by the brand |
Give the mill a portal where it uploads and links records itself. An email attachment lands in someone’s inbox, and a portal lands in the lot it belongs to, with the name of the person who added it.
- Let a mill add a fabric lot and attach its yarn lots in one step.
- Show the mill which of its lots are not yet linked to a style.
- Keep a record of who uploaded each file and when.
Tier 3: the spinner and the yarn
The yarn record sits two steps from the brand, and this is where the trail usually thins. A spinner buys fiber from many sources and blends batches, and it may not have asked its suppliers to keep lot-level records.
| Field | Why it is there | What often goes wrong |
|---|---|---|
| Yarn batch | It joins this tier to the mill’s fabric lot | Batches are merged and the link is lost |
| Fiber sources a spinner can name | It joins this tier to the fiber behind it | The spinner names a region, not a farm or a gin |
| Dates of purchase and spinning | It shows the fiber was bought before the yarn was made | Dates sit in a ledger that nobody exports |
| Contract and invoice | It supports the fiber source in writing | The contract sits with someone outside the project |
Do not let a form pretend. If the spinner can name only a region, record that, mark the lot as partly traced and show it that way on every screen that uses it.
Tier 4: the bale
The last tier is the fiber itself, and it is the record an importer would most like to have in hand. A bale record names the fiber, its source and the chain of custody to the spinner.
The statute’s standard is the reason a system like this exists. Public Law 117-78 allows an exception to the presumption only if the importer has fully complied with the due diligence guidance and regulations, has completely and substantively answered every inquiry, and shows by clear and convincing evidence that the goods were not made with forced labor. A pile of PDFs rarely supports that, and a linked record can be a start. Whether it does is for counsel.
- Record where each bale was grown or ginned, as far as the supplier can say.
- Link each bale to the yarn batches it went into.
- Keep the supplier’s own documents beside the lot.
- Flag a bale with no document, so nobody mistakes silence for proof.
Which tier usually goes dark first?
Often the yarn or fiber layer, the records furthest from the brand. The system should show the dark lots plainly rather than fill them in.
Why do the records thin out the further upstream they sit?
Each step away from the brand is a step away from the contract the brand signed. The factory answers to the brand’s purchase order. The mill answers to the factory. The spinner may not know the brand exists.
- The brand has a contract with the factory, and none with the spinner.
- A supplier two steps back has little reason to keep records for a customer it never meets.
- Blended batches break the link between one lot and the next.
- Records kept for tax or shipping are not always kept in a form that links lots.
Can a brand ask a spinner for lot records?
Yes, directly or through the mill, and what the spinner agrees to is a business matter. Ask early, put the request in writing and record the answer, including a refusal.
Should the first version cover all four tiers?
Not always. Many brands begin with tiers one and two, where records exist, and add the upper tiers as suppliers agree. The system should show the uncovered tiers as gaps, not hide them.
- Start where the records already exist.
- Add a tier when its supplier agrees to take part.
- Show every uncovered tier as a visible gap.
What this software costs
Traceability software costs more when more suppliers must use it, more tiers must be linked and more reports must come out. A tool for one brand’s own staff is a smaller project than a portal that dozens of outside suppliers log into.
Bands by kind of software
The bands run from the typical low to the published high for each kind of build. Software companies in Portland, and anywhere else, should price from a written scope.
| What is quoted | Published US band | Fits |
|---|---|---|
| Internal tool or integration | $30,000 to $100,000 | A tool for your own staff that reads your product and order systems |
| Portal or platform | $75,000 to $400,000 | A supplier portal with logins, uploads and review |
| SaaS MVP | $30,000 to $150,000 | A first version of a product sold to other brands |
| US agency or contract rate | $100 to $200 an hour | Time-based work on a defined part |
Hosting, licenses and security testing are on top. A Portland software company should itemize them. Progression quotes after a written scope, and we publish no Portland price. For the agency side of the market, see marketing agency in Portland.
What pushes a quote up?
More tiers, more suppliers who must log in, more languages for those suppliers, and more exports for brokers. Ask for each by name.
- Count how many suppliers will upload.
- Say how many tiers the first version must cover.
- Say which systems the records must read from.
- List the exports a broker or counsel will want.
Which style do you start with?Send one style’s purchase order. You get a free proposal from a software company in Portland that has already mapped which tiers go missing.
Holding the records together
A stack of PDFs is not a chain. A chain is a set of linked lots, where each lot points to the lot or lots it came from.
That structure is a graph of lots, and it is the heart of the build. It lets a person start at a finished jacket and walk back to the bale, or start at a bale and walk forward to every jacket made from it.
| Question | A folder of PDFs | A linked record |
|---|---|---|
| Which fabric lot went into this style? | Open files until one mentions it | Click from the style to the fabric lot |
| Who changed this entry? | Nobody knows | A name and a time on the edit |
| Which lots have no source recorded? | Unknown | Shown in a list of gaps |
| What can a broker see? | An email of attachments | An export built from the records |
No system satisfies customs on its own. The records are only as good as what the suppliers put in them, and a system is only as useful as the person who reads its gaps.
What software companies in Portland, Oregon should ask before building this
The hardest questions are about people, not code. Settle them before the first sprint.
- Who in the brand holds the supplier contracts today?
- What will each supplier agree to share, and in what form?
- What does the system do when a tier refuses?
- Who speaks to the broker and to counsel?
What if a supplier will not take part?
Record the refusal, with the date and the person who asked, and mark every lot behind that supplier as untraced. A refusal that is written down is useful to counsel. One that is forgotten is a surprise later.
Related services and guides
Pages that sit beside this build:
Get a free proposal
Send one style’s purchase order. You get a free proposal from a software company in Portland that has already mapped which tiers go missing.
Getting found in search
AI, AEO and what is changing
Paid media and lead generation
Websites and design
Choosing and working with an agency
Software and app development
Website design by industry and type
Web development, platforms and hosting
Social, content and brand
By industry and by situation
Frequently asked questions
What does a software company in Portland build for an apparel brand?
Are software companies in Portland, OR already doing this?
What is the Uyghur Forced Labor Prevention Act?
Is cotton covered?
What standard must an importer meet?
Can software prove a garment is clean?
Which tier usually goes dark first?
Does the law apply to a small Portland brand?
Should suppliers upload directly?
How much should a brand budget for traceability software?
Will you visit our Portland design studio?
In traceability records, what does a lot mean?
Why not store everything in one spreadsheet?
How does a graph of lots differ from a table of lots?
Can the system show partly traced lots?
Who should own the records inside the brand?
Does a broker need a special file?
Are the Portland figures about every company?
Can this work for footwear?
What is the best first file to send a software company?
Which style do you start with?Send one style’s purchase order. You get a free proposal from a software company in Portland that has already mapped which tiers go missing.
Get a free marketing proposal
Tell us what you are trying to grow and we will come back with a plan, not a pitch deck. Same-day reply on weekdays.
