U.S. patent application number 17/457181 was filed with the patent office on 2022-03-17 for generating a statistic using electronic transaction data.
The applicant listed for this patent is Palantir Technologies Inc.. Invention is credited to Albert Altarovici, Aaron Jaffe, David Montague, Daniel Moulton.
Application Number | 20220084019 17/457181 |
Document ID | / |
Family ID | |
Filed Date | 2022-03-17 |
United States Patent
Application |
20220084019 |
Kind Code |
A1 |
Jaffe; Aaron ; et
al. |
March 17, 2022 |
GENERATING A STATISTIC USING ELECTRONIC TRANSACTION DATA
Abstract
In various example embodiments, a system and method for
generating a statistic using transaction data are presented.
Transaction data is received, the transaction data regarding
transactions performed by a set of merchants. An activity filter is
generated based on the transaction data. A set of active merchants
that each performs the threshold amount of transaction activity
during a period of time is selected. A statistic is generated based
on the transaction data.
Inventors: |
Jaffe; Aaron; (New York,
NY) ; Altarovici; Albert; (Menlo Park, CA) ;
Moulton; Daniel; (Brooklyn, NY) ; Montague;
David; (East Palo Alto, CA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Palantir Technologies Inc. |
Palo Alto |
CA |
US |
|
|
Appl. No.: |
17/457181 |
Filed: |
December 1, 2021 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
15811460 |
Nov 13, 2017 |
|
|
|
17457181 |
|
|
|
|
62428419 |
Nov 30, 2016 |
|
|
|
International
Class: |
G06Q 20/38 20060101
G06Q020/38; G06F 16/2458 20060101 G06F016/2458; G06F 16/2457
20060101 G06F016/2457; G06Q 20/02 20060101 G06Q020/02 |
Claims
1. A method comprising: identifying a set of active merchants that
performed at least a threshold number of transactions; generating a
set of weights for the set of active merchants, wherein generating
a weight for each respective merchant is based on a respective
percentage of transactions performed by an industry associated with
the respective merchant; normalizing transaction data identifying
transactions performed by the set of active merchants during a
first period of time based on the set of weights, yielding
normalized transaction data; and generating a statistic based on
the normalized transaction data during a subset of the first period
of time.
2. The method of claim 1, wherein identifying the set of active
merchants comprises: for each respective merchant from a set of
merchants, determining, based on the transaction data, a number of
transactions performed by the respective merchant during a first
period of time; comparing the number of transactions performed by
the respective merchant during the first period of time to the
threshold number of transactions, yielding a comparison; and
determining whether the respective merchant is an active merchant
based on the comparison.
3. The method of claim 1, wherein generating the set of weights for
the set of active merchants comprises: determining an industry
associated with a first active merchant; determining a first
percentage of the transactions performed by a set of merchants that
originated from merchants in the industry associated with the first
active merchant, wherein the first percentage of the transactions
is determined based on at least one transaction that originated
from the first active merchant and at least one transaction that
originated from a second merchant that is different than the first
active merchant; and determining the weight for the first active
merchant based on the first percentage of transactions performed by
the set of merchants that originated from merchants in the industry
associated with the first active merchant.
4. The method of claim 3, wherein generating the set of weights for
the set of active merchants is further based on data that indicates
seasonality.
5. The method of claim 1, wherein identifying the set of active
merchants includes refraining from selecting merchants that perform
an anomalous number of transactions during the first period of
time.
6. The method of claim 1, further comprising: generating an
interface that depicts the statistic; and causing display of the
interface on a client device.
7. The method of claim 1, further comprising: determining that the
set of active merchants are active for a moment prior to the first
period of time.
8. The method of claim 1, further comprising: determining that the
set of active merchants remain active upon completion of the first
period of time.
9. The method of claim 1, wherein the first period of time
coincides with an occurrence of an event at a particular
geographical location.
10. A system comprising: one or more computer processors; and one
or more computer-readable mediums storing instructions that, when
executed by the one or more computer processors, cause the system
to perform operations comprising: identifying a set of active
merchants that performed at least a threshold number of
transactions; generating a set of weights for the set of active
merchants, wherein generating a weight for each respective merchant
is based on a respective percentage of transactions performed by an
industry associated with the respective merchant; normalizing
transaction data identifying transactions performed by the set of
active merchants during a first period of time based on the set of
weights, yielding normalized transaction data; and generating a
statistic based on the normalized transaction data during a subset
of the first period of time.
11. The system of claim 10, wherein identifying the set of active
merchants comprises: for each respective merchant from a set of
merchants, determining, based on the transaction data, a number of
transactions performed by the respective merchant during a first
period of time; comparing the number of transactions performed by
the respective merchant during the first period of time to the
threshold number of transactions, yielding a comparison; and
determining whether the respective merchant is an active merchant
based on the comparison.
12. The system of claim 10, wherein generating the set of weights
for the set of active merchants comprises: determining an industry
associated with a first active merchant; determining a first
percentage of the transactions performed by a set of merchants that
originated from merchants in the industry associated with the first
active merchant, wherein the first percentage of the transactions
is determined based on at least one transaction that originated
from the first active merchant and at least one transaction that
originated from a second merchant that is different than the first
active merchant; and determining the weight for the first active
merchant based on the first percentage of transactions performed by
the set of merchants that originated from merchants in the industry
associated with the first active merchant.
13. The system of claim 12, wherein generating the set of weights
for the set of active merchants is further based on data that
indicates seasonality.
14. The system of claim 10, wherein identifying the set of active
merchants includes refraining from selecting merchants that perform
an anomalous number of transactions during the first period of
time.
15. The system of claim 10, the operations further comprising:
generating an interface that depicts the statistic; and causing
display of the interface on a client device.
16. The system of claim 10, the operations further comprising:
determining that the set of active merchants are active for a
moment prior to the first period of time.
17. The system of claim 10, the operations further comprising:
determining that the set of active merchants remain active upon
completion of the first period of time.
18. The system of claim 10, wherein the first period of time
coincides with an occurrence of an event at a particular
geographical location.
19. A non-transitory computer-readable medium storing instructions
that, when executed by one or more computer processors of one or
more computing devices, cause the one or more computing devices to
perform operations comprising: identifying a set of active
merchants that performed at least a threshold number of
transactions; generating a set of weights for the set of active
merchants, wherein generating a weight for each respective merchant
is based on a respective percentage of transactions performed by an
industry associated with the respective merchant; normalizing
transaction data identifying transactions performed by the set of
active merchants during a first period of time based on the set of
weights, yielding normalized transaction data; and generating a
statistic based on the normalized transaction data during a subset
of the first period of time.
20. The non-transitory computer-readable medium of claim 19,
wherein identifying the set of active merchants comprises: for each
respective merchant from a set of merchants, determining, based on
the transaction data, a number of transactions performed by the
respective merchant during a first period of time; comparing the
number of transactions performed by the respective merchant during
the first period of time to the threshold number of transactions,
yielding a comparison; and determining whether the respective
merchant is an active merchant based on the comparison.
Description
RELATED APPLICATIONS
[0001] This application is a continuation of U.S. patent
application Ser. No. 15/811,460, entitles "GENERATING A STATISTIC
USING ELECTRONIC TRANSACTION DATA," filed Nov. 13, 2017, which
claims the priority benefit of U.S. Provisional Application No.
62/428,419, entitled "GENERATING A STATISTIC USING ELECTRONIC
TRANSACTION DATA," filed Nov. 30, 2016, which are hereby
incorporated herein by reference in their entireties.
TECHNICAL FIELD
[0002] Embodiments of the present disclosure generally relates to
the technical field of special-purpose machines that receive
transaction data and perform an analysis of the received
transaction data including computerized variants of such
special-purpose machines and improvements to such variants, and to
the technologies by which such special-purpose machines become
improved compared to other special-purpose machines that receive
transaction data and perform the analysis of the received
transaction data. Specifically, the present disclosure addresses
systems and methods to generating a statistic that measures
large-scale activity using the transaction data.
BACKGROUND
[0003] Conventionally, systems that measure large-scale activity
using a merchant survey implementation provide inaccurate
results.
BRIEF DESCRIPTION OF THE DRAWINGS
[0004] Various ones of the appended drawings merely illustrate
example embodiments of the present disclosure and cannot be
considered as limiting its scope.
[0005] FIG. 1 is a block diagram illustrating a networked system,
according to some example embodiments.
[0006] FIG. 2 is a block diagram illustrating components of the
modeling system, according to some example embodiments.
[0007] FIG. 3-5 are flowcharts illustrating operations of the
modeling system in performing a method of generating a statistic,
according to some example embodiments.
[0008] FIG. 6 illustrates a diagrammatic representation of a
machine in the form of a computer system within which a set of
instructions may be executed for causing the machine to perform any
one or more of the methodologies discussed herein, according to an
example embodiment.
DETAILED DESCRIPTION
[0009] The description that follows describes systems, methods,
techniques, instruction sequences, and computing machine program
products that illustrate example embodiments of the present subject
matter. In the following description, for the purposes of
explanation, numerous specific details are set forth in order to
provide an understanding of various example embodiments of the
subject matter discussed herein. It will be evident, however, to
those skilled in the art, that embodiments of the subject matter
may be practiced without these specific details.
[0010] Example methods (e.g., algorithms) facilitate disambiguation
of a search criterion, providing one or more users with
notification thereof, or both, and example systems (e.g.,
special-purpose machines) are configured to facilitate
disambiguation of the search criterion, providing one or more users
with notification thereof, or both. Examples merely typify possible
variations. Unless explicitly stated otherwise, structures (e.g.,
structural components, such as modules) are optional and may be
combined or subdivided, and operations (e.g., in a procedure,
algorithm, or other function) may vary in sequence or be combined
or subdivided. In the following description, for purposes of
explanation, numerous specific details are set forth to provide a
thorough understanding of various example embodiments. It will be
evident to one skilled in the art, however, that the present
subject matter may be practiced without these specific details.
[0011] With reference to FIG. 1, an example embodiment of a
high-level client-server-based network architecture 100 is shown. A
networked system 102, in the example forms of a network-based
publication or payment system, provides server-side functionality
via a network 104 (e.g., the Internet or wide area network (WAN))
to one or more client devices 110. FIG. 1 illustrates, for example,
a web client 112 (e.g., a browser, such as the Internet
Explorer.RTM. browser developed by Microsoft.RTM. Corporation of
Redmond, Washington State), a client application 114, and a
programmatic client 116 executing on client device 110.
[0012] The client device 110 may comprise, but is not limited to, a
mobile phone, desktop computer, laptop, portable digital assistants
(PDAs), smart phones, tablets, ultra-books, netbooks, laptops,
multi-processor systems, microprocessor-based or programmable
consumer electronics, game consoles, set-top boxes, or any other
communication device that a user may utilize to access the
networked system 102. In some embodiments, the client device 110
includes components that are used to display information (e.g., in
the form of user interfaces). In further embodiments, the client
device 110 may comprise one or more of touch screens,
accelerometers, gyroscopes, cameras, microphones, global
positioning system (GPS) devices, and so forth. For example, one or
more portions of the network 104 may be an ad hoc network, an
intranet, an extranet, a virtual private network (VPN), a local
area network (LAN), a wireless LAN (WLAN), a wide area network
(WAN), a wireless WAN (WWAN), a metropolitan area network (MAN), a
portion of the Internet, a portion of the Public Switched Telephone
Network (PSTN), a cellular telephone network, a wireless network, a
WiFi network, a WiMax network, another type of network, or a
combination of two or more such networks.
[0013] Each of the client devices 110 include one or more
applications (also referred to as "apps") such as, but not limited
to, a web browser, messaging application, electronic mail (email)
application.
[0014] A user 106 may be a person, a machine, or other means of
interacting with the client device 110. In example embodiments, the
user 106 is not part of the network architecture 100, but interacts
with the network architecture 100 via the client device 110 or
other means. For instance, the user 106 provides input (e.g., touch
screen input or alphanumeric input) to the client device 110 and
the input is communicated to the networked system 102 via the
network 104. In this instance, the networked system 102, in
response to receiving the input from the user 106, communicates
information to the client device 110 via the network 104 to be
presented to the user 106. In this way, the user 106 can interact
with the networked system 102 using the client device 110.
[0015] An application program interface (API) server 120 and a web
server 122 are coupled to, and provide programmatic and web
interfaces respectively to, one or more application servers 140.
The application servers 140 host the publication system 142 which
may comprise one or more modules, engines, or applications and each
of which may be embodied as hardware, software, firmware,
circuitry, or any combination thereof. The application servers 140
are, in turn, shown to be coupled to one or more database servers
124 that facilitate access to one or more information storage
repositories or database(s) 126. In an example embodiment, the
databases 126 are storage devices that store information
communicated to the publication system 142. The databases 126 may
also store digital item information in accordance with example
embodiments.
[0016] Additionally, a third party application 132, executing on
third party server(s) 130, is shown as having programmatic access
to the networked system 102 via the programmatic interface provided
by the API server 120. For example, the third party application
132, utilizing information retrieved from the networked system 102,
supports one or more features or functions on a website hosted by
the third party. The third party website, for example, provides one
or more promotional, publication, that are supported by the
relevant applications of the networked system 102.
[0017] The publication systems 142 provide a number of publication
functions and services to users 106 that access the networked
system 102. While the publication system 142 is shown in FIG. 1 to
form part of the networked system 102, it will be appreciated that,
in alternative embodiments, the publication system 142 forms part
of a service that is separate and distinct from the networked
system 102.
[0018] The modeling system 150 provides functionality operable to
analyze transaction data and provide a statistic that measure
transaction activity using the transaction data. For example, the
modeling system 150 may access the transaction data from the
databases 126, the third party servers 130, the publication system
142, and other sources. In some example embodiments, the modeling
system 150 may analyze the user data to generate the statistic.
[0019] Further, while the client-server-based network architecture
100 shown in FIG. 1 employs a client-server architecture, the
present inventive subject matter is of course not limited to such
an architecture, and could equally well find application in a
distributed, or peer-to-peer, architecture system, for example.
[0020] The web client 112 accesses the various publication systems
142 via the web interface supported by the web server 122.
Similarly, the programmatic client 116 accesses the various
services and functions provided by the publication systems 142 via
the programmatic interface provided by the API server 120. The
programmatic client 116 may, for example, be a client application
to enable users to access data provided by the networked system 102
in an off-line manner, and to perform batch-mode communications
between the programmatic client 116 and the networked system
102.
[0021] Any of the systems or machines (e.g., databases, devices,
servers) shown in FIG. 1 may be, include, or otherwise be
implemented in a special-purpose (e.g., specialized or otherwise
non-generic) computer that has been modified (e.g., configured or
programmed by software, such as one or more software modules of an
application, operating system, firmware, middleware, or other
program) to perform one or more of the functions described herein
for that system or machine. For example, a special-purpose computer
system able to implement any one or more of the methodologies
described herein is discussed below with respect to FIG. 3-5, and
such a special-purpose computer may accordingly be a means for
performing any one or more of the methodologies discussed herein.
Within the technical field of such special-purpose computers, a
special-purpose computer that has been modified by the structures
discussed herein to perform the functions discussed herein is
technically improved compared to other special-purpose computers
that lack the structures discussed herein or are otherwise unable
to perform the functions discussed herein. Accordingly, a
special-purpose machine configured according to the systems and
methods discussed herein provides an improvement to the technology
of similar special-purpose machines.
[0022] As used herein, a "database" is a data storage resource and
may store data structured as a text file, a table, a spreadsheet, a
relational database (e.g., an object-relational database), a triple
store, a hierarchical data store, or any suitable combination
thereof. Moreover, any two or more of the systems or machines
illustrated in FIG. 1 may be combined into a single system or
machine, and the functions described herein for any single system
or machine may be subdivided among multiple systems or
machines.
[0023] FIG. 2 is a block diagram illustrating components of the
modeling system 150, according to some example embodiments. The
modeling system 150 is shown as including a reception module 210, a
generation module 220, a determination module 230, and a display
module 240, all configured to communicate with each other (e.g.,
via a bus, shared memory, or a switch). Any one or more of the
components (e.g., modules) described herein may be implemented
using hardware alone (e.g., one or more processors of a machine) or
a combination of hardware and software. For example, any component
described herein may physically include an arrangement of one or
more of the processors or configure a processor (e.g., among one or
more processors of a machine) to perform the operations described
herein for that module. Accordingly, different components described
herein may include and configure different arrangements of the
processors at different points in time or a single arrangement of
the processors at different points in time. Each component (e.g.,
module) described herein is an example of a means for performing
the operations described herein for that component. Moreover, any
two or more of these components may be combined into a single
component, and the functions described herein for a single
component may be subdivided among multiple components. Furthermore,
according to various example embodiments, components described
herein as being implemented within a single machine, database, or
device may be distributed across multiple machines, databases, or
devices.
[0024] In various example embodiments, the reception module 210 is
configured to receive transaction data that indicates information
regarding transactions performed by a group of merchants. In some
instances, the transaction data indicates a total number of
transactions performed by the group of merchants. In further
instances, the transaction data indicates a total amount of revenue
generated from the transactions performed by the group of
merchants.
[0025] In various example embodiments, the transaction data is
arranged or organized into components. Moreover, component
represents an individual transaction. Also, for each individual
transaction, the transaction data indicates an amount of revenue
and a merchant ID. In other words, each component includes the
amount of revenue and the merchant ID to identify a respective
merchant from the group of merchants that performed the
transaction. In various example embodiments, the transactions do
not occur simultaneously. Instead, they occur over a length of time
(e.g., day, week, month, or year). Therefore, each transaction may
also include a timestamp to indicate when the transaction was
completed.
[0026] In further example embodiments, the transaction data may
indicate, for each merchant, a time-dependent attribute that
relates to transaction activity of the respective merchant. The
time-dependent attribute includes at least one of revenue, days of
activity, frequency of transactions, and the like.
[0027] In various example embodiments, the transaction data is
received from a third party server that provides credit card
processing services to the group of merchants (e.g., First Data
Corporation). As a result, the transaction data includes credit
card transactions performed by the group of merchants. In further
example embodiments, the transaction data is received in response
to a query to the third party server (e.g., querying a database
maintained by the third party server).
[0028] In various example embodiments, the generation module 220 is
configured to generate an activity filter based on the transaction
data. In various example embodiments, the activity filter indicates
a threshold amount of transaction activity that corresponds to a
period of time, which is used as criteria for selecting the active
merchants. Examples of activity filters include filters based on at
least one or more of the following: a number of days transacted
within a given period, or growth rates over a variable range of
time (e.g., variable period of time). The activity filters may also
include comparing the growth rates of the set of merchants over the
variable range of time. In some instances, merchants that exceed a
threshold rate of growth corresponding to a certain range of time
will be selected.
[0029] The generation module 220 generates the activity filter
using transaction data that corresponds to a period of time (e.g.,
transactions that occur during the period of time). In various
example embodiments, the threshold amount of transaction activity
is statistically correlated with the transaction activity of the
group of merchants during the period of time. As an example, the
threshold amount of transaction activity is an average amount of
transaction activity, performed by the group of merchants, during
the period of time. The transaction activity of the group of
merchants may be measured by their growth rates, or a number of
days transacted within a given period. In further example
embodiments, the threshold amount of transaction activity is
indicated a value or a range of values. The period of time, in some
instances, is a variable length of time set by the generation
module 220 and can be adjusted or changed. For example, the period
of time could be a week, a month, or any other variable length of
time.
[0030] In various example embodiments, the determination module 230
is configured to count a total number of transactions performed by
the group of merchants during the period of time. The count may
then be used by the determination module 230 to calculate the
average amount of transaction activity for the activity filter.
[0031] In various example embodiments, the generation module 220 is
configured to generate more than one activity filter based on the
transaction data. In some instances, the generation module 220
generates a subsequent activity filter that indicates a threshold
amount of activity for a subsequent period of time. Similar to the
generation of the activity filter, the generation module 220
generates the subsequent activity filter using transaction data
that corresponds to a subsequent period of time (e.g., transactions
that occur during the subsequent period of time).
[0032] In various example embodiments, the determination module 230
is configured to select active merchants from the group of
merchants using the generated activity filter. In this regard, the
determination module 230 selects active merchants that each
performs the threshold amount of transaction activity during the
period of time indicated by the activity filter. The selected
active merchants, in some cases, are merchants that engage in a
similar amount of transaction activity during the period of time
and therefore behave like one another. As a result, the
determination module 230 is further configured to refrain from
selecting merchants that perform an anomalous amount of transaction
activity during the period of time.
[0033] In various example embodiments, the determination module 230
is further configured to select subsequent active merchants that
each performs the threshold amount of transaction activity during
the subsequent period of time. In various example embodiments, the
active merchants and the subsequent active merchants entirely
overlap. In further embodiments, the active merchants and the
subsequent active merchants partially overlap or do not overlap at
all. For example, these situations may occur when a merchant that
is considered active for the period of time but is no longer
considered active for the subsequent period of time.
[0034] In various example embodiments, the determination module 230
is configured to extract, from the transaction data, information
regarding transactions performed by the active merchants. The
determination module 230 is further configured to extract
information regarding transactions performed by the subsequent
active merchants. The extracted information may include an amount
of revenue generated by the active merchants and an amount of
revenue generated by the subsequent active merchants. The extracted
information may also include a number of transactions performed by
active merchants and a number of transactions performed by the
subsequent active merchants.
[0035] In various example embodiments, the generation module 220
generates weights for the active merchants based on census data
that indicates a distribution of activity across the active
merchants. The active merchants may include merchants from more
than industry (e.g., retail or travel). Accordingly, the census
data may reveal a percentage of total transactions from the census
that occur from merchants in the retail industry and a percentage
of total transactions from the census that occur from merchants in
the travel industry.
[0036] Moreover, the generation module 220 normalizes the
information regarding the transactions performed by the active
merchants based on the generated weights. This allows the
information regarding the transactions to accurate reflect the
distribution of activity across the active merchants indicated in
the census data.
[0037] In various example embodiments, the generation module 220
generates a statistic based on the amount of revenue generated by
the active merchants and the amount of revenue generated by the
further active merchants. The statistic is used to an estimate to
predict changes or fluctuations in transaction activity performed
by the group of merchants between the period of time and the
subsequent period of time. For instance, the statistic measures the
change in transaction activity relative to a previous period of
time. In various example embodiments, the generation module 220
generates an interface that depicts the statistic. For example, the
statistic is plotted in a graph that depicts a value of the
statistic over an axis that represents time.
[0038] In further example embodiments, the generation module 220
generates the statistic based on transaction data of the active
merchants and/or transaction data of the further active merchants.
As stated earlier, the transaction data indicates, for each
merchant, a time-dependent attribute that relates to transaction
activity of the respective merchant. The time-dependent attribute
includes at least one of revenue, days of activity, frequency of
transactions, and the like. Therefore, the transaction data may be
sliced in a variety of ways and the statistic may be generated
using any of the time-dependent attributes of the active merchants
and/or the further active merchants. In various example
embodiments, using the transaction data of both the active
merchants and the further active merchants increases the accuracy
of the statistic. Moreover, the generated statistic indicates
fluctuations in the time-dependent attributes of the group of
merchants.
[0039] In further example embodiments, the statistic is a series of
values. Moreover, for each additional period of time, a value is
added to the series of values.
[0040] In various example embodiments, the display module 240
causes display of the generated interface on a client device. The
display module 240 transmits that to the client device which
results in display of the generated interface that depicts the
statistic.
[0041] FIG. 3-5 are flowcharts illustrating operations of the
modeling system 150 in performing a method 300 of generating a
statistic, according to some example embodiments. Operations in the
method 300 may be performed in part or in whole by components of
the modeling system 150, which can be embodied either in whole or
in part in one or more application servers 140 of a networked
system 102 using components described above with respect to FIG. 2.
Accordingly, the method 300 is described by way of example with
reference to the modeling system 150. However, it shall be
appreciated that at least some of the operations of the method 300
may be deployed on various other hardware configurations or be
performed by similar components residing elsewhere in the network
architecture 100. Therefore, the method 300 is not intended to be
limited to the modeling system 150. As shown in FIG. 3, the method
300 includes operations 310, 320, 330, 340, and 350.
[0042] At operation 310, the reception module 210 receives
transaction data transaction data that indicates information
regarding transactions performed by a group of merchants. As stated
above, the transaction data includes information regarding a total
number of transactions performed by the group of merchants or a
total amount of revenue generated from the transactions performed
by the group of merchants. The transaction data may be received
from a third party server (e.g., third party server 130). Further,
the transaction data may include credit card transactions performed
by the group of merchants and processed by the third party
server.
[0043] At operation 320, the generation module 220 generates an
activity filter based on the transaction data. In various example
embodiments, the activity filter indicates a threshold amount of
transaction activity that corresponds to a period of time, which is
used as criteria for selecting the active merchants. As an example,
the activity filter generated in the operation 320 may correspond
to the month of January. As stated above, the period of time is
adjustable may be adjusted to a variable length of time. Further
examples of activity filters include filters based on at least one
or more of the following: a number of days transacted within a
given period, or growth rates over a variable range of time (e.g.,
variable period of time).
[0044] At operation 330, the determination module 230 selects
active merchants from the group of merchants using the generated
activity filter. Therefore, at operation 330, the determination
module 230 selects active merchants for the month of January.
[0045] At operation 340, the generation module 220 generates a
subsequent activity filter. In various example embodiments, the
activity filter indicates a threshold amount of transaction
activity that corresponds to a subsequent period of time, which is
used as criteria for selecting the subsequent active merchants. As
an example, the subsequent activity filter generated in the
operation 340 may correspond to the month of February.
[0046] At operation 350, the determination module 230 selects
subsequent active merchants that each performs the threshold amount
of transaction activity during the subsequent period of time.
Therefore, at operation 350, the determination module 230 selects
active merchants for the month of February.
[0047] As shown in FIG. 4, the method 300 may include one or more
of operations 410, 420, 430, 440, and 450. Each of the operations
410, 420, 430, 440, and 450 may be performed after the operation
350 of FIG. 3.
[0048] At operation 410, the determination module 230 extracts
information from the transaction data. For instance, the
determination module 230 extracts information that indicates an
amount of revenue generated by the merchants selected at operations
320 and 340 (e.g., active and subsequent active merchants).
Alternatively, the determination module 230 extracts information
that indicates an amount of revenue generated by the merchants
selected at operations 320 and 340. Other information regarding
transaction data may include a number of distinct days of activity
for the active merchants during the period of time and a number of
distinct days of activity for the subsequent active merchants
during the subsequent period of time.
[0049] At operation 420, the generation module 220 generates
weights for the active merchants based on census data that
indicates a distribution of activity across the active merchants.
The generation module 220 may also generate weights for the
subsequent active merchants based on census data that indicates a
distribution of activity across the subsequent active merchants.
For example, each of the active merchants may belong to an industry
or a category, and the census data may indicate a percentage of
transactions that come from each industry or category.
[0050] At operation 430, the determination module 230 normalizes
the extracted information regarding the transactions performed by
the active merchants based on the generated weights. For example,
if the census data indicates that a larger amount of activity
originates from merchants in industry A as compared to an amount of
activity originating from merchants outside of industry A, then the
determination module 230 may place a greater weight on the
information regarding transactions performed merchants in industry
A. The determination module 230 may also normalize the extracted
information regarding the transactions performed by the subsequent
active merchants.
[0051] At operation 440, the generation module 220 generates a
statistic based on the amount of revenue generated by the active
merchants and the amount of revenue generated by the further active
merchants. As stated above, the statistic is used to an estimate to
predict changes or fluctuations in transaction activity performed
by the group of merchants between the period of time and the
subsequent period of time. For instance, the statistic measures the
change in transaction activity relative to a previous period of
time.
[0052] At operation 450, the display module 240 causes display of
the statistic. In some instances, the statistic is plotted in a
user interface that is generated by the generation module 220.
[0053] As shown in FIG. 5, the method 300 may include one or more
of operations 510, 520, 530, and 540. The operation 510 may be
performed after the operation 310 but prior to the operation 320.
The operation 520 may be performed as part of the operation
330.
[0054] At operation 510, the determination module 230 counts a
total number of transactions performed by the group of merchants
during the period of time. In further embodiments, the
determination module 230 counts a total number of transactions
performed by the group of merchants during the subsequent period of
time. These counts may be used by the generation module 220 at the
operations 320 and 340 to generate the activity filters.
[0055] At operation 520, the determination module 230 refrains from
selecting merchants that perform an anomalous amount of activity.
As a result, merchants not selected as active merchants 330 may be
merchants that perform an anomalous amount of activity. The
anomalous amount of activity may result from an occurrence of an
event at a particular geographical location that coincides with the
period of time indicated by the activity filter. For example, in
the event of a hurricane, some merchants may experience spike in
terms of transaction activity whereas other merchants may
experience a drop in terms of transaction activity. As another
example, in the event of a holiday, some merchants may experience a
spike in terms of transaction activity.
[0056] At operation 530, the determination module 230 determines
that the active merchants are active for a moment prior to the
period of time indicated by the activity filter. This ensures that
the determination module 230 does not select merchants that begin
their transaction activities after the period of time begins.
[0057] At operation 540, the determination module 230 determines
that the active merchants remain active upon completion of the
period of time indicated by the activity filter. This ensures that
the determination module 230 does not select merchants that finish
their transaction activities before the period of time elapses.
Modules, Components, and Logic
[0058] Certain embodiments are described herein as including logic
or a number of components, modules, or mechanisms. Modules may
constitute either software modules (e.g., code embodied on a
machine-readable medium) or hardware modules. A "hardware module"
is a tangible unit capable of performing certain operations and may
be configured or arranged in a certain physical manner. In various
example embodiments, one or more computer systems (e.g., a
standalone computer system, a client computer system, or a server
computer system) or one or more hardware modules of a computer
system (e.g., a processor or a group of processors) may be
configured by software (e.g., an application or application
portion) as a hardware module that operates to perform certain
operations as described herein.
[0059] In some embodiments, a hardware module may be implemented
mechanically, electronically, or any suitable combination thereof.
For example, a hardware module may include dedicated circuitry or
logic that is permanently configured to perform certain operations.
For example, a hardware module may be a special-purpose processor,
such as a Field-Programmable Gate Array (FPGA) or an Application
Specific Integrated Circuit (ASIC). A hardware module may also
include programmable logic or circuitry that is temporarily
configured by software to perform certain operations. For example,
a hardware module may include software executed by a
general-purpose processor or other programmable processor. Once
configured by such software, hardware modules become specific
machines (or specific components of a machine) uniquely tailored to
perform the configured functions and are no longer general-purpose
processors. It will be appreciated that the decision to implement a
hardware module mechanically, in dedicated and permanently
configured circuitry, or in temporarily configured circuitry (e.g.,
configured by software) may be driven by cost and time
considerations.
[0060] Accordingly, the phrase "hardware module" should be
understood to encompass a tangible entity, be that an entity that
is physically constructed, permanently configured (e.g.,
hardwired), or temporarily configured (e.g., programmed) to operate
in a certain manner or to perform certain operations described
herein. As used herein, "hardware-implemented module" refers to a
hardware module. Considering embodiments in which hardware modules
are temporarily configured (e.g., programmed), each of the hardware
modules need not be configured or instantiated at any one instance
in time. For example, where a hardware module comprises a
general-purpose processor configured by software to become a
special-purpose processor, the general-purpose processor may be
configured as respectively different special-purpose processors
(e.g., comprising different hardware modules) at different times.
Software accordingly configures a particular processor or
processors, for example, to constitute a particular hardware module
at one instance of time and to constitute a different hardware
module at a different instance of time.
[0061] Hardware modules can provide information to, and receive
information from, other hardware modules. Accordingly, the
described hardware modules may be regarded as being communicatively
coupled. Where multiple hardware modules exist contemporaneously,
communications may be achieved through signal transmission (e.g.,
over appropriate circuits and buses) between or among two or more
of the hardware modules. In embodiments in which multiple hardware
modules are configured or instantiated at different times,
communications between such hardware modules may be achieved, for
example, through the storage and retrieval of information in memory
structures to which the multiple hardware modules have access. For
example, one hardware module may perform an operation and store the
output of that operation in a memory device to which it is
communicatively coupled. A further hardware module may then, at a
later time, access the memory device to retrieve and process the
stored output. Hardware modules may also initiate communications
with input or output devices, and can operate on a resource (e.g.,
a collection of information).
[0062] The various operations of example methods described herein
may be performed, at least partially, by one or more processors
that are temporarily configured (e.g., by software) or permanently
configured to perform the relevant operations. Whether temporarily
or permanently configured, such processors may constitute
processor-implemented modules that operate to perform one or more
operations or functions described herein. As used herein,
"processor-implemented module" refers to a hardware module
implemented using one or more processors.
[0063] Similarly, the methods described herein may be at least
partially processor-implemented, with a particular processor or
processors being an example of hardware. For example, at least some
of the operations of a method may be performed by one or more
processors or processor-implemented modules. Moreover, the one or
more processors may also operate to support performance of the
relevant operations in a "cloud computing" environment or as a
"software as a service" (SaaS). For example, at least some of the
operations may be performed by a group of computers (as examples of
machines including processors), with these operations being
accessible via a network (e.g., the Internet) and via one or more
appropriate interfaces (e.g., an Application Program Interface
(API)).
[0064] The performance of certain of the operations may be
distributed among the processors, not only residing within a single
machine, but deployed across a number of machines. In some example
embodiments, the processors or processor-implemented modules may be
located in a single geographic location (e.g., within a home
environment, an office environment, or a server farm). In other
example embodiments, the processors or processor-implemented
modules may be distributed across a number of geographic
locations.
Example Machine Architecture and Machine-Readable Medium
[0065] FIG. 6 is a block diagram illustrating components of a
machine 600, according to some example embodiments, able to read
instructions from a machine-readable medium (e.g., a
machine-readable storage medium) and perform any one or more of the
methodologies discussed herein. Specifically, FIG. 6 shows a
diagrammatic representation of the machine 600 in the example form
of a computer system, within which instructions 616 (e.g.,
software, a program, an application, an applet, an app, or other
executable code) for causing the machine 600 to perform any one or
more of the methodologies discussed herein may be executed. For
example the instructions may cause the machine to execute the flow
diagrams of FIGS. 3-5. The instructions transform the general,
non-programmed machine into a particular machine specially
configured to carry out the described and illustrated functions in
the manner described. In alternative embodiments, the machine 600
operates as a standalone device or may be coupled (e.g., networked)
to other machines. In a networked deployment, the machine 600 may
operate in the capacity of a server machine or a client machine in
a server-client network environment, or as a peer machine in a
peer-to-peer (or distributed) network environment. The machine 600
may comprise, but not be limited to, a server computer, a client
computer, a personal computer (PC), a tablet computer, a laptop
computer, a netbook, a set-top box (STB), a personal digital
assistant (PDA), an entertainment media system, a cellular
telephone, a smart phone, a mobile device, a wearable device (e.g.,
a smart watch), a smart home device (e.g., a smart appliance),
other smart devices, a web appliance, a network router, a network
switch, a network bridge, or any machine capable of executing the
instructions 616, sequentially or otherwise, that specify actions
to be taken by machine 600. Further, while only a single machine
600 is illustrated, the term "machine" shall also be taken to
include a collection of machines 600 that individually or jointly
execute the instructions 616 to perform any one or more of the
methodologies discussed herein.
[0066] The machine 600 may include processors 610, memory 630, and
I/O components 650, which may be configured to communicate with
each other such as via a bus 602. In an example embodiment, the
processors 610 (e.g., a Central Processing Unit (CPU), a Reduced
Instruction Set Computing (RISC) processor, a Complex Instruction
Set Computing (CISC) processor, a Graphics Processing Unit (GPU), a
Digital Signal Processor (DSP), an Application Specific Integrated
Circuit (ASIC), a Radio-Frequency Integrated Circuit (RFIC),
another processor, or any suitable combination thereof) may
include, for example, processor 612 and processor 614 that may
execute instructions 616. The term "processor" is intended to
include multi-core processor that may comprise two or more
independent processors (sometimes referred to as "cores") that may
execute instructions contemporaneously. Although FIG. 6 shows
multiple processors, the machine 600 may include a single processor
with a single core, a single processor with multiple cores (e.g., a
multi-core process), multiple processors with a single core,
multiple processors with multiples cores, or any combination
thereof
[0067] The memory/storage 630 may include a memory 632, such as a
main memory, or other memory storage, and a storage unit 636, both
accessible to the processors 610 such as via the bus 602. The
storage unit 636 and memory 632 store the instructions 616
embodying any one or more of the methodologies or functions
described herein. The instructions 616 may also reside, completely
or partially, within the memory 632, within the storage unit 636,
within at least one of the processors 610 (e.g., within the
processor's cache memory), or any suitable combination thereof,
during execution thereof by the machine 600. Accordingly, the
memory 632, the storage unit 636, and the memory of processors 610
are examples of machine-readable media.
[0068] As used herein, "machine-readable medium" means a device
able to store instructions and data temporarily or permanently and
may include, but is not be limited to, random-access memory (RAM),
read-only memory (ROM), buffer memory, flash memory, optical media,
magnetic media, cache memory, other types of storage (e.g.,
Erasable Programmable Read-Only Memory (EEPROM)) and/or any
suitable combination thereof. The term "machine-readable medium"
should be taken to include a single medium or multiple media (e.g.,
a centralized or distributed database, or associated caches and
servers) able to store instructions 616. The term "machine-readable
medium" shall also be taken to include any medium, or combination
of multiple media, that is capable of storing instructions (e.g.,
instructions 616) for execution by a machine (e.g., machine 600),
such that the instructions, when executed by one or more processors
of the machine 600 (e.g., processors 610), cause the machine 600 to
perform any one or more of the methodologies described herein.
Accordingly, a "machine-readable medium" refers to a single storage
apparatus or device, as well as "cloud-based" storage systems or
storage networks that include multiple storage apparatus or
devices. The term "machine-readable medium" excludes signals per
se.
[0069] Furthermore, the machine-readable medium is non-transitory
in that it does not embody a propagating signal. However, labeling
the tangible machine-readable medium as "non-transitory" should not
be construed to mean that the medium is incapable of movement--the
medium should be considered as being transportable from one
physical location to another. Additionally, since the
machine-readable medium is tangible, the medium may be considered
to be a machine-readable device.
[0070] The I/O components 650 may include a wide variety of
components to receive input, provide output, produce output,
transmit information, exchange information, capture measurements,
and so on. The specific I/O components 650 that are included in a
particular machine will depend on the type of machine. For example,
portable machines such as mobile phones will likely include a touch
input device or other such input mechanisms, while a headless
server machine will likely not include such a touch input device.
It will be appreciated that the I/O components 650 may include many
other components that are not shown in FIG. 6. The I/O components
650 are grouped according to functionality merely for simplifying
the following discussion and the grouping is in no way limiting. In
various example embodiments, the I/O components 650 may include
output components 652 and input components 654. The output
components 652 may include visual components (e.g., a display such
as a plasma display panel (PDP), a light emitting diode (LED)
display, a liquid crystal display (LCD), a projector, or a cathode
ray tube (CRT)), acoustic components (e.g., speakers), haptic
components (e.g., a vibratory motor, resistance mechanisms), other
signal generators, and so forth. The input components 654 may
include alphanumeric input components (e.g., a keyboard, a touch
screen configured to receive alphanumeric input, a photo-optical
keyboard, or other alphanumeric input components), point based
input components (e.g., a mouse, a touchpad, a trackball, a
joystick, a motion sensor, or other pointing instrument), tactile
input components (e.g., a physical button, a touch screen that
provides location and/or force of touches or touch gestures, or
other tactile input components), audio input components (e.g., a
microphone), and the like.
[0071] In further example embodiments, the I/O components 650 may
include biometric components 656, motion components 658,
environmental components 660, or position components 662 among a
wide array of other components. For example, the biometric
components 656 may include components to detect expressions (e.g.,
hand expressions, facial expressions, vocal expressions, body
gestures, or eye tracking), measure biosignals (e.g., blood
pressure, heart rate, body temperature, perspiration, or brain
waves), identify a person (e.g., voice identification, retinal
identification, facial identification, fingerprint identification,
or electroencephalogram based identification), and the like. The
motion components 658 may include acceleration sensor components
(e.g., accelerometer), gravitation sensor components, rotation
sensor components (e.g., gyroscope), and so forth. The
environmental components 660 may include, for example, illumination
sensor components (e.g., photometer), temperature sensor components
(e.g., one or more thermometer that detect ambient temperature),
humidity sensor components, pressure sensor components (e.g.,
barometer), acoustic sensor components (e.g., one or more
microphones that detect background noise), proximity sensor
components (e.g., infrared sensors that detect nearby objects), gas
sensors (e.g., gas detection sensors to detection concentrations of
hazardous gases for safety or to measure pollutants in the
atmosphere), or other components that may provide indications,
measurements, or signals corresponding to a surrounding physical
environment. The position components 662 may include location
sensor components (e.g., a Global Position System (GPS) receiver
component), altitude sensor components (e.g., altimeters or
barometers that detect air pressure from which altitude may be
derived), orientation sensor components (e.g., magnetometers), and
the like.
[0072] Communication may be implemented using a wide variety of
technologies. The I/O components 650 may include communication
components 664 operable to couple the machine 600 to a network 680
or devices 670 via coupling 682 and coupling 672 respectively. For
example, the communication components 664 may include a network
interface component or other suitable device to interface with the
network 680. In further examples, communication components 664 may
include wired communication components, wireless communication
components, cellular communication components, Near Field
Communication (NFC) components, Bluetooth.RTM. components (e.g.,
Bluetooth.RTM. Low Energy), Wi-Fi.RTM. components, and other
communication components to provide communication via other
modalities. The devices 670 may be another machine or any of a wide
variety of peripheral devices (e.g., a peripheral device coupled
via a Universal Serial Bus (USB)).
[0073] Moreover, the communication components 664 may detect
identifiers or include components operable to detect identifiers.
For example, the communication components 664 may include Radio
Frequency Identification (RFID) tag reader components, NFC smart
tag detection components, optical reader components (e.g., an
optical sensor to detect one-dimensional bar codes such as
Universal Product Code (UPC) bar code, multi-dimensional bar codes
such as Quick Response (QR) code, Aztec code, Data Matrix,
Dataglyph, MaxiCode, PDF417, Ultra Code, UCC RSS-2D bar code, and
other optical codes), or acoustic detection components (e.g.,
microphones to identify tagged audio signals). In addition, a
variety of information may be derived via the communication
components 664, such as, location via Internet Protocol (IP)
geo-location, location via Wi-Fi.RTM. signal triangulation,
location via detecting a NFC beacon signal that may indicate a
particular location, and so forth.
Transmission Medium
[0074] In various example embodiments, one or more portions of the
network 680 may be an ad hoc network, an intranet, an extranet, a
virtual private network (VPN), a local area network (LAN), a
wireless LAN (WLAN), a wide area network (WAN), a wireless WAN
(WWAN), a metropolitan area network (MAN), the Internet, a portion
of the Internet, a portion of the Public Switched Telephone Network
(PSTN), a plain old telephone service (POTS) network, a cellular
telephone network, a wireless network, a Wi-Fi.RTM. network,
another type of network, or a combination of two or more such
networks. For example, the network 680 or a portion of the network
680 may include a wireless or cellular network and the coupling 682
may be a Code Division Multiple Access (CDMA) connection, a Global
System for Mobile communications (GSM) connection, or other type of
cellular or wireless coupling. In this example, the coupling 682
may implement any of a variety of types of data transfer
technology, such as Single Carrier Radio Transmission Technology
(1.times.RTT), Evolution-Data Optimized (EVDO) technology, General
Packet Radio Service (GPRS) technology, Enhanced Data rates for GSM
Evolution (EDGE) technology, third Generation Partnership Project
(3GPP) including 3G, fourth generation wireless (4G) networks,
Universal Mobile Telecommunications System (UMTS), High Speed
Packet Access (HSPA), Worldwide Interoperability for Microwave
Access (WiMAX), Long Term Evolution (LTE) standard, others defined
by various standard setting organizations, other long range
protocols, or other data transfer technology.
[0075] The instructions 616 may be transmitted or received over the
network 680 using a transmission medium via a network interface
device (e.g., a network interface component included in the
communication components 664) and utilizing any one of a number of
well-known transfer protocols (e.g., hypertext transfer protocol
(HTTP)). Similarly, the instructions 616 may be transmitted or
received using a transmission medium via the coupling 672 (e.g., a
peer-to-peer coupling) to devices 670. The term "transmission
medium" shall be taken to include any intangible medium that is
capable of storing, encoding, or carrying instructions 616 for
execution by the machine 600, and includes digital or analog
communications signals or other intangible medium to facilitate
communication of such software.
Language
[0076] Throughout this specification, plural instances may
implement components, operations, or structures described as a
single instance. Although individual operations of one or more
methods are illustrated and described as separate operations, one
or more of the individual operations may be performed concurrently,
and nothing requires that the operations be performed in the order
illustrated. Structures and functionality presented as separate
components in example configurations may be implemented as a
combined structure or component. Similarly, structures and
functionality presented as a single component may be implemented as
separate components. These and other variations, modifications,
additions, and improvements fall within the scope of the subject
matter herein.
[0077] Although an overview of the subject matter has been
described with reference to specific example embodiments, various
modifications and changes may be made to these embodiments without
departing from the broader scope of embodiments of the present
disclosure. Such embodiments of the subject matter may be referred
to herein, individually or collectively, by the term "invention"
merely for convenience and without intending to voluntarily limit
the scope of this application to any single disclosure or concept
if more than one is, in fact, disclosed.
[0078] The embodiments illustrated herein are described in
sufficient detail to enable those skilled in the art to practice
the teachings disclosed. Other embodiments may be used and derived
therefrom, such that structural and logical substitutions and
changes may be made without departing from the scope of this
disclosure. The Detailed Description, therefore, is not to be taken
in a limiting sense, and the scope of various embodiments is
defined only by the appended claims, along with the full range of
equivalents to which such claims are entitled.
[0079] As used herein, the term "or" may be construed in either an
inclusive or exclusive sense. Moreover, plural instances may be
provided for resources, operations, or structures described herein
as a single instance. Additionally, boundaries between various
resources, operations, modules, engines, and data stores are
somewhat arbitrary, and particular operations are illustrated in a
context of specific illustrative configurations. Other allocations
of functionality are envisioned and may fall within a scope of
various embodiments of the present disclosure. In general,
structures and functionality presented as separate resources in the
example configurations may be implemented as a combined structure
or resource. Similarly, structures and functionality presented as a
single resource may be implemented as separate resources. These and
other variations, modifications, additions, and improvements fall
within a scope of embodiments of the present disclosure as
represented by the appended claims. The specification and drawings
are, accordingly, to be regarded in an illustrative rather than a
restrictive sense.
* * * * *